rsyslog+Loganalyzer日誌服務器--初探

    Rsyslog 是一個 syslogd 的多線程增強版,在syslog的基礎上擴展了很多其他功能,如數據庫支持(MySQL, PostgreSQL、Oracle等)、日誌內容篩選、定義日誌格式模板等。除了默認的udp協議外,rsyslog還支持tcp協議來接收日誌。
    本文只做簡單配置與說明。更多與日誌相關的服務的詳細解釋與配置,請參考http://w.gdu.me/wiki/Linux/rsyslog_logrotate.html
rsyslogd服務器及負載均衡;rsyslog和logrotate服務

 

環境準備:
操作系統:CentOS-6.5-x86_64
內核:# uname -r        2.6.32-431.el6.x86_64
關閉Selinux:1. 永久有效修改 /etc/selinux/config 文件中的 SELINUX="" 爲 disabled ,然後重啓。
            2. 即時生效setenforce 0
關閉防火牆:1、永久有效 chkconfig iptables off     2臨時關閉 # /etc/rc.d/init.d/iptables stop
服務器_IP:172.16.19.12(node2)
客戶端_IP:172.16.19.2(stu19)
LAMP環境直接使用yum安裝。
時間同步:如果涉及部署多名服務器時,最好使用NTP服務器同步時間。

本地光盤作爲yum源(CentOS-6.5-x86_64-bin-DVD1)

 

服務器端配置

rsyslog支持將日誌存儲於MySQL服務器中:

   1)安裝LAMP環境,配置好mysql數據庫服務,創建Syslog庫並授權遠程用戶syspass登陸,密碼爲syspass;

1 # yum -y install httpd mysql-server mysql php php-mysql php-gd gd 2 # service mysqld start 3 # /usr/bin/mysqladmin -u root password 'root' 4 # mysql -uroot -proot 5 ###由於本處使用了明文密碼,出於安全,生產環境中建議此後修改用戶的密碼。 6 mysql> grant all on Syslog.* to 'sysuser'@'localhost' identified by 'syspass'; 7 mysql> grant all on Syslog.* to 'sysuser'@'127.0.0.1' identified by 'syspass'; 8 mysql> flush privileges;

  2)安裝rsyslog(本機默認已安裝)與rsyslog-mysql包,rsyslog-mysql會生成ommysql.so庫和CreateDB.sql初始庫;rsyslog-mysql爲rsyslog將日誌傳送到mysql數據庫的一個模塊,這裏必須安裝。

1 # yum -y install rsyslog-mysql rsyslog 2 # rpm -ql rsyslog-mysql 3 /lib64/rsyslog/ommysql.so 4 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

  3)使用createDB.sql語句創建rsyslog依賴的數據庫:
      # mysql -uroot -proot < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
      生成庫:Syslog      
      生成表:SystemEvents    SystemEventsProperties

  4)修改配置文件,配置rsyslog啓用模塊,服務監聽端口爲514,且修改RULES段的相關日誌段使其存儲於mysql數據庫中

1 #### Modules #####啓用模塊: 2 # Provides UDP syslog reception 3 $ModLoad imudp 4 $UDPServerRun 514 ### 允許514端口接收使用UDP協議轉發過來的日誌 5 6 # Provides TCP syslog reception 7 $ModLoad imtcp 8 $InputTCPServerRun 514 #### 允許514端口接收使用TCP協議轉發過來的日誌 9 10 $ModLoad ommysql #手動添加 11 12 #### RULES ####段中定義記錄日誌信息於數據庫中,根據所需定義,可以把全部的日誌信息都存儲在庫中,本處只測試部分。 13 *.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,sysuser,syspass 14 ###ommysql:數據庫地址,數據庫名,數據庫用戶名,數據庫密碼

5)    重啓rsyslog服務,並查看514端口是否監聽
    # service rsyslog restart
    # ss -anltp |grep 514
    LISTEN     0      25      :::514       :::*      users:(("rsyslogd",19513,6))
    LISTEN     0      25       *:514        *:*      users:(("rsyslogd",19513,2)) 

 

本機測試:

   首先使用yum安裝vsftpd包,然後在使用命令tail -f /var/log/messages 查看日誌文件已經沒有顯示相關的日誌信息了。
   在mysql數據庫中查詢到相關日誌信息
    # mysql -uroot -proot
    mysql> use Syslog
    mysql> select * from  SystemEvents;
      在表中可以看到node2安裝vsftpd包的日誌信息。


客戶端相關:
配置:
客戶端主機名爲:stu19
1、安裝rsyslog包,默認安裝,# yum install rsyslog -y
    # rpm -q rsyslog
    rsyslog-7.4.7-6.el7.x86_64
2、修改配置文件rsyslog.conf,添加如下內容
    # vim /etc/rsyslog.conf

*.* @@172.16.19.12:514          # 允許日誌都送到rsyslog的服務端, @@表示通過tcp協議發送;@表示通過udp進行轉發
3、重啓rsyslog服務。
    # /etc/rc.d/init.d/rsyslog restart

測試:
    1、在客戶端使用命令安裝lrzsz ;
    2、tail -f /var/log/messages已經查不到日誌信息了
    3 、在服務器的數據庫表中


通過webGUI展示日誌信息    安裝 loganalyzer

首先下載好loganalyzer-3.6.5.tar.gz 以及中文語言包

1 # tar xf loganalyzer-3.6.5.tar.gz -C /var/www/html/ 2 # cd /var/www/html/ 3 # mv loganalyzer-3.6.5 loganalyzer 4 目錄中有個INSTALL文件,根據裏面的提示進行安裝。 5 # mv loganalyzer/src/* ./loganalyzer 6 # cp loganalyzer/contrib/* ./loganalyzer/ 7 # cd /var/www/html/loganalyzer/ 8 # chmod +x configure.sh secure.sh 9 # ./configure.sh 10 # ./secure.sh 11 # chmod 666 config.php 12 下載個漢化文件 13 # mkdir /var/www/html/loganalyzer/lang/zh 14 # 下載漢化文件 admin.php info.txt main.php ,把三個文件入在上面新建的zh目錄中 15 # chown -R apache.apache ./* 16 # service httpd restart

在瀏覽器中輸入http://172.16.19.12/loganalyzer,出現如下圖,單擊here處進行安裝
 image

如果沒有報錯信息,就直接點擊“next”直到Step3

image
 image

 

按需進行基本的配置,此處的自動解析IP地址設置爲No

image


從Step3直接跳轉到Step7,根據此前的數據庫信息填寫幾處關鍵信息(紅色方框內),其他的默認

image

 

image
直至此處,點擊Finish,安裝配置已經完成;

 

loganalyze的頁面

image

 

網頁的右上角處修改語言爲Chinese
 image

 

測試:
在服務器端使用yum 安裝lrzsz,在頁面中的第一條就顯示相關日誌了。
 image

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