背景:我尝试在Ansible中自动化提供和创建大量Logstash流程的步骤,但希望确保在自动化流程之前手动执行这些步骤和配置。
我已经按照Elastic的文档安装了Logstash(它是一个RPM安装),并且它正确地将日志发送到我的ES示例,没有问题。
在keystore docs之后,我创建了一个/etc/sysconfig/logstash
文件,并将该文件的权限设置为0600。我将LOGSTASH_KEYSTORE_PASS
密钥添加到该文件中,以用作keystore命令在创建和阅读密钥库本身时提供的环境变量。
运行sudo /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash create
命令时,进程返回以下错误:
WARNING: The keystore password is not set.
Please set the environment variable `LOGSTASH_KEYSTORE_PASS`.
Failure to do so will result in reduced security.
Continue without password protection on the keystore? [y/N]
这不应该是这样的,因为密钥存储进程应该从前面提到的文件中获取我的密码env var。有人遇到过类似的问题吗?如果有,你是如何解决的?
2条答案
按热度按时间6yjfywim1#
这是预期的,文件
/etc/sysconfig/logstash
将是只读的,当您启动logstash作为一个服务,而不是当您从命令行运行它。要创建密钥存储库,您需要首先导出带有密码的变量,如文档中所述。
之后,当您将logstash作为服务启动时,它将从
/etc/sysconfig/logstash
文件中读取变量。j2cgzkjk2#
1 -你应该写你的密码为KEYSTORE本身。
它位于***配置/启动选项***下。例如
LOGSTASH_KEYSTORE_PASS=mypassword
(无导出)2 -然后您应该使用密钥库密码来创建您的密钥库文件。
**注意:**logstash-keystore和logstash.keystore是不同的东西。你用点创建了一个。它在config/..目录下,你的startup.options在那里。
历史命令是为了隐藏你的密码。因为如果有人使用“历史”列出所有以前使用的命令,他们可以看到你的密码。
然后你可以把你的第一个密码添加到密钥库文件中。你应该事先给予你的密钥库密码。
然后它会询问您的值。如果您没有给予您的密钥库密码,您会得到一个错误:
Found a file at....but it's not a valid Logstash keystore
4 -一旦你给予了你的密码。你可以列出你的密钥库文件的内容,或者删除。用“删除”替换“列出”。