1

是否可以配置 filebeat 以使用令牌身份验证与 Elastic Cloud 实例通信?

根据文档,如果我使用的是云实例,我应该配置cloud.idcloud.authfilebeat.yml

cloud.id: "..."
cloud.auth: "filebeat_setup:YOUR_PASSWORD" 

文档说这cloud.auth应该是我的 Elastic Cloud 实例中的用户名和密码。我想改用 api_key 。但是,当我配置API 密钥时

output.elasticsearch:
  # Authentication credentials - either API key or username/password.
  api_key: "key-id:key-value"

并尝试测试我的连接,

$ sudo filebeat test output
elasticsearch: https://...:443...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: 52.202.123.120, 18.214.74.184, 50.19.154.221
    dial up... OK
  TLS...
    security: server's certificate chain verification is enabled
    handshake... OK
    TLS version: TLSv1.2
    dial up... OK
  talk to server... ERROR 401 Unauthorized: {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}},"status":401}
  

似乎filebeat不承认我的 API 密钥

"root_cause":[
    {
     "type":"security_exception",
     "reason":"missing authentication credentials for REST request [/]"
/* ... */
         

我已经成功地@elastic/elasticsearch使用这个令牌通过 javascript 包连接到我的云实例。

在我继续调试这个问题之前——甚至可以使用令牌身份验证通过连接到 Elasticsearchfilebeat吗?还是filebeat只支持用户名/密码认证?

4

1 回答 1

1

这个问题的答案原来是:是的,您可以使用api_keywith filebeat,即使您使用的是弹性云。

虽然在我的配置测试期间收到错误消息

缺少 REST 请求的身份验证凭据

表明身份验证丢失,真正的问题是我之前成功使用的密钥最近已过期。我认为 filebeat 尝试了 API 密钥,被拒绝,然后又回到尝试用户凭据。当这些凭据丢失时,会出现上述错误。

于 2020-11-15T18:39:53.287 回答