前言
rsyslog系統日志,在CentOS5上叫syslog,而在CentOS6上叫rsyslog,是增強版的syslog,CentOS5上的配置檔案在/etc/syslog.conf下,而CentOS6在/etc/rsyslog.conf下
syslog預設是把我們的日志放到檔案、使用者、日志伺服器、管道中。
rsyslog在syslog的基礎上還多了一條途徑,允許把日志放到mysql資料中。
rsyslog比syslog好在哪裡:
Multi-threading:多線程
TCP, SSL, TLS, RELP:支援tcp協定,ssh加密,支援RCLP協定
MySQL, PostgreSQL, Oracle and more:支援日志存放在這些資料庫中
Filter any part of syslog message:支援自定義過濾器過濾一些資訊
Fully configurable output format:支援輸出格式的完全自定義
Suitable for enterprise-class relay chains:并且特别适用于企業級的日志收集
日志是什麼:通俗來講就是記錄過去所發生過的曆史資訊,而我們的系統日志有多種,比如說有錯誤日志、二進制日志、事物日志、中斷日志、查詢日志等,在這些日志中,除了事物日志,絕大多資料的日志都叫做曆史日志,記錄了我們系統中過去一段時間所發生的事情。
日志有日志級别:priority優先級
debug:調試,所謂調試就是不分輕重緩急,隻要發生了就一律記錄下來
info:任何時候程式正常輸出的資訊,而不是說調試資訊,都記錄下來,如果定義了一個級别後這個級别以及比這個級别高的的級别都會被記錄下來的。
notice:注意,提醒使用者要注意了
warning:警告,提醒使用者說可能會發生一些比較嚴重的問題了
err:某個功能發有錯誤發生,必須要進行處理的
crit:比err更嚴重了,現在不處理可能過一會就要挂了
alert:紅色警報,比crit更嚴重,需要馬上處理
emerg,panic:立馬挂掉
我們系統上運作了行行色色的軟體,有很多都是服務級别的軟體,這些軟體都有可以産生日志,那日志記哪去,由誰來記錄,記到哪個檔案當中,記錄哪個級别,如果都一個程式的日志都需要自己去定義,那就變得非常的麻煩,而絕大多數軟體的日志資訊都比較簡單,沒必要說自己去定義管理自己的日志,那由此我們就用到syslog,他是個服務,什麼事也不幹,他有兩個程序,syslogd和klogd,一個是記錄系統級别的日志資訊,一個是記錄核心級别的日志資訊,而syslog他本身運作為一個服務,如果有人需要記錄日志的話就把日志發給syslog,由syslog來幫記錄,至于記錄到哪去由syslog自己來判定,是以可以把他了解成是一個日志的架構,他是為了實作某種特定功能、為了承接各種用到這種功能的軟體,而且能夠實作低層幫更多軟體記錄日志的這麼一種機制的,還有如果日志過多,那我們日後查找日志也不友善,那我們就要把日志分類管理了,這就是所說的設施(facility)了,從功能可程式上對日志資訊進行分類,
LogAnalyzer 是一個 syslog 和其他網絡事件資料的 Web 前端工具,提供簡單易用的日志浏覽、搜尋和基本分析以及圖表顯示讀取到的日志進行分析的,一般我們都使用資料庫的loganalyzer結合起來分析管理集中日志。
實作rsyslog日志集中到mysql+loganalyzer管理分析
一、通過yum安裝lamp環境
# yum install -y httpd
# yum install -y php php-mysql mysql-server mysql
檔案目錄 /var/www/html/index.php
測試php和apache服務是否正常
<?php
phpinfo();
?>

啟動mysql服務
# service mysqld start
測試資料庫連接配接是否正常
<?php
$link = mysql_connect('localhost','root','');
if($link)
echo 'success';
else
echo 'fail';
?>
二、安裝loganalyzer
1.解壓并安裝
# tar xf loganalyzer-3.6.4.tar.gz
# cd loganalyzer-3.6.4
# mkdir /var/www/html/syslog
# ls
ChangeLog contrib COPYING doc INSTALL src
把src、contrib目錄下的所有檔案移動你本機能解析PHP路徑下的web路徑下
# mv src/* /var/www/html/syslog/
# mv contrib/* /var/www/html/syslog/
# chmod u+x //var/www/html/syslog/*.sh
# cd /var/www/html/syslog/
# ./configure.sh
# ./secure.sh
# chmod 666 config.php
把這個目錄下的所有檔案的屬主屬組都改為apache運作的程序名
# chown -R apache.apache *
2.編輯rsyslog的配置檔案
# vim /etc/rsyslog.conf
$ModLoad ommysql 這一項必須定義在Module一段中
ommysql:這個表示裝載的子產品名;Syslog表示資料名;rsysloguser,rsyslogpass這兩個是使用者和密碼
*.* :ommysql:127.0.0.1,Syslog,rsysloguser,rsyslogpass
接着安裝要rsyslog-mysql并導入資料定義的腳本,/usr/share/doc/rsyslog-mysql/createDB.sql
# yum -y install rsyslog-mysql
# cd /usr/share/doc/rsyslog-mysql-5.8.10/
導入資料庫
# mysql < createDB.sql
驗證是否導入成功
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| mysql |
| test |
+--------------------+
mysql> use Syslog;
mysql> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
3.登入資料庫,給使用者rsysloguser授權,密碼為rsyslogpass
# mysql
mysql> GRANT ALL ON Syslog.* TO 'rsysloguser'@'localhost' IDENTIFIED BY 'rsyslogpass';
mysql> GRANT ALL ON Syslog.* TO 'rsysloguser'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';
mysql> FLUSH PRIVILEGES;
重新啟動日志服務,頁面上輸入位址測試安裝(http://192.168.8.40/syslog/):
# service rsyslog restart
對日志的集中式存放和管理,放在mysql資料庫中是很好管理和分析的,這個頁面也很直覺的看出了這些日志資訊