linux系統下基於rsyslog構建日誌服務器

摘要:php

  本文實現的主要3個功能:
html

    第一,將node1構建爲1個基於mysql保存的日誌服務器。(步驟1-6)
node

    第二,構建了一個基於web-gui的日誌管理界面,使用的是loganalyzer工具(步驟7)mysql

    第三,將同一網段內的node2的日誌也存放在node1的日誌服務器裏面(步驟8)
web


系統環境:sql

   node1:10.61.0.63數據庫

   node2:10.61.0.64
apache

   yum源:epel源、本地光盤源
vim

   安裝包:loganalyzer-3.6.5.tar.gz瀏覽器


實驗步驟:

***********在node1上進行以下操做*********************

 1.安裝配置好可用的mysql服務器

  #yum install mysql mysql-server -y

 2.安裝rsyslog-mysql的程序包

  #yum install rsyslog-mysql -y

 3.建立rsyslog依賴的數據庫

  #cd /usr/share/doc/rsyslog-mysql-5.8.10  (找到createDB.sql,並導入)
  #mysql < createDB.sql

 4.配置rsyslog啓用ommysql模塊,以及rsyslog服務監聽的端口

               

  #vim /etc/rsyslog.conf
  #### MODULES ####  首先啓動監聽端口,啓用udp的514端口,即啓動下面2項
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

$ModLoad ommysql  

  #### RULES ####   找到下面一項,並修改以下:啓用ommysql模塊和server_ip,user,password     
*.info;mail.none;authpriv.none;cron.none            :ommysql:127.0.0.1,Syslog,rsyslog,rsyslog


  5.把日誌記錄至指定的數據庫表中,從新受權Syslog數據庫給rsyslog用戶以及密碼

#mysql             
mysql> GRANT all ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslog';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT all ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyslog';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

              

 重啓rsyslog服務

# service rsyslog restart


6.進行測試,如今咱們安裝一個zsh,而後在/var/log/message日誌查看有沒有記錄這個安裝

# yum install zsh -y
# tail /var/log/messages

發現/var/log/message沒有zsh安裝的日誌


七、使用loganalyzer(基於web的圖形界面)來展現日誌信息,依賴於lamp組件

#yum install httpd mysq php-mysql php-gd -y


下載好loganalyzer包,並解壓至/var/www/html目錄下,並進行以下配置

#tar -xf loganalyzer-3.6.5.tar.gz -C /var/www/html
#cd /var/www/html
#mkdir log
#cp loganalyzer-3.6.5/src/ log
#cp loganalyzer-3.6.5/contrib/* log
# cd log
# ./sercure.sh
# .configure.sh
# chmod 666 config.php
#chown -R apache.apache ./*

而後再在瀏覽器中訪問,並進行安裝:

wKioL1bvuV3jVqV4AAECGT-rgDo143.png     

安裝完成後,進入以下頁面

wKioL1bvuX6T9D7QAAG56xUHciQ282.png






8.如今需求來了,我有另外1臺主機node2,我要把node2主機的日誌記錄在node1日誌服務器上。

    ************* 在node2****************

     #vim /etc/rsyslog.conf
     ##################RULES##############找到下面一句並改成
     *.info;mail.none;authpriv.none;cron.none                @10.61.0.63
     #service rsyslog restart
     
     ***************在node1***********************
     首先關閉防火牆
     #service iptables stop

     而後再在瀏覽器中訪問,此時在切換到node2上面,安裝或者卸載httpd、php,看日誌是否記錄在mysql中。下圖是我記錄的結果:

wKioL1bvuZ-RXw0cAAJXU9ZjTXQ860.png

spacer.gif


配置過程遇到的問題:

1.當loganalyzer 基於web-gui界面安裝完成後,發現圖形界面顯示不了node1主機所產生的日誌。


解決方法:發如今/etc/rsyslog.conf配置文件中的RULES段中沒添加模塊ommsql。因此從新添加後,重啓rsyslog服務刷新瀏覽器便可。

    在/etc/rsyslog.conf中添加的內容:

        $ModLoad ommysql

    

2.當對node2的日誌定向至node1,即10.61.0.63之後,發現顯示不了node2的日誌

    

解決方法:關閉node1的防火牆,就能夠了。在node1執行下面操做:

    #service iptables stop

相關文章
相關標籤/搜索