日志:一些历史事件按时间序列将其记录,方便查错以及方便核实所发生的事件。
rsyslog的特点:多线程;强大的过滤功能,可实现过滤系统信息中的任意部分;自定义输出格式;适用于企业级别日志记录需求。
系统对指定设施定义了八个消息级别分别是:debug(调试级),info(通知级),notice(注意级别),warn(警告级别),err(错误级别),crit(临界级别),alert(警戒级别),emerg(致命级别)。可见这些级别是由低到高。
在此借助主机(ip172.16.100.90)配置rsyslog服务器。在 rsyslog的主配置文件 /etc/rsyslog.conf 中。
# Log all the mail messages in one place.
mail.* -/var/log/maillog:mail.* 表示邮件的所有信息,后面指向的存储路径,有个“-”表示启用异步。如果配置文件中出现“mail.info”表示指定info级别以及更高所有级别。若出现mail.=info表示指定info级别,若是mail.!info表示除了info级别。对应级别还会出现“*”,“none”表示任何级别和没有级别。
下面看一下主配置文件的modules部分。
#### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
$ModLoad ommysql
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514 //表示允许514端口接收使用udp协议转发来的日志
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514 //表示允许514端口接收使用TCP协议转发来的日志
在rules模块中
*.info;mail.none;authpriv.none;cron.none /var/log/messages //表示记录所有类型的info及以上级别信息到 /var/log/messages,但不包括mail,authpriv和cron的信息
接下来实现一下rsyslog支持将日志存储于MySQL服务器中。
1、安装好mysql数据服务;
# yum -y install mysql mysql-server
2、安装rsyslog-mysql包;
# yum -y install rsyslog-mysql
3、创建rsyslog依赖的数据库
# mysql < /usr/share/doc/rsyslog-5.8.10/createDB.sql
4、配置rsyslog启用模块,在#### Modules ####中增加$Modload ommysql.
在####rules####段中定义记录日志信息于数据库中增加下面一行
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,rsysloguser,rsyslogpass
通过webGUI展示日志信息,借助loganalyzer工具,具体操作如下
# yum -y install httpd php php-mysql php-gd
# tar xf loganalyzer-3.6.5.tar.gz
# mkdir /var/www/html/loganalyzer
# cp -r loganalyzer-3.6.5/src/* /var/www/html/loganalyzer/
# cp -r loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer/
# cd /var/www/html/loganalyzer/
# chmod +x configure.sh secure.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php
# chown -R apache.apache ./*
配置成功之后则可访问http://172.16.100.90/loganalyzer
详细日志信息如下