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
拜访,则会报错。
上述过程是未配置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
下留言。所以把补充都写在这里了。如有谬误,欢送斧正!