从 arango 获取指标需要哪些权限?

问题描述

我想用 prometheus 获取 arangodb 指标。 由于我启用了身份验证,因此必须使用用户和密码来完成。

这需要什么权限?

目前有效:

arangosh
const users = require('@arangodb/users');
users.save('prometheus','supersecure')
users.grantDatabase("prometheus","_system","ro")
users.grantCollection("prometheus","*","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