2015-11-06 156 views
0

我正在使用ELK可视化连接到我的服务器的所有客户端(通过腻子连接的计算机)IP地址的信息。 我正在使用'last'命令来获取连接到我的服务器的所有机器的IP地址列表。logstash - 收集有关IP连接到服务器的信息

最后一个命令的输出是如下

根PTS/0 32.97.110.56周一16年10月5日:44- 17点33分(19时03分)

根PTS/0 32.97.110.56周一10月5日18:06 - 18:19(00:12)

当我在kibana上推送这个信息时,使用logstash和elastic search我可以看到如下信息。

消息:根PTS/0 32.97.110.56周一10月5日16点44分 - 17时33分

我想通过空间分割的“信息”,这样我可以为每个在kibana不同的字段。 请给我建议我该怎么做。 谢谢。

回答

0

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

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

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