logstash - 收集有关连接到服务器的IP的信息

时间:2015-11-06 03:34:48

标签: logstash kibana elastic-stack

我正在使用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中为每个人提供不同的字段。 请建议我如何做到这一点。 感谢。

1 个答案:

答案 0 :(得分:0)

grok过滤器可用于将消息解析为更有用的查询结构。

grok模式是正则表达式,但也包含可以使用的library of common patterns,而不是从头开始编写自己的表达式。这种简单解析的有用模式是NOTSPACE,它匹配任何非空白字符。其他模式(如IP)也可用于确保所选数据实际上符合您的预期。

filter {
  grok {
    match => {
      "message" => "^%{NOTSPACE:user} %{NOTSPACE:tty} %{IP:ip}"
    }
    named_captures_only => true
  }
}