2012-02-06 212 views
2

我正在使用Splunk解析來自幾臺服務器的IIS日誌文件,所有服務器都在IIS中設置了相同的字段,並且所有服務器運行的是相同版本的Windows 2003服務器。然而splunk會將這些日誌文件的源類型標記爲「iis」或「iis-2」或「iis-3」......即使是來自同一臺服務器。我似乎無法找到該模式。如何確保splunk標記所有日誌文件相同的類型?splunk解析IIS日誌文件

另一個問題是,對於一些日誌文件,splunk會自動提取查詢字符串字段中的所有鍵/值,而不會用於某些日誌文件...我想要splunk來解析查詢字符串鍵/值在索引時間,所以在搜索時間內會很快。

有人幫忙嗎?

感謝

回答

4

IIS日誌是很容易的Splunk,但你需要告訴它的日誌是什麼格式(因爲你可以改變日誌格式)。這是你的一個例子。

在inputs.conf($ SPLUNK_HOME \等\ SYSTEM \本地\ inputs.conf),添加一個節是這樣的:

[monitor://C:\inetpub\logs\LogFiles\W3SVC1\*.log] 
sourcetype=MSWindows:2008R2:IIS 
queue=parsingQueue 
index=msexchange 
disabled=false 

在props.conf($ SPLUNK_HOME \等\ SYSTEM \本地\ props.conf),添加一個節是這樣的:

[MSWindows:2008R2:IIS] 
TZ = GMT 
SHOULD_LINEMERGE = false 
CHECK_FOR_HEADER = false 
REPORT-fields = mswin_2008r2_iis_fields 
TRANSFORMS-comments = ignore_comments 

最後,我們需要定義transforms.conf兩個變換(在$ SPLUNK_HOME \等\ SYSTEM \本地\ transforms.conf)如下:

[ignore_comments] 
REGEX = ^#.* 
DEST_KEY = queue 
FORMAT = nullQueue 

[mswin_2008r2_iis_fields] 
FIELDS = "date","time","s_ip","cs_method","cs_uri_stem","cs_uri_query","s_port","cs_username","c_ip","cs_user_agent","sc_status","sc_substatus","sc_win32_status","time_taken" 
DELIMS = " " 

mswin_2008r2_iis_fields的格式取自IIS日誌文件的頂部。對於Windows Server 2008 R2中的默認IIS日誌,這是(很顯然)。位置和格式因版本而異,另外您可以在每臺主機上更改位置和格式。

有關這些配置文件的詳細信息,請參閱文檔 - 可以免費從http://docs.splunk.com

+0

看起來索引需要存在才能按照所述工作。我不得不創建索引msexchange,但我認爲創建一個名爲iis或其他東西會更有用... – 2017-08-26 18:20:19

0

的Splunk將自動識別許多種Splunk的數據源,稱爲「sourcetypes」的,如果你不告訴的Splunk要使用哪個特定的「源類型」,它將創建一個新的源類型,並根據它認爲匹配的源類型來命名它。
爲防止此功能將可能不同的源類型混合在一起,Splunk將創建一個新的帶有序列號的sourctype。 這就是爲什麼你看到「iis-2」,「iis-3」等等。 當你創建新的數據輸入時,如果它匹配你的數據,或者創建一個新的「iis」無論「數據的源類型。