问题描述
我正在尝试“美化”我从 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" 字段中。