如何让Logstash-Keystore找到它的密码?

oyjwcjzk  于 2023-02-01  发布在  Logstash
关注(0)|答案(2)|浏览(935)

背景:我尝试在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。有人遇到过类似的问题吗?如果有,你是如何解决的?

6yjfywim

6yjfywim1#

这是预期的,文件/etc/sysconfig/logstash将是只读的,当您启动logstash作为一个服务,而不是当您从命令行运行它。
要创建密钥存储库,您需要首先导出带有密码的变量,如文档中所述。

set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
sudo -E /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash create

之后,当您将logstash作为服务启动时,它将从/etc/sysconfig/logstash文件中读取变量。

j2cgzkjk

j2cgzkjk2#

1 -你应该写你的密码为KEYSTORE本身。
它位于***配置/启动选项***下。例如LOGSTASH_KEYSTORE_PASS=mypassword(无导出)
2 -然后您应该使用密钥库密码来创建您的密钥库文件。

set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
..logstash/bin/logstash-keystore --path.settings ../logstash create

**注意:**logstash-keystore和logstash.keystore是不同的东西。你用点创建了一个。它在config/..目录下,你的startup.options在那里。

历史命令是为了隐藏你的密码。因为如果有人使用“历史”列出所有以前使用的命令,他们可以看到你的密码。
然后你可以把你的第一个密码添加到密钥库文件中。你应该事先给予你的密钥库密码。

set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
./bin/logstash-keystore add YOUR_KEY

然后它会询问您的值。如果您没有给予您的密钥库密码,您会得到一个错误:Found a file at....but it's not a valid Logstash keystore
4 -一旦你给予了你的密码。你可以列出你的密钥库文件的内容,或者删除。用“删除”替换“列出”。

./bin/logstash-keystore list

相关问题