在配置Logstash時,你可能須要指定敏感設置或配置,好比密碼,與依賴文件系統權限來保護這些值不一樣,你可使用Logstash keystore來安全地存儲用於配置設置的secret值。segmentfault
在向keystore中添加key及其secret值以後,你能夠在配置敏感設置時使用key代替secret值。安全
引用key的語法與環境變量的語法相同:${KEY}
,KEY
是key的名稱。elasticsearch
例如,假設keystore包含一個名爲ES_PWD
的key,其值爲yourelasticsearchpassword
:佈局
output { elasticsearch {...password => "${ES_PWD}" } } }
logstash.yml
中使用:xpack.management.elasticsearch.password: ${ES_PWD}
注意,Logstash keystore與Elasticsearch keystore不一樣,雖然Elasticsearch keystore容許你按名稱存儲elasticsearch.yml
值,可是Logstash keystore容許你指定可在Logstash配置中引用的任意名稱。加密
當前不支持從
pipelines.yml
或命令行(-e)引用keystore數據。
從集中式管道管理引用keystore數據須要每一個Logstash部署都有keystore的本地副本。
當Logstash解析設置(Logstash.yml
)或配置(/etc/logstash/conf.d/*.conf
)時,它會在解析環境變量以前解析keystore中的key。命令行
你能夠經過在名爲LOGSTASH_KEYSTORE_PASS
的環境變量中存儲密碼來保護對Logstash keystore的訪問,若是在設置此變量後建立Logstash keystore,它將受到密碼保護。這意味着環境變量須要被正在運行的Logstash實例訪問,這個環境變量還必須爲須要發出keystore命令(添加、列表、刪除等)的任何用戶正確設置。code
建議使用keystore密碼,但這是可選的,即便你沒有設置密碼,數據也會被加密。可是,強烈建議配置keystore密碼並對任何可能包含環境變量值的文件授予限制性權限,若是你選擇不設置密碼,那麼你能夠跳過本節的其他部分。ip
例如:rem
set +o history export LOGSTASH_KEYSTORE_PASS=mypassword set -o history bin/logstash-keystore create
這個設置要求運行Logstash的用戶定義環境變量LOGSTASH_KEYSTORE_PASS=mypassword
,若是沒有定義環境變量,Logstash就沒法訪問keystore。文檔
當你從RPM或DEB包安裝中運行Logstash時,環境變量來自/etc/sysconfig/logstash
。
你可能須要建立/etc/sysconfig/logstash
,這個文件應該由具備600
權限的root
用戶擁有,/etc/sysconfig/logstash
的格式應該是ENVIRONMENT_VARIABLE=VALUE
,每行一個條目。
對於其餘發行版,如Docker或ZIP,請參閱運行時環境(Windows、Docker等)的文檔,瞭解如何爲運行Logstash的用戶設置環境變量,確保該環境變量(以及密碼)只能被該用戶訪問。
keystore必須位於Logstash的path.settings
目錄,這是包含logstash.yml
文件的同一個目錄。在對keystore執行任何操做時,建議爲keystore命令設置path.settings
,例如,在RPM/DEB安裝上建立keystore :
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目錄佈局。
若是path.settings
沒有指向與logstash.yml
相同的目錄,你將看到一個警告。
要建立keystore,請使用create
:
bin/logstash-keystore create
在path.settings
配置設置中定義的目錄中建立密鑰存儲庫。
建議在建立keystore時設置keystore密碼。
要存儲敏感值,好比Elasticsearch的身份驗證憑證,可使用add
命令:
bin/logstash-keystore add ES_PWD
當提示時,爲key輸入一個值。
要列出在keystore中定義的key,請使用:
bin/logstash-keystore list
要從keystore中移除key,請使用:
bin/logstash-keystore remove ES_PWD