CENTOS下用syslog-ng集中管理日志并压缩保存
前段时间一直用centos自带的syslog开启udp远程接收其他设备发送的日志,效果不好,日志文件不能分类,不能基于设备和IP地址保存,只能保存到/var/log/messages,查看,保存都不方便,百度了一下,看到有syslog-ng和rsyslog两种替换,但对于我现在不需要结合php管理日志的要求来看,syslog-ng更简单,更能直接保存。闲话少说,下面介绍步骤,希望能帮助到别人。
1.环境。(centos5.7 kernel 2.6)
关闭系统自带syslog
service syslog stop
chkconfig syslog off
安装 syslog-ng
yum -y install syslog-ng
yum -y install syslog-ng
2.如果有需要可以修改 syslog-ng 配置文件(/etc/syslog-ng/syslog-ng.conf),我觉得安装完成后自带的配置就可以使用,syslog-ng的日志输出文件为/var/log/syslog-ng/“设备ip”/messags,多个设备有多个基于ip的文件夹,便于查看。
3.压缩保存
修改日程安排文件vi/etc/crontab
添加0 23 * * * root /syslog_backup.sh
上面我设置的每天23点整执行根目录下的脚本syslog_backup.sh,当然你也可以修改其他时间,0表示为分钟,23则为小时,后面依次为天,周,月。什么用户执行,什么脚本等等。
下面是脚本文件,设置为按时间年月日生成TAR压缩文件。
#!/bin/sh
#文件为该天日期
DATE=`date +%F`
filename="$DATE"
#停止服务
service syslog-ng stop
#移动日志文件到根目录/backup文件夹,并改名为当天日期
mv /var/log/syslog-ng/192.168.1.1/messages /backup/192.168.11.10/$filename
#重新生成日志文件
touch /var/log/syslog-ng/192.168.1.1/messages
#开启服务
service syslog-ng start
#最大化压缩文件
cd /backup/192.168.11.10/
bzip2 -9 $filename
4.查看日志,我现在是把日志文件保存到了/backup下,需要查看哪天日志就解压缩哪天的,但是终端下查看对于新手来说很麻烦,我就安装了webmin,然后在系统日志里添加了该日志文件,就可以在web界面下查看和搜索了,是不是简单了很多。
5.总结一下,如果哪位同学有需要网页查看日志并记录到mysql的,可以百度搜索一下其教程。