我正在寻找一种方法,允许我们通过 syslog 或类似方式将 IIS 高级日志记录转发到集中日志源。我们目前能够使用以下方法对常规 IIS 日志执行此操作:圈套;但是,对于 IIS 高级日志记录,其作用并不相同。
这IIS 高级日志记录的默认文件路径不同(%系统驱动器%\inetpub\logs\AdvancedLogs),文件名似乎基于 UTC 时间,看这里,而不是常规日志记录中可以指定的本地日期和时间。如果我们想用 Snare 测试这一点,这也会产生一个问题,即开发某种类型的通配符规则。欢迎提出任何想法。
答案1
logparser 能够插入 syslog
键入 logparser -h -o:syslog
包装到批处理文件或 powershell 脚本中。这是一个选项。
例子:
将 IIS 日志中的错误条目发送到 SYSLOG 服务器:
LogParser "SELECT TO_TIMESTAMP(date,time), CASE sc-status WHEN 500 THEN
'emerg' ELSE 'err' END AS MySeverity, s-computername AS MyHostname,
cs-uri-stem INTO @myserver FROM <1> WHERE sc-status >= 400" -o:SYSLOG
-severity:$MySeverity -hostName:$MyHostname
答案2
你看过圈套用于收集和转发日志到 syslog?我有一段时间没找过了,但是他们曾经支持基于文件的日志(即轮询 IIS 日志文件),以及直接支持 IIS 甚至 Windows 事件日志。