【发布时间】:2021-09-25 07:32:07
【问题描述】:
您好,我有一个由两个事件组成的系统日志
Jul 6 13:24:27 NODE1 zeus.eventd[14176]: pools/POOL nodes/IP:3000 nodefail Node NODE2 has failed - A monitor has detected a failure
Jul 6 13:24:34 NODE1 zeus.eventd[14176]: pools/POOL nodes/IP:3000 nodeworking Node NODE2 is working again
我想从 syslog 中提取 NODE2 并将其作为一个字段与 nodefail/nodeworking 一起添加到索引中
目前我的输入/grok 是
syslog {
grok_pattern => "%{SYSLOGLINE}"
}
没有过滤器,但是我需要的所有信息都填充在“消息”字段中,因此我无法在弹性中使用它
我知道我想要在 syslog 行中的位置,我只需将其拉出并添加为字段
有没有人能告诉我我需要的输入/过滤器配置来实现这一点?
谢谢,
魔方
编辑:消息字段如下所示:
zeus.eventd 14176 - - SERIOUS pools/POOL nodes/IP:3000 nodefail Node NODENAME has failed - A monitor has detected a failure
zeus.eventd 14176 - - INFO pools/POOL nodes/IP:3000 nodeworking Node NODENAME is working again
【问题讨论】:
-
解析
message字段的grok 模式应如下所示^pools/POOL nodes/IP:\d+ %{WORD:status} Node %{WORD:node_name};你也可以使用 dissect 过滤器,它更容易使用。
标签: logstash elastic-stack logstash-grok logstash-configuration elk