標籤:rsyslog+loganalyzer Log Service器
一、簡要說明
日誌記錄了對伺服器系統的一切操作,因此,對伺服器日誌的管理,是我們每個營運人員每天的必要工作,也是評估伺服器安全狀況的有效手段之一,可是如何管理眾多伺服器的日誌?如果要是一台一台看的話,怕是不止盯的眼花繚亂,累也的累壞了。
所以,我們要搭建一台Log Service器,要把所有伺服器的日誌通通存到這台遠程Log Service器上來,這樣,不僅可以集中管理、評估各伺服器的安全狀況,還可以減少各伺服器的磁碟佔用率。
即使所有伺服器的日誌都儲存在一台伺服器上的mysql(也可存到本地磁碟)了,如何管理、分析這些日誌也是一個問題,好在有loganalyzer這個日誌分析工具,它會讓日誌分析變得so easy!
伺服器說明:192.168.200.106是rsyslogLog Service器,其它伺服器均為rsyslog用戶端
二、部署rsyslog+loganalyzerLog Service器
我們的首要工作即是配置好rsyslog伺服器,接下來的任務即是部署loganalyzer這個日誌分析工具,這就是一個LAMP,直接yum安裝,配置配置參數就搞定了。但此次,在公司部署的時候,卻碰到幾個問題,導致Log Service器不能正常擷取各伺服器的日誌資料,因此,部署過程中還是需要細心的,下面就進入正題。
1、配置rsyslogLog Service器
(1)安裝軟體包
因為rsyslog要把日誌存到mysql中,所以要有mysql伺服器,還要有rsyslog設定檔載入串連mysql的模組
[[email protected] ~]# yum -y install rsyslog mysql-server rsyslog-mysql
(2)設定資料庫
[[email protected] ~]# rpm -ql rsyslog-mysql #首先查看rsyslog-mysql安裝產生了那些檔案/lib64/rsyslog/ommysql.so/usr/share/doc/rsyslog-mysql-5.8.10/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql #此sql檔案就是需要匯入到資料庫中的資料檔案#[[email protected] ~]# service mysqld start #啟動mysqld服務[[email protected] ~]# mysql #串連mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.1.73 Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql> mysql> mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || test |+--------------------+3 rows in set (0.00 sec) #此時,只有3個庫#mysql> source /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql; #匯入rsyslog的資料檔案mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || Syslog || mysql || test |+--------------------+4 rows in set (0.01 sec)mysql> use Syslog; #Syslog即是記錄記錄檔的資料庫Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+------------------------+| Tables_in_Syslog |+------------------------+| SystemEvents || SystemEventsProperties |+------------------------+2 rows in set (0.00 sec)##接下來,即是為rsyslog伺服器授權。此處一定是rsyslog伺服器的IP#如果寫成各伺服器的IP,那就錯了mysql> grant all on Syslog.* to ‘syslogroot‘@‘127.0.0.1‘ identified by ‘syslogpass‘;Query OK, 0 rows affected (0.00 sec)mysql> grant all on Syslog.* to ‘syslogroot‘@‘192.168.200.106‘ identified by ‘syslogpass‘;Query OK, 0 rows affected (0.04 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> \qBye
(3)修改rsyslogLog Service器設定檔
[[email protected] ~]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#"$ModLoad imuxsock$ModLoad imklog$ModLoad imudp #載入udp的模組$UDPServerRun 514 #允許接收udp 514的連接埠傳來的日誌$ModLoad imtcp #載入tcp的模組$InputTCPServerRun 514 #允許接收tcp 514的連接埠傳來的日誌$ModLoad ommysql #載入mysql的模組$ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat$IncludeConfig /etc/rsyslog.d/*.conf*.* :ommysql:192.168.200.106,Syslog,syslogroot,syslogpass #添加此行,所有設施的所有日誌都記錄到此資料庫伺服器的Syslog資料庫中,以syslogroot使用者,syslogpass密碼訪問資料庫local7.* /var/log/boot.log$template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n":programname, startswith, "spice-vdagent" /var/log/spice-vdagent.log;SpiceTmpl
(4)修改完成後,重啟rsyslog服務
[[email protected] ~]# service rsyslog restartShutting down system logger: [ OK ]Starting system logger: [ OK ]
2、配置rsyslog用戶端
(1)修改設定檔
[[email protected] ~]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#"$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)$ModLoad imklog # provides kernel logging support (previously done by rklogd)$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$IncludeConfig /etc/rsyslog.d/*.conf*.* @192.168.200.106*.* :ommysql:192.168.200.106,Syslog,syslogroot,syslogpass$template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n":programname, startswith, "spice-vdagent" /var/log/spice-vdagent.log;SpiceTmpl
(2)修改完成後,重啟rsyslog服務
[[email protected] ~]# service rsyslog restartShutting down system logger: [ OK ]Starting system logger: [ OK ]
驗證用戶端記錄檔的存放
(1)使用logger產生一條日誌資訊
[[email protected] ~]# logger -p info "I‘m mariadb"
(2)在rsyslog伺服器上驗證
[[email protected] ~]# mysqlmysql> use Syslog;mysql> select * from SystemEvents\G*************************** 279. row *************************** ID: 279 CustomerID: NULL ReceivedAt: 2014-08-13 20:07:39DeviceReportedTime: 2014-08-13 20:07:40 Facility: 1 Priority: 6 FromHost: mariadb Message: I‘m mariadb #我在做的時候,就是因為第二部的1的(2)中mysql授權時,寫的是用戶端IP,導致這裡擷取不到資料。 NTSeverity: NULL #因此,在資料庫授權的時候,要授權的是rsyslogLog Service器的IP Importance: NULL EventSource: NULL EventUser: NULL EventCategory: NULL EventID: NULL EventBinaryData: NULL MaxAvailable: NULL CurrUsage: NULL MinUsage: NULL MaxUsage: NULL InfoUnitID: 1 SysLogTag: root: EventLogType: NULL GenericFileName: NULL SystemID: NULL processid: checksum: 0279 rows in set (0.00 sec)
到這裡,rsyslogLog Service器就部署完成了,但此時日誌處於rsyslogLog Service器的mysql資料庫中,並不方便查看與管理,所以我們再部署一個loganalyzer日誌分析器,來減小日誌管理的複雜度
三、部署loganalyzer日誌分析器
1、安裝LAMP環境
[[email protected] ~]# yum -y install httpd php php-mysql php-gd[[email protected] ~]# mkdir /var/www/html/loganalyzer/mkdir: created directory `/var/www/html/loganalyzer/‘
2、解壓loganalyzer源碼包
[[email protected] ~]# tar xf loganalyzer-3.6.5.tar.gz[[email protected] ~]# cd loganalyzer-3.6.5[[email protected] loganalyzer-3.6.5]# [[email protected] loganalyzer-3.6.5]# lsChangeLog contrib COPYING doc INSTALL src[[email protected] loganalyzer-3.6.5]# mv src/* /var/www/html/loganalyzer/ #src下是php的網頁檔案[[email protected] loganalyzer-3.6.5]# ls contrib/configure.sh secure.sh[[email protected] loganalyzer-3.6.5]# mv contrib/* /var/www/html/loganalyzer/ #contrib目錄下的兩個指令碼,可以開啟看看#[[email protected] loganalyzer-3.6.5]# cd /var/www/html/loganalyzer/[[email protected] loganalyzer]# sh configure.sh #執行指令碼
3、配置httpd
修改DocumentRoot網頁根目錄
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html/loganalyzer"#[[email protected] ~]# service httpd start
4、配置httpd和mysql開機啟動
[[email protected] ~]# chkconfig mysqld on[[email protected] ~]# chkconfig httpd on
5、建立loganalyzer資料庫,並授權
[[email protected] ~]# mysqlEnter password:mysql> create database loganalyzer;Query OK, 1 row affected (0.04 sec)mysql> grant all on loganalyzer.* to [email protected]‘192.168.200.106‘ identified by ‘dianyi123‘;Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
6、安裝loganalyzer
(1)安裝介面
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/D3/wKioL1PsIlfiOLZeAABquvXDTC4299.png" title="1.PNG" alt="wKioL1PsIlfiOLZeAABquvXDTC4299.png" />
(2)step 1
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/D2/wKiom1PsIVTTUlnbAADM3WKzmDk997.png" title="2.PNG" alt="wKiom1PsIVTTUlnbAADM3WKzmDk997.png" />
(3)step 2
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/D3/wKioL1PsIonz2zexAADqKOiUPOM107.png" title="3.PNG" alt="wKioL1PsIonz2zexAADqKOiUPOM107.png" />
(4)setp 3
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/D2/wKiom1PsIYaixqQbAAEZ8AIpcvc759.png" title="4.PNG" alt="wKiom1PsIYaixqQbAAEZ8AIpcvc759.png" />
(5)setp 4
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/D3/wKioL1PsIraDnTUFAADZM7ZNkGk359.png" title="5.PNG" alt="wKioL1PsIraDnTUFAADZM7ZNkGk359.png" />
(6)setp 5
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/D4/wKioL1PsIs7RkNMTAAKJgP4gbwE940.png" title="6-1.PNG" alt="wKioL1PsIs7RkNMTAAKJgP4gbwE940.png" />
(7)step 6
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/D4/wKioL1PsIumTCKMbAAB_sTB70ns683.png" title="7.PNG" alt="wKioL1PsIumTCKMbAAB_sTB70ns683.png" />
(8)setp 7
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/D4/wKioL1PsIv_ADEgwAADnh60ziIo232.png" title="8.PNG" alt="wKioL1PsIv_ADEgwAADnh60ziIo232.png" />
(9)setp 8
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/D2/wKiom1PsIf3SUHv8AABN8J_yFCY473.png" title="9.PNG" alt="wKiom1PsIf3SUHv8AABN8J_yFCY473.png" />
(10)開始報錯
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/D4/wKioL1PsIynRWp_OAAEdNAQ1GfY306.png" title="10-error.PNG" alt="wKioL1PsIynRWp_OAAEdNAQ1GfY306.png" />
排錯階段
1、重新安裝
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/D4/wKioL1PsI1XjP7MxAABIUlA92OQ550.png" title="11.PNG" alt="wKioL1PsI1XjP7MxAABIUlA92OQ550.png" />
2、修改表名為正確的表名
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/D4/wKioL1PsI2jhZr3gAADcNzodDiY820.png" title="12.PNG" alt="wKioL1PsI2jhZr3gAADcNzodDiY820.png" />
3、安裝完成,enjoy it
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/D4/wKioL1PsI4Xzsae8AAJd-IwfiuI760.png" title="13.PNG" alt="wKioL1PsI4Xzsae8AAJd-IwfiuI760.png" />
本文出自 “nmshuishui的部落格” 部落格,請務必保留此出處http://nmshuishui.blog.51cto.com/1850554/1539784