如何改进庞大的 Logstash "If Statement"
How to improve huge Logstash "If Statement"
我的 logstash 实例正在读取 sysmon 事件(从 nxlog 在 json 中传送),并在我操作一些字段后将它们存储在 elasticsearch 中。
我想用基于 sysmon 事件类型的值创建一个新字段。我可以使用字段 [Task] 来确定我正在接收哪个 sysmon 事件(1 到 9)。但我最终得到了这个巨大的 if/else 声明。
我宁愿能够建立一些本地阵列:
EventObject=>['process','file','flow','sysmon']
然后,使用类似
的内容创建一个新字段
mutate { add_field => {"object" => EventObject[$Task]}}
相反,我有这个
if [Task] == 1 {
mutate {
add_field => {"object" => "process"}
}
} else if [Task] == 2 {
mutate{
add_field => {"object" => "file"}
} else if [Task] == 3 {
mutate{
add_field => {"object" => "flow"}
} else if [Task] == 4 {
etc....
enter code here
正确的做法是什么?我正在努力使我的 logstash 配置易于阅读并减少行数。
你想要 translate filter.
我的 logstash 实例正在读取 sysmon 事件(从 nxlog 在 json 中传送),并在我操作一些字段后将它们存储在 elasticsearch 中。
我想用基于 sysmon 事件类型的值创建一个新字段。我可以使用字段 [Task] 来确定我正在接收哪个 sysmon 事件(1 到 9)。但我最终得到了这个巨大的 if/else 声明。
我宁愿能够建立一些本地阵列:
EventObject=>['process','file','flow','sysmon']
然后,使用类似
的内容创建一个新字段mutate { add_field => {"object" => EventObject[$Task]}}
相反,我有这个
if [Task] == 1 {
mutate {
add_field => {"object" => "process"}
}
} else if [Task] == 2 {
mutate{
add_field => {"object" => "file"}
} else if [Task] == 3 {
mutate{
add_field => {"object" => "flow"}
} else if [Task] == 4 {
etc....
enter code here
正确的做法是什么?我正在努力使我的 logstash 配置易于阅读并减少行数。
你想要 translate filter.