syslog Message Parts:
完整的syslog格式有三个部分,第一部分PRI,第二部分HEADER,第三部分
[PRI,HEAD,MSG],使用514端口
一条syslog消息:
<30>Oct9 22:33:20 hlfedora auditd[1787]: The audit daemon isexiting.
PRI部分:PRI部分由尖括号包含的一个数字构成,这个数字包含了程序模块(Facility)、严重性(Severity),这个数字是由Facility乘以 8,然后加上Severity得来。
Facility的定义如下:
数值码 Facility 程序模块
0 kernel messages
1 user-level messages
2 mail system
3 system daemons
4 security/authorization messages (note 1)
5 messages generated internally by syslogd
6 line printer subsystem
7 network news subsystem
8 UUCP subsystem
9 clock daemon (note 2)
10 security/authorization messages (note 1)
11 FTP daemon
12 NTP subsystem
13 log audit (note 1)
14 log alert (note 1)
15 clock daemon (note 2)
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)
补充说明:0-15为syslog协议规定的Facility,而16-23则为用户预留自定义。(Facility可以看做出错的模块)
Severity的定义如下:
数值码 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定义为Severity即严重性,而salorwinds中把该项定义为prioprity(优先级别),即信息的等级,等级自上而下递减。
HEADER部分 HEADER部分包括两个字段,时间和主机名(或IP)。--时间紧跟在PRI后面,中间没有空格,而时间和主机之间是有空格的。
MSG部分 MSG部分又分为两个部分,TAG和Content。其中TAG部分是可选的(Tag包含进程名称和进程PID)。
补充说明:syslog发送和接收的内容实际上只需要有两部,即PRI和MSG部分,其他的则是程序根据接收到的数据包进行解析得出的信息,如ip地址等。
Solarwinds工具之SysLog Server
作用:使用UDP协议来接收和发送SysLog日志。
显示当前消息 搜索数据库中的日志 发送日志
该工具将每条记录分为若干项:
Id号 日期 主机 ip 优先级 模块 优先码 模块码 消息
该工具实现:
集合该工具和JAVA的DatagramSocket编程对其进行了一定的了解。
上面说过syslog协议其实最主要的是PRI和MSG部分,而HEADER部分可以根据收到的数据包进行解析自行添加,并且syslog本身并不是一个严格的协议,由此我们可以自行扩展定义。
就solarwinds syslog server而言,接收到的信息只有PRI和MSG部分,所以我们给solarwinds syslog server发一条日志只需如下(小于1024字节)
<Facility*8+Severity> message == <185> xxxxxxxxxx
这样形式的字符串即可,剩下的就是我们对其字符串的解析处理而已。