2012-02-06 221 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”无论“数据的源类型。