相信从事linux服务器运维的筒子们都和我一样,每天都在和各种系统日志、服务日志打交道。这些日志记录了系统或服务每天发生的各种状态。通过观察日志我们可以及时的解决掉很多系统和服务故障。
今天主要写的是利用rsyslog集中收集系统日志和用户操作记录,以及对收集到的日志进行相关处理的方法。例如服务器异常监控和用户行为审计。
部署架构:
角色:应用服务器、日志汇总服务器、数据库、日志监控和日志查询
这里针对上图做下说明:
1、 把应用服务器上的日志汇总到日志汇总服务器上。
2、 把汇总服务器上的日志写到数据库中。
3、 针对汇总日志进行相关处理,例如日志监控和历史查询。
实验环境:
操作系统:Centos 5.8 x86_64
一、配置日志收集部分
在日志汇总服务器上操作:
因为Centos 5.8 x86_64默认使用syslog服务,所以这里的日志汇总服务器需要手工安装rsyslog。
service syslog stop chkconfig --del syslog yum -y install rsyslog
vim /etc/sysconfig/rsyslog #SYSLOGD_OPTIONS="-m 0" SYSLOGD_OPTIONS="-c 2 -r 514 -x -m 240"
各参数作用:
-c 指定运行兼容模式。
-r 指定监听端口。
-x 在接收客户端消息时,禁用DNS查找。需和-r参数配合使用。
-m 标记时间戳。单位是分钟,为0时,表示禁用该功能。
chkconfig rsyslog on service rsyslog start ps -ef|grep rsyslog
在应用服务器上操作:
echo "*.* @192.168.154.128" >> /etc/syslog.conf service syslog restart
vim /etc/bashrc export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
source /etc/bashrc
我们在应用服务器上随便输入几个命令,看看日志汇总服务器上是否都已正常收到。
应用服务器上随便输几个命令。
日志汇总服务器:
tail -f /var/log/messages
配置日志入库部分
创建数据库和表结构:
cat /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql
mysql < /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql
grant all on Syslog.* to rsyslog_user@'%' identified by 'rsyslog_pass'; flush privileges;
日志汇总服务器上操作:
yum �Cy install rsyslog-mysql
vim /etc/rsyslog.conf $ModLoad ommysql *.* :ommysql:192.168.154.128,Syslog,rsyslog_user,rsyslog_pass
格式:*.* :ommysql:IP:库名:用户:密码
service rsyslog restart
在数据库验证是否正常入库
完成上述几步,就可以着手进行日志处理相关方面的工作了。
关于日志处理部分
常见的日志处理大致有以下几种方法:
1、使用nagios对日志进行进行状态监控,例如发现error状态就发消息给管理员。让管理员及时的处理服务器相关故障。
2、对日志进行分析,例如loganalyzer日志分析工具。
3、查询数据库中的日志信息,可检索某用户对某台机器都进行了哪些操作。
今天先写到这里,如果大家有不明白的地方,欢迎和我沟通^_^。