从 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