将Windows日志转换为Syslog

Posted 张善友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Windows日志转换为Syslog相关的知识,希望对你有一定的参考价值。

无论是Unix、Linux、FreeBSD、Ubuntu,还是路由器、交换机,都会产生大量的日志,而这些,一般会以syslog的形式存在。在​​RFC 3164​​中定义了syslog是一种日志协议,syslog数据包的大小为1024字节,包含Facility, Severity, Hostname, Timestamp和Message信息。syslog服务器默认使用UDP 514号端口。简单的说,syslog可以告诉管理员:谁(Facility),什么时间(Timestamp),什么地方(Hostname)做了什么事情(Message),以及这个事情的重要性(Severity)。

Syslog中的Facility就是谁,它可以是操作系统的内核,邮件服务,Web服务器,打印机等等。​​RFC 3164​​ 定义用数字来表示不同的Facility,其中16-18可为自定义的(比如Cisco就用local4发送PIX防火墙的syslog,用local7发送3000VPN集中器的syslog),具体如下:

Integer Facility

0 Kernel messages

1 User-level messages

2 Mail system

3 System daemons

4 Security/authorization messages

5 Messages generated internally by Syslogd

6 Line printer subsystem

7 Network news subsystem

8 UUCP subsystem

9 Clock daemon

10 Security/authorization messages

11 FTP daemon

12 NTP subsystem

13 Log audit

14 Log alert

15 Clock daemon

16 Local use 0 (local0)

17 Local use 1 (local1)

18 Local use 2 (local2)

19 Local use 3 (local3)

20 Local use 4 (local4)

21 Local use 5 (local5)

22 Local use 6 (local6)

23 Local use 7 (local7)

Syslog中的Severity表示事情的重要性,具体如下。

Integer Severity

0 Emergency: System is unusable.

1 Alert: Action must be taken immediately.

2 Critical: Critical conditions.

3 Error: Error conditions.

4 Warning: Warning conditions.

5 Notice: Normal but significant condition.

6 Informational: Informational messages.

7 Debug: Debug-level messages.

Windows有自己的日志协议,称为Event Log。为什么不建立一台中心Syslog服务器来接受所有的Windows,Linux,网络设备等等发送来的日志呢?这样你可以轻松地在一台日志服务器上管理所有的日志。

Windows操作系统本身是可以产生很多日志的,如每次插拔U盘、服务的重启等,都会产生日志,这些信息会记录在操作系统中,如果我们想集中管理,怎么办?Windows操作系统本身并不支持把日志发送到SYSLOG服务器去,但是我们就没办法了?

Evtsys是用C写的程序,提供发送Windows日志到syslog服务器的一种方式。它支持Windows Vista和Server 2008,并且编译后支持32和64位环境。它被设计用于高负载的服务器,Evtsys快速、轻量、高效率。并可以作为Windows服务存在。

​http://code.google.com/p/eventlog-to-syslog/​​​ 查看并获取最新更新。值得称道的是,程序仅仅有几十KB大小!
下载Evtsys后,将其复制到系统目录,XP下是Windows\\system32目录。然后在CMD下执行:

evtsys.exe -i -h 192.168.1.101 -p 514

这个是标准格式,亦可精简为:

evtsys -i -h 192.168.1.101

参数说明:
i是安装成Window服务;
h是syslog服务器地址;
p是syslog服务器的接收端口。
默认下,端口可以省略,默认是514.
启动Evtsys服务,命令是:

net start evtsys

查看Windows的“服务”,发现在原本Event Log服务下面增加了一个“Eventlog to Syslog”,并且已经启动.

打开windows组策略编辑器 (开始->运行 输入 gpedit.msc)

在windows设置-> 安全设置 -> 本地策略 ->审核策略 中,打开你需要记录的windows日志。evtsys会实时的判断是否有新的windows日志产生,然后把新产生的日志转换成syslogd可识别的格式,通过UDP 3072端口发送给syslogd服务器。

另外一个工具是​​SNARE​​,SNARE for Windows是一款让你很容易的把Windows(NT/2000/XP/2003等,亦支持64位系统)事件日志实时转发到SYSLOG服务器的程序,并且无论是32位还是64位系统,只有一个安装包,也可以配置静默安装模式,当然这个需要您自己去看文档了。

SNARE支持安全日志、应用日志、系统日志,同时支持DNS、文件复制服务、活动目录(Active Directory)日志等。

下载: ​​http://sourceforge.net/projects/snare/files/Snare%20for%20Windows/​

配置: 下载下来的文件是SnareForWindows-4.x.x.x-MultiArch.exe这样的,基本上只需要Next就可以安装完毕。然后开始菜单中InterSect Alliance下面有三个子项:

Disable Remote Access to Snare for Windows:禁止Snare的远程管理

Restore Remote Access to Snare for Windows:恢复Snare的远程管理

Snare for Windows:程序配置界面,选择后在浏览器打开http://localhost:6161/地址,然后选择左侧菜单的Network Configuration选项

​Free WhatsUp Syslog Server – 免費 Syslog Server 何處尋? 在這裡!!​

​Syslog daemon for Windows Eventlog​




以上是关于将Windows日志转换为Syslog的主要内容,如果未能解决你的问题,请参考以下文章

如何将windows日志转成syslog格式

Syslog和Windows事件日志收集

如何使用 SYSLOG 和 TLS 从 Windows 服务发送日志?

利用Syslog Watcher在windows下部署syslog日志服务器

使用 log4j 将日志数据写入 syslog

python的日志模块logging和syslog