如何解决Apache 日志 grok 模式
有人可以帮忙解决以下日志示例的 grok 模式吗?
85.85.85.85 webmail.company.com "CN=First Last/O=Company/C=CZ" [14/Dec/2020:05:58:18 +0100] "GET /mail/User. nsf/iNotes/Proxy/?OpenDocument&Form=s_ReadViewEntries&PresetFields=DBQuotaInfo;1,FolderName;($Inbox),UnreadCountInfo;1,SearchSort;DateD,s_UsingHttps;1,noPI;1&TZType=UTC&Start=1&Count=23&resortdescending1" HTTP/1 2054 "https://webmail.company.com/mail/User.nsf/iNotes/Proxy/?OpenDocument&Form=l_ScriptFrame&l=en&gz&CR&MX&TSF=20170318T181650,92Z&TSX=20180206T185427,185427,182FuasKuFuFuFusetFu safari&pt" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/87.0.4280.88 Safari/537.36" 125 INOTES_LOGIN_ID=First%20Last;微光= SI_TLM:20210209T072811%2C40Z&ST_Counter:3&LAO:邮件&SAB:1&CS_TLM:20210209T072831%2C15Z&V_TLM:20210210T080147%2C82Z&DMS:5&UI:X&MOTLM:20210129T113159%2C00Z&DBQS:1503571%2C%207168000%2C%206963200%2C%200%2C%201503571&SPRKL:1&KOSCZ: GTB&FISD:1; INOTES_LOGIN_ID=第一个%20最后一个; DWAShared=0; DWAMode=0; INOTES_LOGIN_ID=第一个%20最后一个; DWAShared=0; DWAMode=0; LtpaToken2 = FpoGJJz33bYLI + CtWy6OlIgoTJouNGEiduvxvQbcN8HRI7K6LThCsb1Dl8CzN72Zi05RGOUmQRMiOQcTk1norKHi6SbkEGI6GlXzjSIweBRSc8c + XPyAwA44PKPbu3WzrPfR0 + uoC0sgTPvochvQ / VfPL / sSaqUFoRswRwyI + UeaOwTs / DvKiWLCpiKrVkFk3SmDjrxPBHb / WiL5nDkpp8Dsjjxnlo4vpx7BdOoVNai1jybvHkW28KXxkb21o8SSpmU7ZFdHyZFjDWCYuuCVOx7asV / q4a3lWdxlPfWdPcUguHML + xDmsrMPm6fTUSKeKIKdQEPr6VDmitBi7Z5URIlkRrUyslkTcc28y6fQir3Y20Hc9TmOvwaBlG / ehnpv; LtpaToken中= 0x4JJ4oWKojdqoz08Ng + MRUkkJq2vYGLGN9lp8HL8FxbD + xnivE7qzCzf92Q6x5OAPOBFRNgxd3Qg225zLwnJFWO0lGeIweH8VDgyWOMImNe6E9z9HBnQAN43vQ2uwtpv3X5E5DN0oLIPKLxAkqsHUDJqJ0SE6NZ6UnfLoR82JyjZVC / s6QEov5DNdpAY / o2Gxh0vWmE + wuQGuCh4mVCIP9KU / dbX4F0Ld9JEExzIpkdzKELibU2Akov0Krv0eWADSV ++ M / 5ECLpaf6N6 / VzkZEkt5XoOoL6OD / 6ni4zojvo3O + X9Bn7Mdk2MnsQ1AccIohj5eN8Oi81QbD0a9b7jw ==; ShimmerS=ET:20210210T114045%2c00Z&R:0&AT:M" "D:/Lotus/Domino/Data/mail/User.nsf"
我需要的是客户端 IP (85.85.85.85)、虚拟主机名 (webmail / webmail.company.com)、用户 ( CN=之后的部分,First Last),时间(14/Dec/2020:05:58:18),URL(GET /mail/User.nsf/iNotes/ Proxy/?OpenDocument&Form=s_ReadViewEntries&PresetFields=DBQuotaInfo;1,FolderName; ... ) 和 设备信息 ( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko ) 铬/87.0.4280.88 Safari/537.36")
我知道它应该从下面开始,但是无论如何我都无法获得用户名以继续 [%{HTTPDATE:timestamp}] 并且接下来可能是 "(?:%{WORD:verb} %{NOTSPACE :request} 并且不确定如何获取设备信息。 任何帮助将不胜感激!
%{IPORHOST:clientip} %{WORD:VirtualHost} ???
解决方法
既然你已经自定义了你的日志格式,你就必须构建自己的 grok 来匹配日志。您可以使用 https://grokdebug.herokuapp.com/ 调试您要使用的模式,也可以从 https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns
复制一些模式 ,已解决:
%{IPORHOST:clientip} %{IPORHOST:destination.domain} "CN=%{DATA:username}" [%{HTTPDATE:apache.access.time}] "(?:%{WORD:http.request .method} %{DATA:url.original} HTTP/%{NUMBER:http.version}|-)?” %{NUMBER:http.response.status_code:long} (?:%{NUMBER:http.response.body.bytes:long}|-) ("%{DATA:http.request.referrer}") ("%{数据:user_agent.original}")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。