即使文件未更改,也重新加载logstash配置文件

时间:2019-04-18 01:28:45

标签: logstash logstash-configuration

我正在使用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"
  }
}

使用的插件-https://github.com/samcday/logstash-output-kinesis

1 个答案:

答案 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