按状态码过滤 NXlog+GrayLog2 中的 IIS 日志
Posted
技术标签:
【中文标题】按状态码过滤 NXlog+GrayLog2 中的 IIS 日志【英文标题】:Filter IIS logs in NXlog+GrayLog2 by status code 【发布时间】:2016-10-20 09:50:59 【问题描述】:我有
<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, $cs-Referer, $cs-host, $sc-status, $sc-substatus, $sc-win32-status, $time-taken
FieldTypes string, string, string, string, string, string, integer, string, string, string, string, string, integer, integer, integer, integer
Delimiter ' '
QuoteChar '"'
EscapeControl FALSE
UndefValue -
</Extension>
我有
<Input iis>
Module im_file
File "C:\\inetpub\\logs\\LogFiles\\u_ex*.log"
SavePos TRUE
Exec \
if $raw_event =~ /^#/ drop(); \
else \
\
w3c->parse_csv(); \
$EventTime = parsedate($date + " " + $time); \
$EventTime = strftime($EventTime, "%Y-%m-%dT%H:%M:%SZ"); \
$SourceName = "IIS"; \
</Input>
当我尝试添加类似
的内容时if $raw_event =~ /^#/ or $sc-status == 101 drop(); \
我在日志中遇到这样的错误:
couldn't parse statement at line 91, character 46 in C:\Program Files (x86)\nxlog\conf\nxlog.conf; syntax error, unexpected -, expecting (
我曾尝试使用类似的选项,但它不起作用。
我做错了什么,请帮助我。谢谢。
【问题讨论】:
【参考方案1】:我找到了解决方案,只需将 <Extension w3c>
字段中的 sc-status
重命名为 scStatus
,错误就消失了。因为解析器按顺序获取列,而不是按名称。
我也得到了来自 nxlog 社区的回答 Link
【讨论】:
以上是关于按状态码过滤 NXlog+GrayLog2 中的 IIS 日志的主要内容,如果未能解决你的问题,请参考以下文章