我正在使用logstash将消息放入AWS Kinesis流,并且输出插件需要身份验证,此身份验证将引用环境变量或来自文件。我们不必在logstash配置中设置用户和访问密钥,默认情况下它将引用env变量或文件。现在,此凭据将更改,我必须重新加载logstash管道。通过热重载或自动重载,我认为logstash将寻找配置中的任何更改,但就我而言,logstash配置将不会更改,环境变量或文件也会更改。在这种情况下,如何强制logstash重新加载配置文件。
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
file {
path => "\xx\\elk.log"
}
}
output {
kinesis {
stream_name => "acars-stream"
region => "us-east-2"
}
}
答案 0 :(得分:0)
由于您提到凭证可以使用环境变量进行传递,因此可以在输出插件中使用环境变量,并为logstash启用自动重新加载配置。遵循以下原则:
output {
kinesis {
stream_name => "acars-stream"
region => "us-east-2"
access_key => "${AWS_ACCESS_KEY}"
secret_key => "${AWS_SECRET_KEY}"
}
}
如果不是那样,那么您可以扩展需要更新凭据文件的过程,以便在需要更新凭据时也重新加载Logstash配置。
请参阅重新加载文档:https://www.elastic.co/guide/en/logstash/6.4/reloading-config.html 您将执行以下操作:
kill -1 PID_OF_YOUR_LOGSTASH_PROCESS