elasticsearch 基于Ubuntu的Logstash密钥库权限问题,elasticsearch,permissions,logstash,elastic-stack,logstash-configuration,elasticsearch,Permissions,Logstash,Elastic Stack,Logstash Configuration" /> elasticsearch 基于Ubuntu的Logstash密钥库权限问题,elasticsearch,permissions,logstash,elastic-stack,logstash-configuration,elasticsearch,Permissions,Logstash,Elastic Stack,Logstash Configuration" />

elasticsearch 基于Ubuntu的Logstash密钥库权限问题

elasticsearch 基于Ubuntu的Logstash密钥库权限问题,elasticsearch,permissions,logstash,elastic-stack,logstash-configuration,elasticsearch,Permissions,Logstash,Elastic Stack,Logstash Configuration,背景:我在Ubuntu 20.04环境中工作,设置日志存储服务器,将度量数据发送到我的弹性集群。通过我相对基本的配置,我能够让一个Filebeat进程将日志发送到负载平衡器,然后负载平衡器将它们分布在我的日志存储服务器上,直至Elastic。这个过程是有效的。我希望能够使用Logstash密钥库来避免将敏感变量以纯文本形式传递给我的Logstash.yml文件。在我的环境中,我能够按照弹性在默认位置设置受密码保护的密钥库,向其中添加密钥,并成功列出这些密钥 问题:虽然Logstash服务器在没有

背景:我在Ubuntu 20.04环境中工作,设置日志存储服务器,将度量数据发送到我的弹性集群。通过我相对基本的配置,我能够让一个Filebeat进程将日志发送到负载平衡器,然后负载平衡器将它们分布在我的日志存储服务器上,直至Elastic。这个过程是有效的。我希望能够使用Logstash密钥库来避免将敏感变量以纯文本形式传递给我的
Logstash.yml
文件。在我的环境中,我能够按照弹性在默认位置设置受密码保护的密钥库,向其中添加密钥,并成功列出这些密钥

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

Found a file at /etc/logstash/logstash.keystore, 
but it is not a valid Logstash keystore
故障排除完成:在尝试了在其他中找到的一些步骤后,例如将创建的
/etc/sysconfig/logstash
替换为只需将密码添加到
/etc/default/logstash
,这些错误会更有帮助,说明文件权限或密码不正确。logstash密钥库进程本身能够创建和列出密钥,因此密码正确,密钥库本身设置为0644。我尝试了多个权限配置,但仍然无法使Logstash作为进程或在前台运行

我仍然觉得这是一个权限问题,但我不知道如何解决它。Logstash作为
Logstash
用户运行,该用户应该能够读取密钥库文件,因为它是0644,并且与
Logstash.yml
位于同一目录中


有没有人在Logstash&Ubuntu或类似的环境中经历过类似的事情?如果是这样的话,你是如何克服它的?我乐于接受各种想法,并希望能够实现这一点。

尝试以
logstash
用户的身份运行
logstash密钥库

sudo-u logstash/usr/share/logstash/bin/logstash密钥库\
--path.settings/etc/logstash列表
[除了关于此类秘密混淆的常见警告之外,值得明确指出的是,文档希望
logstash密钥库
作为
root
运行,而不是作为
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}
群堆
至此,您应该知道:

  • logstash在哪一组
  • 哪些组可以打开/etc/logstash
  • 哪些组能够读取/etc/logstash/logstash.keystore
你太长了,读不下去了,密钥库的模式是代码> 644 < /Cord>。很可能,LogSTASH只会成为代码> LogSTASH < /代码>组的成员,而<> > /ETC/LogStase< /C>会是世界可读的。
#将密钥库上的组设置为'logstash'`
chgrp logstash/etc/logstash/logstash.keystore
#确保密钥库是组可读的
chmod g+r/etc/logstash/logstash.keystore

如果不是权限,您可以尝试在不使用密码的情况下重新创建存储。如果成功,您将需要非常小心地处理密码环境变量,并仔细检查。在与客户端和弹性支持进行工作会话后,我们确定使用密码的问题是re是Logstash当前迭代中的一个bug,必须在没有密码的情况下继续前进。作为一种解决办法,已经采取了额外的安全措施,但希望在下一个补丁中解决。