elasticsearch 如何获取Logstash密钥库以查找其密码?,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration" /> elasticsearch 如何获取Logstash密钥库以查找其密码?,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration" />

elasticsearch 如何获取Logstash密钥库以查找其密码?

elasticsearch 如何获取Logstash密钥库以查找其密码?,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration,背景:我正在尝试自动化步骤,以便在Ansible中提供和创建大量日志存储过程,但希望在自动化过程之前确保这些步骤和配置手动工作 我已经按照Elastic的文档安装了Logstash(它是一个RPM安装),并让它正确地将日志发送到我的ES实例,而不会出现问题。Elasticsearch和Logstash都是v7.12.0 接下来,我创建了一个/etc/sysconfig/logstash文件,并将该文件的权限设置为0600。我已经将LOGSTASH\u KEYSTORE\u PASS键添加到文件中

背景:我正在尝试自动化步骤,以便在Ansible中提供和创建大量日志存储过程,但希望在自动化过程之前确保这些步骤和配置手动工作

我已经按照Elastic的文档安装了Logstash(它是一个RPM安装),并让它正确地将日志发送到我的ES实例,而不会出现问题。Elasticsearch和Logstash都是v7.12.0

接下来,我创建了一个
/etc/sysconfig/logstash
文件,并将该文件的权限设置为0600。我已经将
LOGSTASH\u KEYSTORE\u PASS
键添加到文件中,以用作KEYSTORE命令在创建和读取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。是否有人遇到过类似的问题,如果是,您是如何解决的?

这是意料之中的,当您将logstash作为服务启动时,文件
/etc/sysconfig/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
文件中读取变量。

这是有意义的,我只希望文档能够反映这一点。一旦我有机会测试,我会接受这个答案!