splunk解析IIS日志文件

时间:2012-02-06 22:59:02

标签: windows iis query-string splunk logfile

我正在使用Splunk从几台服务器解析IIS日志文件,所有服务器在IIS中都设置了相同的字段,并且所有服务器都运行相同版本的Windows 2003服务器。然而,splunk将这些日志文件的源类型标记为“iis”或“iis-2”或“iis-3”......甚至来自同一服务器。我似乎无法找到这种模式。如何确保splunk标记所有日志文件的类型相同?

另一个问题是,对于某些日志文件,splunk自动提取查询字符串字段中的所有键/值,而不是某些日志文件...我想让splunk解析查询字符串键/值at at索引时间因此在搜索时间内会很快。

有谁帮忙?

由于

2 个答案:

答案 0 :(得分:4)

IIS日志非常容易splunk,但您需要告诉它日志的格式(因为您可以更改日志格式)。这是一个例子。

在inputs.conf($ SPLUNK_HOME \ etc \ system \ local \ _输入.conf)中,添加如下节:

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

在props.conf($ SPLUNK_HOME \ etc \ system \ local \ 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 \ etc \ system \ local \ 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

免费获取

答案 1 :(得分:0)

Splunk将自动识别Splunk中称为“sourcetypes”的多种数据源,如果你不告诉Splunk使用哪种特定的“sourcetype”,它将创建一个新的sourcetype并根据哪个sourcetype命名它它认为它匹配。
为了防止此功能将可能不同的源类型混为一谈,Splunk将创建一个附加了序列号的新的sourctype。 这就是你看到“iis-2”“iis-3”等的原因。 您应该在创建新数据输入时选择“iis”sourcetype,如果它与您的数据匹配,或者为您的数据创建新的“iis-whatever”源类型。

相关问题