使用 shuf 来打乱一个文件中的行或是选择文件中一个随机的行。

nginx日志中http_x_forwarded_for有多个IP值,怎么取第一个IP值?

Logstash | 作者 tiandou | 发布于2018年05月14日 | 阅读数:16098

nginx日志中的http_x_forwarded_for字段会有多个IP。
使用自定义的模板,grok常用表达式的IPORHOST匹配http_x_forwarded_for 该字段,获取的IP值是最后一个,如何取第一个IP值?
试过grok其他表达式也不行,请问下有人处理过没,有没有其他办法?
已邀请:

a505100745

赞同来自:

mutate {
split => ["http_x_forwarded_for",","]
add_field => ["real_remote_addr","%{http_x_forwarded_for[0]}"]
}

tiandou

赞同来自:

此方法可以,谢谢大神。
当http_x_forwarded_for IP有多个值时,IPORHOST这些变量匹配不到所有IP,只能通过自定义正则来匹配到所有IP;再通过以上方法截取第一个IP值。
 
像这种格式的10.0.0.1, 10.0.0.2,  10.0.0.3, 10.0.0.4的正则如何匹配?
如下正则一直没有匹配到,可能哪里写的不对:
^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[,]*[\s]*

要回复问题请先登录注册