簡介:通過日誌系統的設計,將多臺主機上的日誌統一發送到一臺服 器,日誌服務器自動將日誌記錄到mysql數據庫,遠程通過web方式調用數據庫查看日誌(使用loganalyzer解決方案,基於php)。
在linux系統下,使用apache做web客戶端,mysql數據庫,php爲web及後臺數據的調用,統稱爲lamp。
日誌的種類:/var/log/secure 身份驗證有關信息的日誌
/var/log/maillog 郵件相關的日誌
/var/log/message 一般重要的日誌
其中安裝完程序日誌會在特定的文件夾裏面
例如:安裝完httpd軟件包,將會產生2種日誌文件分別是/var/log/httpd/access_log /var/log/httpd/error_log
access_log目錄存放正確的日誌,error_log目錄存放錯誤的日誌
日誌的優先級別:log4j日誌的優先級別從低到高 DEBUG<INFO<WARN<ERROR<FATAL
需要安裝的軟件包:rsyslog-5.8.10-8.el6.i686
mysql-5.1.71-1.el6.i686
php-mysql-5.3.3-26.el6.i686
rsyslog-mysql-5.8.10-8.el6.i686
php-5.3.3-26.el6.i686 php-gd-5.3.3-26.el6.i686
實驗拓撲:
實驗環境:
版本:CentOS release 6.5
內核:2.6.32-431.el6.i686
啓動apache:service httpd start 開啓apache
Chkconfig httpd on 設置爲開機自啓動
啓動mysql,設置mysql的安全性
Service mysqld start 開啓mysql(第一次啓動有數據庫的初始化過程,比較慢)
查看mysql,
輸入mysql進入mysql端
mysql> show databases;
| Database
| information_schema |
| mysql
| test
初始化database有3個默認的庫
給mysql設置密碼增加安全性,
mysqladmin -u root -p password '123'
Enter password 沒有以前的口令,直接回車。
訪問的時候需要mysql -u root -p 回車
輸入口令
環境具備完成後需要loganalyzer-3.6.5.tar.gz軟件
期望http://server ip/loganalyzer如此訪問數據庫
需要把loganalyzer目錄放到/var/www/下面
先將loganalyzer-3.6.5.tar.gz解壓
[root@wang ~]tar -zxvf loganalyzer-3.6.5
[root@wang ~]# cd loganalyzer-3.6.5
[root@wang loganalyzer-3.6.5]# vim INSTALL 可以查看說明文件,按照說明文件執行安裝
root@wang loganalyzer-3.6.5]# cd src
[root@wang src]# cp -rf . /var/www/html/loganalyzer/ 將loganalyzer-3.6.5目錄下的所有文件目錄拷貝到loganalyzer
[root@wang src]cd ..
[root@wang loganalyzer-3.6.5]# cd contrib/
[root@wang contrib]# ll
total 8
-rw-rw-r--. 1 root root 49 Oct 9 2013 configure.sh
-rw-rw-r--. 1 root root 31 Oct 9 2013 secure.sh
[root@wang contrib]# cp * /var/www/html/loganalyzer/將腳本文件拷貝到loganalyzer
[root@wang contrib]# cd /var/www/html/loganalyzer/
[root@wang loganalyzer]# chmod +x *.sh 將2個腳本文件賦予執行權限
查看2個腳本文件的內容
Vim configure.sh內容爲
#!/bin/sh
touch config.php
chmod 666 config.php
Vim secure.sh 內容爲
#!/bin/sh
chmod 644 config.php
所有應該執行 config.php
[root@wang loganalyzer]# ./configure.sh
[root@wang loganalyzer]# chown -R daemon:daemon .
改變當前目錄下文件的所有者和所屬組
[root@wang ~]# mysql -u root -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
將日誌信息追加到數據庫中
[root@wang ~]# mysql -u root -p
Enter password:
進入數據庫查看是否成功
mysql> show databases;
| Database |
| information_schema |
| Syslog |
| mysql |
| test
4 rows in set (0.00 sec)
成功導入Syslog
mysql> use Syslog;
mysql> show tables;
Tables_in_Syslog |
| SystemEvents |
| SystemEventsProperties |
有2張表
mysql> grant all privileges on Syslog.* to rsyslog@localhost identified by '123456'
對Syslog數據庫的所有表授予所有的權利針對rsyslog通過本機訪問的賬號
mysql>flush privileges; 刷新權限
[root@wang ~]# vim /etc/rsyslog.conf 編輯rsyslog.conf
在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 ommysql # provides --MARK-- message capability
*.* :ommysql:localhost,Syslog,rsyslog,235290
# Provides UDP syslog reception
$ModLoad imudp 接受udp日誌
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp 接受tcp日誌
$InputTCPServerRun 514
其中*.* :ommysql:localhost,Syslog,rsyslog,123456
*.*所有的所有級別日誌輸入到ommysql;在本機上;數據庫的名字;數據庫的管理員;密碼
root@wang ~]# service rsyslog restart 重啓下rsyslog服務
在測試之前關閉防火牆
[root@wang ~]# service iptables stop
[root@wang ~]# chkconfig iptables off 設置爲開機關閉
[root@wang ~]# setenforce 0 將安全策略設置爲警告級別
[root@wang ~]# getenforce 即輸入此命令爲Permissive
Permissive
重啓下apache和mysql
[root@wang ~]# service httpd restart
[root@wang ~]# service mysqld restart
打開瀏覽器訪問 http://192.168.2.99/loganalyzer
Ip地址爲自己主機的ip
出現以下頁面
點擊here
Next
Next
在下面的enable user databases 選項點擊yes,出現
將database name改爲 Syslog(注意大小寫)
Database user 改爲rsyslog
Database password 123456 (剛纔設置的密碼)
然後點擊next
Next
Next
設置個用戶賬號,以後登錄該站點使用,進行後臺管理。
將socurce type設置爲 mysql native
將database name 設置爲Syslog(注意大小寫)
Database name 設置爲上面查看數據庫出現的表SystemEvents(注意大小寫)
Database user 設置爲rsyslog
密碼是之前設置的密碼
然後點擊next
Finish
成功,如果還想再添加一臺服務器,數據庫的設置方法不變。
需要在vim /etc/rsyslog.conf的配置文件中修改:
# Don't log private authentication messages!
*.* @192.168.2.99
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
添加紅色的部分,意思是將所有的日誌都發送到地址爲192.168.2.99(剛纔的主機ip)。