2

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

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

有人帮忙吗?

谢谢

4

2 回答 2

4

IIS 日志很容易生成,但您需要告诉它日志的格式(因为您可以更改日志格式)。这是一个给你的例子。

在 inputs.conf ($SPLUNK_HOME\etc\system\local\inputs.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免费提供

于 2012-04-04T17:18:00.860 回答
0

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

于 2015-01-30T22:52:31.440 回答