我们正在尝试为LogStash
服务器中的所有管道添加一个字段(我们有6个本地logtash,每个国家3个)。具体来说,我们尝试从环境变量中添加一个字段,以标记索引中带有后缀的管道的输出,例如(美国,欧盟),但是我们有很多管道(按国家/地区大约为145个)和主要思想没有在所有输出插件中添加此环境变量,这也不是必需的,因此,如果有人忘记添加环境变量,我们将遇到严重的问题。
然后,我们试图找到一种在每个输出中自动添加此字段而不添加此环境变量的方法,以您的经验,在logstash“ world”中是否可以在输出插件的索引中附加后缀?
示例
output {
elasticsearch {
hosts => localhost
manage_template => false
index => "index-%{+YYYY.MM.dd}_${COUNTRY_VARIABLE}"
}
}
我想在发送文档之前自动添加${COUNTRY_VARIABLE}
。
[不可能在elasticsearch
中执行此操作,因为它安装在aws
中,并且检查logstash
中所有可能的主机输入的流量是我们不希望拥有的成本。
当然可以。如果将后备值添加到env var,则在有人忘记定义一个值的情况下就可以了:${COUTRY_VARIABLE:XX}
output {
elasticsearch {
hosts => localhost
manage_template => false
index => "index-%{+YYYY.MM.dd}_${COUNTRY_VARIABLE:ABC}"
}
}
请参阅here了解logstash中的env var的更多背景。
关于Logstash中的管道传输,请查看pipeline viewer,这是一个简单的开源工具。它使您可以修复多管道结构中的错误,包括输入,输出和管道之间的连接,并检测损坏的管道连接和周期。
虽然Logstash相当灵活,使我们能够在数小时内轻松为任何新产品编写新的解析器,但事实是,它依赖于单个管道引发了一些配置方面的问题,并且需要一些逻辑和注意来确保每个日志都由处理程序处理。正确的解析器。
但是,使用多管道功能,每个产品都有其自己的独立解析器,包括输入,解析器逻辑(Logstash中的filter部分)和输出。
非常欢迎您阅读我写的这个博客中的更多内容-“ Preventing Misconfiguration in Logstash with empow’s Pipeline Viewer”:-)