比如现在有一条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_session和CompanyName的值
现在的问题是,通过grok匹配报"_grokparsefailure",原因是CompanyName和emp_session先后顺序是随机的,然后_ati也是有时候有有时候无,还有其他_XXX(__guid,_umdata等)字段会随机出现,现在确定的是emp_session和CompanyName 肯定在最后。
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自定义写法不对,要如何修改,刚刚开始搞这个。很多不懂的,请大神指导,谢谢!!!