😺
LogstashのSecrets keystoreを使用したらハマった
Secrets keystoreとは?
Logstashの設定ファイルを下記のように設定してないでしょうか?
output {
elasticsearch {
hosts => [""]
user => "elastic"
password => "mypassword"
}
}
設定ファイルに、userやpassword情報が直接書かれてしまっています
これを避けたい!
そんな時に役に立つのが 「Secrets keystore」
「Secrets keystore」に「es_user」「es_pwd」を登録すれば下記のように設定できます
output {
elasticsearch {
hosts => [""]
user => "${es_user}"
password => "${es_pwd}"
}
}
手順
下記手順の通りにやれば・・・ 私は動かなかった
※環境は、CentOS6、Logstash7.8.1で実施した
- キーストアーの作成(パスワードを設定しないと後でコマンドラインで聞かれます)
set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
sudo -E /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash create
- 「es_pwd」を設定(後で、値は聞かれて設定します)
sudo -E /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash add es_pwd
- 設定されたか確認
sudo -E /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash list
es_pwd
- Logstashを再起動する
何が起きたのか?
下記エラーが発生した
Found a file at /etc/logstash/logstash.keystore, but it is not a valid Logstash
ふむふむ、よく分からん・・・・
下記に答えがあった。
どうも、手順1で設定した「LOGSTASH_KEYSTORE_PASS=mypassword」を
サービス起動時のファイルに設定しないと動かないらしい
Logstash keystore / run as service / missing password / error message / misleading. #9711
- LOGSTASH_KEYSTORE_PASSの設定
サービスファイルが「/etc/init/logstash.conf」を使用しているため下記を修正
ここらへんは、使用しているOSによって異なります
sudo vim /etc/default/logstash
LOGSTASH_KEYSTORE_PASS="mypassword"
- Logstashを再起動する
上手く動きました!!
Discussion