1.syslog介紹:
日誌服務在CentOS 5上默認爲syslog,而6上全部升級爲rsyslog。Rsyslog是syslog的增強版,提供了很多高級的特性。syslog由兩個功能程序構成,klogd和syslogd,klogd記錄Kernel產生的日誌信息,而syslogd是普通的日誌信息。除了一些高級特性,Rsyslog和syslog的整體框架基本一致。
2.Rsyslog的特性:
支持選擇UDP|TCP協議傳送日誌文件;
支持SSL加密;
多線程模型工作;
可以將日誌放入關係型數據庫中;
可以作爲日誌服務器接收其他服務器發來的日誌;
3.日誌的級別
日誌的級別就是日誌的記錄等級,syslog將日誌級別分爲如下幾個(低等級默認會包含高等級的日誌信息):
debug | 調試級別,所有信息都會記錄 |
info | 比debug級別稍高 |
notice | 通知信息,比info級別高 |
warning | 發出警告 |
err,error | 出現錯誤 |
crit | 比err更嚴重 |
alert | 系統出現嚴重問題 |
emerg,panic | 系統將要掛掉 |
4.syslog設施
syslog將不同的日誌分爲幾個類,這些種類就稱作設施:
auth | 認證信息 |
authpriv | 授權信息 |
cron | 計劃任務產生的信息 |
daemon | 守護進程產生的信息 |
kern | 內核產生的信息 |
lpr | 打印的信息 |
郵件相關的信息 | |
mark | 防火牆標記的信息 |
news | 新聞組信息 |
security | 安全相關的信息 |
syslog | 系統日誌 |
user | 用戶相關的信息 |
uucp | unix間複製相關 |
local{0-7} | 用戶自定義的日誌類,分爲7個級別 |
5.rsyslog的配置:
rsyslog的配置文件是/etc/rsyslog.conf及/etc/rsyslogd/*.conf。
/etc/rsyslog.conf文件分爲四個"區域":
MODULES | syslog的模塊 |
GLOBAL | 全局定義,記錄的格式等等 |
RULES | 記錄日誌相關 |
begin forwarding rule | 一些轉發的記錄信息 |
我們主要關心RULES區域,要想使rsyslog記錄特定類、級別的日誌,就需要在RULES中定義,格式爲:
facility(設施).priority(日誌級別) Target(日誌輸出的位置)
注:
日誌級別、設施可以使用通配符:
*:所有級別
,:列表,例如:a,b,c是a、b、c三個級別
!:取反
記錄的位置常用的大概有四種:
文件,如/var/log/message
用戶,發送給指定的用戶,*爲所有用戶
日誌服務器:@172.16.10.1
管道:|COMMAND 交給特定的命令處理
例如:
mail.info /var/log/maillog 記錄mail類型中info及以上級別的日誌信息 mail.=info /var/log/maillog 只記錄maill類型中info級別的日誌信息 mail.!info /var/log/maillog 記錄mail類型中info以下級別的日誌信息 mail.!=info /var/log/maillog 記錄mail類型中除了info級別的日誌信息 *.info /var/log/maillog 記錄所有info及以上級別的日誌信息 mail,news.info -/var/log/maillog 記錄mail類型、news類型中的info及以上級別的日誌信息,並且以異步方式寫入文件
二、配置rsyslog和loganalyzer結合工作:
1.loganalyzer介紹
loganalyzer是一款Web界面日誌分析工具,可以分析mysql中的日誌信息,由php編寫,依賴於LAMP平臺。要想將日誌信息寫入到mysql中,需要安裝rsyslog-mysql工具,並啓用rsyslog的模塊。
2.安裝LAMP及相關文件:
[root@localhost ~]# yum install -y httpd mysql mysql-server php php-mysql rsyslog-mysql
3.導入rsyslog-mysql的sql文件(創建庫、表)並創建一個用戶:
[root@localhost ~]# service mysqld start [root@localhost ~]# mysql -uroot </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql [root@localhost loganalyzer]# mysql mysql> GRANT ALL ON Syslog.* TO 'loganauser'@'localhost' IDENTIFIED BY 'redhat'; mysql> GRANT ALL ON Syslog.* TO 'loganauser'@'127.0.0.1' IDENTIFIED BY 'redhat';
4.配置rsyslog加載ommysql模塊(寫入mysql數據庫的模塊):
[root@localhost ~]# vim /etc/rsyslog.conf 在MODULES區域添加: $ModLoad ommysql 並啓用以下兩項: $ModLoad imudp $UDPServerRun 514 [root@localhost loganalyzer]# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] [root@localhost loganalyzer]#
5.下載loganalyzer並解壓到/var/www/loganalyzer目錄進行配置:
[root@localhost ~]# tar -xf loganalyzer-v3.6.1.tar.gz [root@localhost ~]# cd loganalyzer-3.6.1/ [root@localhost loganalyzer-3.6.1]# mv src/ /var/www/loganalyzer [root@localhost loganalyzer-3.6.1]# mv contrib/* /var/www/loganalyzer/ [root@localhost loganalyzer-3.6.1]# cd /var/www/loganalyzer/ [root@localhost loganalyzer]# chmod +x configure.sh secure.sh [root@localhost loganalyzer]# ./configure.sh [root@localhost loganalyzer]# ./secure.sh [root@localhost loganalyzer]# rm -rf configure.sh secure.sh [root@localhost loganalyzer]# chown -R apache.apache *
6.配置httpd默認首頁爲index.php並啓動:
[root@localhost loganalyzer]# vim /etc/httpd/conf/httpd.conf DirectoryIndex index.php [root@localhost loganalyzer]# service httpd start Starting httpd: [ OK ] [root@localhost loganalyzer]#
7.打開http://hostname/loganalyzer/install.php安裝之:
8.配置syslog將日誌寫入到mysql數據庫:
[root@localhost loganalyzer]# vim /etc/rsyslog.conf *.info :ommysql:127.0.0.1,Syslog,loganauser,redhat [root@localhost loganalyzer]# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] [root@localhost loganalyzer]#
9.刷新網頁查看日誌已經有了兩條記錄: