Elastic|Elastic APM , APM服务配置安全访问, TSL/SSL下的accessToken模式
Elastic APM , APM
服务配置安全访问, TSL/SSL
下的accessToken
模式
如何配置 accessToken
访问 ,官方文档地址
在 apm-server
的配置文件apm-server.yaml
里面的 apm-server.auth.secret_token
自定义一个字符串,比如:
`apm-server.auth.secret_token :123456xxx
`
然后在你的客户端Agent里配置:Node.js
示例:源码Github地址
var apm = require('elastic-apm-node').start({
// Override service name from package.json
// Allowed characters: a-z, A-Z, 0-9, -, _, and space
serviceName: 'zipcode service',// Use if APM Server requires a token
secretToken: '123456xxx',//留意这里// Set custom APM Server URL (default: http://localhost:8200)
serverUrl: 'https://localhost:8200',
})
然后重启
apm-server
,重启客户端,登录kibana
,在APM
控制台里就可以看到实例了,如果agent
未配置secretToken
访问,则会报错。【Elastic|Elastic APM , APM服务配置安全访问, TSL/SSL下的accessToken模式】上述过程是未配置
apm-server
的SSL/TSL
访问,这会带来一个安全问题,凭证通过http
请求很容易被窃取,所以需要配置成https
服务。这是官方推荐的做法。官网
SSL/TSL
配置文档地址 这是英文的并且说的并不详细。推荐一个更详细的教程,地址
这个教程里面大部分的操作都是正确的,不过也有一些是错误,比如下面的代码 :
var apm = require('elastic-apm-node').start({
// Override service name from package.json
// Allowed characters: a-z, A-Z, 0-9, -, _, and space
serviceName: 'zipcode service',// Use if APM Server requires a token
secretToken: '1234561',//配置好 ca 以后 , 已经是https服务器了
// Set custom APM Server URL (default: http://localhost:8200)
serverUrl: 'http://localhost:8200'//这里是错误的
serverUrl: 'https://localhost:8200'//这样才是正确的
verifyServerCert: true,
serverCaCertFile: "ca.crt"
})
如果不改正,直接按照教程里面的代码,
apm-server
会报 APM Server transport error (400): Unexpected APM Server response\nClient sent an HTTP request to an HTTPS server.\n"
,意思是说客户端向HTTPS服务器发送了HTTP请求。另外,教程里面的:
另注:我们可以使用如下的命令把一个.crt 的证书转换为一个 .pem 的证书:openssl x509 -in mycert.crt -out mycert.pem -outform PEM这是对于我们的配置也是不影响的,可以不用看,本人看教程的时候就被影响了。
PS:
还有一个需要注意的点,教程里面生成证书的时候传的 name
是localhost
,生成的证书也是 localhost.crt
和 localhost.key
这里是和你最后访问的https
地址(https://localhost:8200
)对应的,改成其他也是不行的,至于原理就是https
原理的问题了,这里就是不坐赘述了。教程使用的是
Mac
操作的,本人是在windows
下操作的,是可以的,linux
下未实操。PS: Agent
连接apm-server
的时候如有报错,报错信息都提示的很清楚,出现问题的时候第一时间想到看这里的错误信息(Agent
的报错信息 , 还有 apm-server
的报错信息 )衷心感谢原教程
,原教程写的非常好,都很详细,就是有一点错误,之所以重新写一篇文章,是因为实在不怎么喜欢 CSDN
,所以没有在CSDN
下留言。所以把补充都写在这里了。如有错误,欢迎指正!推荐阅读
- 社保代缴公司服务费包含哪些
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 探索免费开源服务器tomcat的魅力
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- Dubbo引用服务
- 第六章|第六章 Sleuth--链路追踪
- 云原生微服务技术趋势解读
- mac|mac 链接linux服务器 如何在Mac上连接服务器
- ElasticSearch6.6.0强大的JAVA|ElasticSearch6.6.0强大的JAVA API详解
- Linux|Linux 服务器nginx相关命令