Linux下日誌系統的設計

簡介:通過日誌系統的設計,將多臺主機上的日誌統一發送到一臺服                                器,日誌服務器自動將日誌記錄到mysql數據庫,遠程通過web方式調用數據庫查看日誌(使用loganalyzer解決方案,基於php)。

linux系統下,使用apacheweb客戶端,mysql數據庫,phpweb及後臺數據的調用,統稱爲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

實驗拓撲:

wKiom1RN0O3RyUBtAADfp1ErYF0653.jpg

實驗環境:

版本:CentOS release 6.5

內核:2.6.32-431.el6.i686

啓動apacheservice httpd start 開啓apache

Chkconfig httpd on 設置爲開機自啓動

啓動mysql,設置mysql的安全性

Service mysqld start 開啓mysql(第一次啓動有數據庫的初始化過程,比較慢)

查看mysql

輸入mysql進入mysql

mysql> show databases

| Database           

| information_schema |

| mysql              

| test               

初始化database3個默認的庫

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

 

重啓下apachemysql

[root@wang ~]# service httpd restart

[root@wang ~]# service mysqld restart

打開瀏覽器訪問 http://192.168.2.99/loganalyzer

Ip地址爲自己主機的ip

出現以下頁面

wKiom1RN0Q3xryZKAACkOQwTPIw050.jpg

點擊here

wKiom1RN0TLgNKeJAAElBZfjJyQ200.jpg

Next

wKiom1RN0VOxX0JVAAFILHD3HzI088.jpg

Next

wKioL1RN0kmxgnBxAAGnFgcd9wA051.jpg

在下面的enable user databases 選項點擊yes,出現

wKioL1RN0niwGbRRAAF0KxIoZdU695.jpg

database name改爲 Syslog(注意大小寫)

Database user 改爲rsyslog

Database password 123456 (剛纔設置的密碼)

wKiom1RN0qKigR2ZAAFpJT54vMo580.jpg

然後點擊next

wKioL1RN0xHyJtSbAAF390TwmSg296.jpg

Next

wKioL1RN0x6Q2owZAAE7Zm201MQ868.jpg

Next

wKioL1RN0yrRzlVAAAG17QXfzZo701.jpg

 

設置個用戶賬號,以後登錄該站點使用,進行後臺管理。

wKioL1RN0z2SEJedAAH3qtGp6D0851.jpg

 

socurce type設置爲 mysql native

wKioL1RN01XR8NqgAAGBy11xJ-w727.jpg

database name 設置爲Syslog(注意大小寫)

Database name 設置爲上面查看數據庫出現的表SystemEvents(注意大小寫)

Database user 設置爲rsyslog

密碼是之前設置的密碼

然後點擊next

wKiom1RN0w7Tq_MjAAEbkPP6HeU611.jpg

Finish

wKioL1RN03KhJAWiAAPo1c3Qdu4203.jpg

成功,如果還想再添加一臺服務器,數據庫的設置方法不變。

需要在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)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章