【问题标题】:Ubuntu-based Logstash Keystore Permissions Issues基于 Ubuntu 的 Logstash 密钥库权限问题
【发布时间】:2021-07-12 23:03:34
【问题描述】:

背景:我在 Ubuntu 20.04 环境中工作,设置 Logstash 服务器以将指标发送到我的 Elastic 集群。使用我相对基本的配置,我可以让 Filebeat 进程将日志发送到负载均衡器,然后负载均衡器将它们传播到我的 Logstash 服务器和 Elastic。这个过程有效。我希望能够使用 Logstash 密钥库来防止将敏感变量以纯文本形式传递给我的 logstash.yml 文件。在我的环境中,我可以按照 Elastic documentation 在默认位置设置受密码保护的密钥库,向其中添加密钥,并成功列出这些密钥。

问题:虽然 Logstash 服务器在没有密钥库的情况下成功运行,但当我添加它们并尝试在启动时查看日志文件时,该过程永远不会启动。它似乎继续尝试重新启动而从未登录到logstash-plain.log。当尝试使用此配置在前台运行该进程时,我收到的错误是相当无用的:

Found a file at /etc/logstash/logstash.keystore, 
but it is not a valid Logstash keystore

疑难解答完成:在尝试了其他issues 中的一些步骤后,例如将/etc/sysconfig/logstash 创建替换为简单地将密码添加到/etc/default/logstash,错误有点帮助,说明文件权限或密码不正确。 logstash-keystore 进程本身能够创建和列出密钥,因此密码正确,并且密钥库本身设置为 0644。我尝试了多种权限配置,但仍然无法让 Logstash 作为进程运行或在前台运行.

我仍然认为这是权限问题,但我不知道如何解决。 Logstash 以 logstash 用户身份运行,该用户应该能够读取自 0644 以来的密钥库文件,并且与 logstash.yml 位于同一目录中。

有没有人在使用 Logstash 和 Ubuntu 或在类似的环境中遇到过类似的情况?如果是这样,你是如何设法克服它的?我对想法持开放态度,并希望能够实现这一目标。

【问题讨论】:

    标签: elasticsearch permissions logstash elastic-stack logstash-configuration


    【解决方案1】:

    尝试以logstash 用户身份运行logstash-keystore

    sudo -u logstash /usr/share/logstash/bin/logstash-keystore \
      --path.settings /etc/logstash list
    

    [除了对此类秘密混淆的常见警告外,值得明确说明的是,文档希望 logstash-keystoreroot 运行,而不是 logstash。因此,在您完成故障排除后,尤其是如果您创建logstash 拥有的密钥库,请确保它最终具有足够严格的权限]

    或者,您可以以logstash 用户身份运行其他命令。要验证权限假设,您只需以用户logstash 读取文件:

    sudo -u logstash file /etc/logstash/logstash.keystore
    sudo -u logstash md5sum /etc/logstash/logstash.keystore
    su logstash -c 'cat /etc/logstash/logstash.keystore > /dev/null'
    # and so on
    

    如果您怀疑存在权限问题,并且读取测试失败,请使用以下命令组合必要的数据:

    ls -dla /etc/logstash/{,logstash.keystore}
    groups logstash
    

    此时你应该知道了:

    • logstash 属于哪些组
    • 哪些组可以打开 /etc/logstash
    • 哪些组可以读取 /etc/logstash/logstash.keystore

    您已经说过密钥库的模式是644。很可能,logstash 将只是logstash 组的成员,而/etc/logstash 将是世界可读的。所以这个建议的 TL;DR 版本可能是:

    # set group on the keystore to `logstash`
    chgrp logstash /etc/logstash/logstash.keystore
    # ensure the keystore is group readable
    chmod g+r /etc/logstash/logstash.keystore
    

    如果不是权限,您可以尝试在没有密码的情况下重新创建商店。如果它可以正常工作,您将需要非常小心处理密码环境变量的方式,并用细齿梳理docs

    【讨论】:

    • 在与客户和 Elastic Support 进行工作会话后,我们确定使用密码的问题是当前 Logstash 迭代中的一个错误,因此不得不在没有密码的情况下继续前进。已采取其他安全措施作为解决方法,但希望在下一个补丁中解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多