前言
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管理分析
1、安裝mysql,這個安裝過程這裏不再說明,前面的博文中我們已經詳細說過了,可以參考博文:總結之:CentOS 6.5 LAMP分主機平臺的搭建及測試http://tanxw.blog.51cto.com/4309543/1386381,這裏有詳細的安裝過程。
1、安裝loganalyzer
# tar xvzf loganalyzer-3.6.4.tar.gz # cd loganalyzer-3.6.4 # mkdir /usr/local/apache/htdocs/syslog 把這兩個src、contrib目錄下的所有文件移動你本機能解析PHP路徑下的web路徑下。 # mv src/* /usr/local/apache/htdocs/syslog/ # mv contrib/* /usr/local/apache/htdocs/syslog/ # chmod u+x /usr/local/apache/htdocs/syslog/*.sh # cd /usr/local/apache/htdocs/syslog/ # ./configure.sh # ./secure.sh # chmod 666 config.php 把這個目錄下的所有文件的屬主屬組都改爲apache運行的進程名 # chown -R daemon.daemon *
2、編輯rsyslog的配置文件
# vim /etc/rsyslog.conf $ModLoad ommysql 這一項必須定義在Module一段中 ommysql:這個表示裝載的模塊名;Syslog表示數據名;rsysloguser,rsyslogpass這兩個是用戶和密碼 *.* :ommysql:127.0.0.1,Syslog,rsysloguser,rsyslogpass 接着安裝要rsyslog-mysql、php和php-mysql並導入數據定義的腳本,/usr/share/doc/rsyslog-mysql/createDB.sql # yum -y install php php-mysql # yum -y install rsyslog-mysql # cd /usr/share/doc/rsyslog-mysql-5.8.10/ 導入數據庫 # mysql < /usr/share/doc/rsyslog-mysql/createDB.sql
3、登錄數據庫,給用戶rsysloguser授權,密碼爲rsyslogpass
# mysql mysql> GRANT ALL ON Syslog.* TO 'rsysloguser'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass'; mysql> GRANT ALL ON Syslog.* TO 'rsysloguser'@'localhost' IDENTIFIED BY 'rsyslogpass'; mysql> FLUSH PRIVILEGES;
啓動服務,頁面上輸入地址測試安裝:
# service rsyslog start
如果安裝好之後連接不上數據庫,提示說不能通過/var/lib/mysql/mysql.sock連接數據,那就在/var/lib/下創建mysql目錄文件,再把/tmp/mysql.sock套接字文件鏈接到/var/lib/mysql/目錄下去就可以連接上了:
# mkdir /var/lib/mysql
# ln -s /tmp/mysql.sock /var/lib/mysql/
結束:
整理了一些操作步驟,對日誌的集中式存放和管理,放在mysql數據庫中是很好管理和分析的,這個頁面也很直觀的看出了這些日誌信息,在此,大神有什麼覺得不妥的萬望指出哦,在此先謝謝你的關注了。