如何使用管道将数字 ID 更改为 Graylog 中的句子?

问题描述

我正在尝试“美化”我从 Graylog 上的某些 Windows 日志接收到的数据。我的想法是将 Windows 日志 ID 从数字更改为该 ID 的实际定义。例如:我收到一个 ID 4625 的日志,我想在我的小部件中显示“帐​​户登录失败”

为此,我使用了一个管道和一个查找表,它从我上传到服务器上的 .csv 文件中以自然语言读取 ID 和相应的定义。

这是我为管道编写的规则,但似乎不起作用:

rule "eventid_windows_rule"

when

  has_field("winlogbeat_winlog_event_id")

then

let winlogbeat_winlog_italiano = lookup("winlogbeat_winlog_event_id",to_string($message.winlogbeat_winlog_event_id));

set_field("winlogbeat_winlog_italiano",winlogbeat_winlog_italiano);

end

我认为我的问题特别出在这个规则上,因为 Graylog 允许测试查找表,如果我手动写一个 ID,查找表会找到相应的描述。

解决方法

我自己解决了这个问题,这是规则的正确代码:

rule "eventid_windows_rule"

when

  has_field("winlogbeat_winlog_event_id")

then

let winlogbeat_winlog_italiano = lookup("eventid_widget_windows_lookup",$message.winlogbeat_winlog_event_id);

set_field("winlogbeat_winlog_italiano",winlogbeat_winlog_italiano);

end

此规则检查日志是否有字段"winlogbeat_winlog_event_id",然后生成新字段"winlogbeat_winlog_italiano",关联"winlogbeat_winlog_event_id的数值" 使用自然语言描述,这要归功于我创建的 .csv,然后将描述放在 "winlogbeat_winlog_italiano" 字段中。

enter image description here