在我的系统中,我使用logstash,filebeat和elasticsearch Filebeat读取日志,日志中的必填字段用logstash过滤并保存在elasticsearch中。
我有一个客户要求,通过客户一次配置更改来打开/关闭保存日志中的某些字段。
我计划的方法是将switch变量作为环境变量保留在“ / etc / default / logstash”位置,并让客户通过文件操作来更改变量。
但是我发现,即使我们设置“ config.reload.automatic:true”,更改该文件时也不会重新加载logtash配置。因此,我无法继续计划的方法。 同样,让客户编辑logstast的“ .conf”文件也不是一个好方法,因为代码太复杂了。
请对此问题提出建议。
谢谢
答案 0 :(得分:0)
我发现,如果不重新启动logstash,则无法在环境中重新加载变量的值。因此,我使用了文件读取解决方案。配置块如下。
ruby {
code => "event.set( 'variable1',IO.readlines('/etc/logstash/input.txt')[0])"
}
这解决了我的问题。但是我想知道在每个事件中执行文件操作都会对性能产生影响