rsyslog日誌管理
日誌:一些歷史事件按時間序列將其記錄,方便查錯以及方便覈實所發生的事件。
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
詳細日誌信息如下