我正在使用ELK可视化连接到我的服务器的所有客户端(通过putty连接的机器)的ip地址信息。 我正在使用' last'命令获取连接到我的服务器的所有机器的IP地址列表。
最后一个命令的输出如下
root pts / 0 32.97.110.56星期一10月5日16:44-17:33(19:03)
root pts / 0 32.97.110.56星期一10月5日18:06 - 18:19(00:12)
当我在kibana上推送这些信息时,使用logstash和弹性搜索我可以看到如下信息。
消息:root pts / 0 32.97.110.56星期一10月5日16:44 - 17:33
我想分开这条消息'通过空间,我可以在kibana中为每个人提供不同的字段。 请建议我如何做到这一点。 感谢。
答案 0 :(得分:0)
grok
过滤器可用于将消息解析为更有用的查询结构。
grok
模式是正则表达式,但也包含可以使用的library of common patterns,而不是从头开始编写自己的表达式。这种简单解析的有用模式是NOTSPACE
,它匹配任何非空白字符。其他模式(如IP
)也可用于确保所选数据实际上符合您的预期。
filter {
grok {
match => {
"message" => "^%{NOTSPACE:user} %{NOTSPACE:tty} %{IP:ip}"
}
named_captures_only => true
}
}