我正在運行ELK堆棧,並將所有的Windows日誌從nxlog傳遞給它,並且特別針對IIS日誌。在nxlog我在nxlog.conf文件運行此nxlog和elasticsearch解析問題
<Extension w3c> Module xm_csv Fields $date, $time, $s-ip, $cs-method, $cs-uri-stem, $cs-uri-query, $s-port, $cs-username, $c-ip, $csUser-Agent, $sc-status, $sc-substatus, $sc-win32-status, $time-taken FieldTypes string, string, string, string, string, string, string, string, string, string, string, string, string, string Delimiter ' ' UndefValue - </Extension>
我沒有運行任何解析logstash,當他們在elasticsearch/kibana顯示我得到這個巨人消息輸出,
{"message":"2015-10-19 22:17:26 10.10.10.10 GET javascriptScript.js - 443 - 10.10.10.10 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/7.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET4.0C;+.NET4.0E;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) 200 0 0 31\r","@version":"1","@timestamp":"2015-10-19T22:19:08.061Z","host":"10.10.10.10","type":"WindowsEventLog","tags":["_jsonparsefailure"]}
我希望能夠解析此消息,並獲取所有相關數據。似乎應該可以通過nxlog解析iis日誌,然後將json信息傳遞給elasticsearch。但我不確定這是我應該在nxlog方面還是logstash方面做的事情。我看過的所有內容都使用相同的w3c擴展名,但是我不能使用nxlog和logstash來解析IIS日誌。
太棒了,我可以通過調試用戶界面完全解析日誌。我將過濾器擴展到這個'%{TIME:time_stamp} \ s%{IP:source_ip} \ s%{WORD:cs_method} \ s%{DATA:cs_uri_stem} \ s%{DATA:cs_uri_query} \ s%{DATA :source_port} \ s的%{DATA:用戶名} \ S%{IP:CLIENT_IP} \ s的%{DATA:client_browser} \ s的%{DATA:REQUEST_STATUS} \ s的%{DATA:子狀態} \ s的%{DATA:win32_status } \ s'但我遇到了一個問題。我試圖解析包括time_taken字段的完整日誌,該字段是字符串中的最後一個字段。無論我做什麼,調試器都會顯示「無匹配」,即使最後有一個有效的字符。 – pcort
這是我正在使用的日誌行'2015-10-16 01:55:49 10.10.10.10 GET /note.txt querylinehere.asp 80 - 10.10.10.10 Mozilla/4.0 +(compatible; + MSIE + 8.0; + Windows + NT + 5.1; +三叉戟/ 4.0)404 0 2 2' – pcort
@pcport答案更新,希望它可以幫助... – markus