首页 新闻 会员 周边

请问:grok自定义匹配规则,有先后顺序吗?

0
[已关闭问题] 关闭于 2018-01-02 12:42

比如现在有一条apache日志

180.173.65.112 - 

[22/Dec/2017:17:28:40 +0800]
"GET /index.php/.../search?_dc=1...1&sale_code=RG2...39 HTTP/1.1"
200
1038
"http://www.....cn/index.php"
"Mozilla/5.0 (...) AppleWebKit/537.36 (...) Chrome/.../537.36"
"_ati=927...99;
  CompanyName=%E9%83...B8;
  emp_session=dc68...5500510"

前面是基本的access_log后面黑体是自定义cookie。

现在需要保存emp_sessionCompanyName的值

现在的问题是,通过grok匹配报"_grokparsefailure",原因是CompanyName和emp_session先后顺序是随机的,然后_ati也是有时候有有时候无,还有其他_XXX(__guid,_umdata等)字段会随机出现,现在确定的是emp_sessionCompanyName 肯定在最后。

 

grok配置如下:

#session companyname
SESSION ([a-z]|[0-9]){40}
COMPANY (.*?)[^;"]+

 

HTTPD_COMBINEDLOG_COOKIE %{HTTPD_COMBINEDLOG} %{SESSION:session} %{COMPANY:company}

 

filter {
  grok {
    match => { "message" => "%{HTTPD_COMBINEDLOG_COOKIE}"}
  }
}

 

请问:要如何是否grok自定义写法不对,要如何修改,刚刚开始搞这个。很多不懂的,请大神指导,谢谢!!!

友谅的主页 友谅 | 初学一级 | 园豆:169
提问于:2017-12-22 17:47
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册