什么是Syslog?



      顾名思义Syslog就是Sys Log - 系统日志。在 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发送3000×××集中器的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.



为什么要Syslog化Windows的Event日志?



      Windows有自己的日志协议,称为Event Log。日志查看器为Event Viewer (右键点击我的电脑,选择管理),界面如下。



配置syslog增加haproxy日志_php



      有的朋友会问,好好的Windows日志为什么要把它转成Syslog呢?呵呵,当Windows服务器比较少的时候,我们是不需要这样做的。但试想如果你管理着成千上百台的Windows机器,你会一台一台的登录上去用Event Viewer查看吗?为什么不建立一台中心Syslog服务器来接受所有的Windows,Linux,网络设备等等发送来的日志呢?这样你可以轻松地在一台日志服务器上管理所有的日志。比如Splunk就是一个很好的免费日志服务器,它不仅可以接受多种方式发送来的日志(包括syslog),而且还提供功能很强大的搜索(被称为Google for IT),图形化等功能。接下来我会写一篇关于Splunk配置的文章。



配置syslog增加haproxy日志_操作系统_02



 



配置syslog增加haproxy日志_网络_03



怎样Syslog化Windows的Event日志?    



      言归正传,能实现Syslog化Windows Event日志的工具就是NTSyslog。它是一款免费工具,最新版下载地址为: [url]http://sourceforge.net/forum/forum.php?forum_id=750656[/url]



配置syslog增加haproxy日志_网络_04



      NTsyslog安装非常简单,安装完成以后会作为Windows的一个服务存在。另外,桌面上会多一个名叫NTSyslogCtrl-Tool的管理工具,它可以管理本地或远程任何安装了NTSyslog服务的机器。



配置syslog增加haproxy日志_Windows_05



      NTSyslogCtrl-Tool的主要功能就是可以让用户配置所需发送日志的类型。以下是我在一台Windows XP SP2机器上的演示。



1)主界面



配置syslog增加haproxy日志_php_06



2)选择System,然后点击Eventlog,然后设置哪些日志项需要进行Syslog转发。简单起见,我选择转发所有的System Eventlog。



配置syslog增加haproxy日志_配置syslog增加haproxy日志_07



3)设置Syslog服务器地址,点击Syslog Daemons,输入syslog服务器IP地址,如果有备用的也可以填上。



配置syslog增加haproxy日志_操作系统_08



4)启动服务。



配置syslog增加haproxy日志_php_09



4)查看我的syslog服务器。吼吼~,已经有数据了。



Apr 1 12:35:23 H2800-0018 NT: <Application Popup;I26;> Application popup: ctfmon.exe - DLL Initialization Failed : The application failed to initialize because the window station is shutting down.



Apr 1 12:36:00 H2800-0018 NT: <TermServDevices;E1111;> Driver Microsoft XPS Document Writer required for printer Microsoft XPS Document Writer is unknown. Contact the administrator to install the driver before you log in again.

对照一下Windows Event Viewer里的数据吧,不错,挺全的。Syslog化后的Windows日志的格式为:

日期 时间 主机 NT:<来源;严重性等级+Event ID> 日志描述


配置syslog增加haproxy日志_Windows_10


配置syslog增加haproxy日志_配置syslog增加haproxy日志_11