想把SYSLOG弄出来,用的CACTIEZ的SYSLOG插件。安装完CACTIEZ后,不用改动任何配置,SYSLOG就能正常工作了(能看到本机的SYSLOG信息)。
为了人为的产生一些SYSLOG信息,可以通过service syslog restart的方式。(当然,也可以利用logger -p facility.level MSG的方式发送)
遇到的问题:
为了让WINDOWS下的用户也可以通过脚本的方式发送SYSLOG信息,从网上查找到一个KLOG.EXE,利用这个客户端工具从DOS命令行发送SYSLOG信息到SYSLOG服务器。但是发现SYSLOG发送成功了,从cactiez syslog界面上也看到了,但就是看不到信息内容。
我的发送格式如下:
C:\xx>klogwin.exe -h 10.72.7.252 -f 23 -l 3 -m "xxxxxxxxx"
从server抓包,也没发现问题,查看相应的/var/log下的对应facility的文件,也已经记录了。
折腾了半天,问题没有解决掉,决定用一台LINUX试试。找了一台LINUX,在syslog.conf的最上面加上如下一行:
*.* @10.72.7.252 /* 将所有SYSLOG转发到cactiez */
此时,再在cactiez syslog上查看(要等一会,大约要延迟2-3分钟,原因待查),就发现可以正常接收并正常显示消息了。说明LINUX下没有问题。
经过反复查看syslog协议的格式,得知syslog由三部分组成:PRI HEADER MSG
PRI: 即facility及level,经过运算得一个到数值,然后用<>括起来
HEADER: 是一个日期(时间)然后空一个格,主机名
MSG: 就是要发送的消息
经过多次试验,终于找到原因:
C:\xx>klogwin.exe -h 10.72.7.252 -f 23 -l 3 -m "hello1 hello2 hello3" :这种格式只能在cacti syslog中,只显示hello3
C:\xx>klogwin.exe -h 10.72.7.252 -f 23 -l 3 -m "hello1" :这种格式显示,但消息为空
C:\xx>klogwin.exe -h 10.72.7.252 -f 23 -l 3 -m "hello1 hello2" :这种格式显示,但消息为空
C:\xx>klogwin.exe -h 10.72.7.252 -f 23 -l 3 -m "Oct 9 22:33:20 hlfedora auditd[1787]: ixxxxxxxxx"