我第一次在 Stack Overflow 上发帖。如果我重复提问,我深表歉意。我尝试搜索,但对于我想要了解的内容,我并没有找到任何明确的信息。
我是否需要在 Syslog-ng 中配置其他参数以允许格式 JSON 模板将标准 Syslog 格式转换为 JSON?
环境:我将 Varonis 日志转发到运行 Syslog-ng 的 Linux(Centos 8)服务器。日志以以下格式接收:
“|时间戳| |服务器主机| |规则ID| |规则名称| |规则情节| |规则描述| |警报时间| |事件时间| |代理对象|”
重申我的问题,我是否需要手动创建键值对,然后调用 format-JSON() 函数,或者 format-JSON() 函数是否为我完成这项工作?
答案1
简短的回答是:是的。
长一点的:
您可以使用 format-json 模板函数以 json 格式输出消息的名称-值对。默认情况下,这些名称-值对包含 syslog 消息的标准部分,如 DATE、HOST 和 MESSAGE,其中 MESSAGE 包含消息的文本部分(字符串)。syslog-ng 有多个解析器可以将 MESSAGE 部分转换为名称-值对。
快速谷歌搜索显示您的 varonis 日志采用 CEF 或 LEEF 格式。据我所知,syslog-ng 没有现成的解析器来解析这些格式。我不熟悉这些格式,但如果它们总是包含相同的字段,那么您可能可以使用针对性强的解析器来解析它csv-解析器()使用字符串分隔符如果格式比这更复杂,那么我建议联系 syslog-ng 开发人员,寻求他们的帮助页面底部的 discord 频道。
关于此回复中的链接的说明:我链接的文档提到了 axosyslog,它是一个 syslog-ng 发行版,他们的文档也涵盖了经典的 syslog-ng。