如何使用grok和logstash从日志中提取值
我必须从由以下行组成的日志中提取值:如何使用grok和logstash从日志中提取值,logstash,logstash-grok,logstash-configuration,Logstash,Logstash Grok,Logstash Configuration,我必须从由以下行组成的日志中提取值: <38>1 [2017-03-15T08:45:23.168Z] apache.01.mysite.com event=login;src_ip=xxx.xxx.xxx.xxx\, xxx.xxx.xxx.xxx\, xxx.xxx.xxx.xxx;site=FE-B1-Site;cstnr=1454528;user=498119;result=SUCCESS 1[2017-03-15T08:45:23.168Z]apache.01.mysi
<38>1 [2017-03-15T08:45:23.168Z] apache.01.mysite.com event=login;src_ip=xxx.xxx.xxx.xxx\, xxx.xxx.xxx.xxx\, xxx.xxx.xxx.xxx;site=FE-B1-Site;cstnr=1454528;user=498119;result=SUCCESS
1[2017-03-15T08:45:23.168Z]apache.01.mysite.com事件=登录;src_ip=xxx.xxx.xxx.xxx\,xxx.xxx.xxx\,xxx.xxx.xxx.xxx;场地=FE-B1场地;cstnr=1454528;用户=498119;结果=成功
例如,%{IP:source}
我只获得第一个IP,但有时我有3个IP地址。
如何提取所有IP、'cstnr'、'result'和'user'?看起来您有一个嵌套的、分隔的键值格式。第一个分隔符是
,其中每一个都是键=值
。此外,这些值在,
上进行分隔。您有足够的内存来获取第一个IP地址,但我建议您做一些不同的事情:
grok
获取站点名称后的整个字符串字段的kv
过滤器代码>,它将创建与键名相同的字段
kv
过滤器阶段捕获的src_ip
地址上的csv
过滤器。
- 使用
来正确命名这些字段columns=>[cstnr','result','user']