从 Arango 获取指标需要哪些权限?
Which permissions are needed to fetch metrics from arango?
我想用 prometheus 获取 arangodb 指标。
由于我启用了身份验证,因此必须使用用户和密码来完成。
这需要什么权限?
目前有效:
arangosh
const users = require('@arangodb/users');
users.save('prometheus', 'supersecure')
users.grantDatabase("prometheus", "_system", "ro")
users.grantCollection("prometheus", "_system", "*", "none")
不需要最后一条命令。这些是我的步骤:
创建一个用户 prometheus
,按照您的建议对 _system
进行只读访问
创建访问令牌
require('@arangodb/crypto').jwtEncode(
"secret_token", {
"preferred_username": "prometheus",
"allowed_paths": ["/_admin/metrics"],
"iss": "arangodb",
"exp": Math.floor(Date.now() / 1000) + 31536000 },
"HS256");
其中 secret_token
是超级用户令牌,31536000
是以秒为单位的生存时间,在这种情况下大约是一年。
此令牌将授予对 /_admin/metrics
API 的访问权限,如下所示:
curl -H"Authorization: bearer $TOKEN" https://instance-ip:port/_admin/metrics
我想用 prometheus 获取 arangodb 指标。 由于我启用了身份验证,因此必须使用用户和密码来完成。
这需要什么权限?
目前有效:
arangosh
const users = require('@arangodb/users');
users.save('prometheus', 'supersecure')
users.grantDatabase("prometheus", "_system", "ro")
users.grantCollection("prometheus", "_system", "*", "none")
不需要最后一条命令。这些是我的步骤:
创建一个用户
prometheus
,按照您的建议对_system
进行只读访问创建访问令牌
require('@arangodb/crypto').jwtEncode( "secret_token", { "preferred_username": "prometheus", "allowed_paths": ["/_admin/metrics"], "iss": "arangodb", "exp": Math.floor(Date.now() / 1000) + 31536000 }, "HS256");
其中
secret_token
是超级用户令牌,31536000
是以秒为单位的生存时间,在这种情况下大约是一年。
此令牌将授予对 /_admin/metrics
API 的访问权限,如下所示:
curl -H"Authorization: bearer $TOKEN" https://instance-ip:port/_admin/metrics