rsyslog+loganalyzer系統日誌分析系統(基礎搭建)
好吧。先說明一下。本來是想做一下系統日誌的分析。但沒想到後面發現自己的要求有點高,整個項目要了解的東西是越來越多。於是乎,分開記錄吧。
這裏是最基礎的配置:僅僅是單機版的搭建,東西不多,但是後面幾個分段的基礎
基礎系統:AS6.3
軟件:rsyslog是自帶的5.8.10
Loganalyzer是網友漢化過的3.6.5
目的:其實很簡單,就是實現loganalyer對系統日誌的分析。
步驟如下:1.loganalyer其實是php腳本,那麼apache要支持php
2.loganalyer可以支持的數據源類型,可以是數據庫也可以是直接的系統文件, 爲了以後各方面都演示到,所以這裏默認用的數據源是mysql。
3.配置rsyslog把日誌寫入mysql
4.安裝配置loganalyer正常工作。
OK,開始:
1~2. 我的系統是AS6的,安裝的時候就把LAMP所相關的rpm包全裝完了。所以1和2基本上已經OK。但是由於實驗是默認環境,所以selinux必須關掉,否則會造成自建的目錄httpd服務無法訪問。
# setenforce 0 //臨時關掉,重啓恢復
如果要永久關掉
# vim /etc/selinux/config
把SELINUX=enforcing改成SELINUX=disabled
重啓生效
Apache支持php測試可以用如下的方式驗證:
# echo "<?php phpinfo(); ?>" > /var/www/html/1.php
然後在瀏覽器中訪問http://IP/1.php 如果一切正常的話大概是這樣子:
(別忘記把httpd服務打開,#service httpd start)
3. 配置rsyslog把日誌寫入mysql
首先把mysql服務打開
# service mysqld start
然後找到數據庫,這裏要說明一下,數據庫是在rsyslog-mysql這個包裏的,如果沒有的話去光盤裏找
# rpm -aq | grrep rsyslog
已經裝了
找一下默認的數據庫文件放在哪裏
# rpm -ql rsyslog-mysql-5.8.10-2.el6.i686
在這裏
導入數據庫
# mysql -uroot -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
導完之後,進數據庫可以看到新數據庫Syslog,裏面就只有兩張數據表:SystemEvents和SystemEventsProperties。
這裏爲了等下的日誌寫入mysql驗證要建個新用戶設一下密碼
mysql> grant all on Syslog.* to rsyslog@localhost IDENTIFIED BY ‘123456’;
mysql> flush privileges;
設置rsyslog把日誌數據導入mysql
# vim /etc/rsyslog.conf
去掉 #$ModLoad immark 前的#
//開啓標記日誌功能
添加 $ModLoad ommysql
//開啓mysql支持功能
添加 *.* :ommysql:localhost,Syslog,rsyslog,123456
//把所有日誌記錄到mysql
重啓rsyslog服務
# service rsyslog restart
4. 安裝和配置loganalyer
# mkdir log
# tar zxvf loganalyzer-3.6.5-cn.tar.gz -C log
# mv log /var/www/html/
# chown daemon.daemon -R /var/www/html/log/
//這一步是保證等下config文件能被創建
然後訪問 http://ip/log/src
沒找到配置文件,單擊紅框。
直接 Next
這就OK了,如果寫入失敗,自己去調整/var/www/html/log 的權限
別吃驚,安裝默認還是英文的,我啓用了瀏覽器的翻譯功能,具體的條目自己對着看吧,其實這樣基本明瞭了。
這步是自動創建表,直接 Next 就行了。
創建結果,23個表成功。Next
建立管理員帳號
配置數據源。這裏要注意,數據庫名默認是loganalyzer,表名也是全小寫,一定要改過來。
完成了,不過別高興。
好吧,確實完成了。默認是英文的,記得在紅框位置改成chinese.這裏說一下,如果出現什麼表名數據庫無法連接之類的。
二話別說,把config.php刪除了再來一次——看清大小寫。
這要比傻傻的去編輯config.php要快得多——搞過能用和不能用的兩個文件,結果只差1Kb。