logstash解析IPV6地址

时间:2016-10-16 08:01:29

标签: elasticsearch logstash logstash-grok logstash-configuration morgan

我是logstash / grok模式的新手。

在我的日志文件中,我有一行格式如下:

::ffff:172.19.7.180 - - [10/Oct/2016:06:40:26 +0000] 1 "GET /authenticator/users HTTP/1.1" 200 7369

当我尝试使用匹配%{IP}的简单IP模式时,使用grok构造函数,它只显示部分匹配:

after match:    .19.7.180 - - [10/Oct/2016:06:33:58 +0000] 1 "POST /authenticator/searchUsers HTTP/1.1" 200 280

因此,只有一部分IP地址匹配,因为匹配后的部分'仍显示IP地址的剩余部分。

查询: 1.这种格式的IP地址是什么:: ffff:172.19.7.180? 2.如何解决此问题,以确保正确解析IP地址?

BTW,我使用的是nodejs中间件morgan logger,它以这种格式打印IP地址。

2 个答案:

答案 0 :(得分:2)

请注意,该日志包含以冒号分隔的两个 IPv4和IPv6地址,因此您需要使用的正确模式如下:

%{IPV6:ipv6}:%{IPV4:ipv4}

然后在您的活动中,您将有两个字段:

"ipv6" => "::ffff"
"ipv4" => "172.19.7.180" 

这将在解决this issue之前有效。

答案 1 :(得分:1)

这些IP地址采用IPv4嵌入式IPv6格式,%{IP}与之不匹配。唯一的方法是使用%{DATA}或编写自己的正则表达式。