1、簡要說明
php
日誌記錄了對服務器系統的一切操做,所以,對服務器日誌的管理,是咱們每一個運維人員天天的必要工做,也是評估服務器安全情況的有效手段之一,但是如何管理衆多服務器的日誌?若是要是一臺一臺看的話,怕是不止盯的眼花繚亂,累也的累壞了。
html
因此,咱們要搭建一臺日誌服務器,要把全部服務器的日誌統統存到這臺遠程日誌服務器上來,這樣,不只能夠集中管理、評估各服務器的安全情況,還能夠減小各服務器的磁盤佔用率。
mysql
即便全部服務器的日誌都保存在一臺服務器上的mysql(也可存到本地磁盤)了,如何管理、分析這些日誌也是一個問題,好在有loganalyzer這個日誌分析工具,它會讓日誌分析變得so easy!sql
服務器說明:192.168.200.106是rsyslog日誌服務器,其它服務器均爲rsyslog客戶端
數據庫
2、部署rsyslog+loganalyzer日誌服務器vim
咱們的首要工做便是配置好rsyslog服務器,接下來的任務便是部署loganalyzer這個日誌分析工具,這就是一個LAMP,直接yum安裝,配置配置參數就搞定了。但這次,在公司部署的時候,卻碰到幾個問題,致使日誌服務器不能正常獲取各服務器的日誌數據,所以,部署過程當中仍是須要細心的,下面就進入正題。安全
一、配置rsyslog日誌服務器bash
(1)安裝軟件包
服務器
由於rsyslog要把日誌存到mysql中,因此要有mysql服務器,還要有rsyslog配置文件加載鏈接mysql的模塊運維
[root@rsyslog ~]# yum -y install rsyslog mysql-server rsyslog-mysql
(2)配置數據庫
[root@rsyslog ~]# 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文件就是須要導入到數據庫中的數據文件 # [root@rsyslog ~]# service mysqld start #啓動mysqld服務 [root@rsyslog ~]# mysql #鏈接mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. 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 names You can turn off this feature to get a quicker startup with -A Database changed mysql> 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> \q Bye
(3)修改rsyslog日誌服務器配置文件
[root@rsyslog ~]# 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服務
[root@rsyslog ~]# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ]
二、配置rsyslog客戶端
(1)修改配置文件
[root@mariadb ~]# 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服務
[root@rsyslog ~]# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ]
驗證客戶端日誌文件的存放
(1)使用logger生成一條日誌信息
[root@mariadb ~]# logger -p info "I'm mariadb"
(2)在rsyslog服務器上驗證
[root@rsyslog ~]# mysql mysql> use Syslog; mysql> select * from SystemEvents\G *************************** 279. row *************************** ID: 279 CustomerID: NULL ReceivedAt: 2014-08-13 20:07:39 DeviceReportedTime: 2014-08-13 20:07:40 Facility: 1 Priority: 6 FromHost: mariadb Message: I'm mariadb #我在作的時候,就是由於第二部的1的(2)中mysql受權時,寫的是客戶端IP,致使這裏獲取不到數據。 NTSeverity: NULL #所以,在數據庫受權的時候,要受權的是rsyslog日誌服務器的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: 0 279 rows in set (0.00 sec)
到這裏,rsyslog日誌服務器就部署完成了,但此時日誌處於rsyslog日誌服務器的mysql數據庫中,並不方便查看與管理,因此咱們再部署一個loganalyzer日誌分析器,來減少日誌管理的複雜度
3、部署loganalyzer日誌分析器
一、安裝LAMP環境
[root@rsyslog ~]# yum -y install httpd php php-mysql php-gd [root@rsyslog ~]# mkdir /var/www/html/loganalyzer/ mkdir: created directory `/var/www/html/loganalyzer/'
二、解壓loganalyzer源碼包
[root@rsyslog ~]# tar xf loganalyzer-3.6.5.tar.gz [root@rsyslog ~]# cd loganalyzer-3.6.5 [root@rsyslog loganalyzer-3.6.5]# [root@rsyslog loganalyzer-3.6.5]# ls ChangeLog contrib COPYING doc INSTALL src [root@rsyslog loganalyzer-3.6.5]# mv src/* /var/www/html/loganalyzer/ #src下是php的網頁文件 [root@rsyslog loganalyzer-3.6.5]# ls contrib/ configure.sh secure.sh [root@rsyslog loganalyzer-3.6.5]# mv contrib/* /var/www/html/loganalyzer/ #contrib目錄下的兩個腳本,能夠打開看看 # [root@rsyslog loganalyzer-3.6.5]# cd /var/www/html/loganalyzer/ [root@rsyslog loganalyzer]# sh configure.sh #執行腳本
三、配置httpd
修改DocumentRoot網頁根目錄
[root@rsyslog ~]# vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html/loganalyzer" # [root@rsyslog ~]# service httpd start
四、配置httpd和mysql開機啓動
[root@rsyslog ~]# chkconfig mysqld on [root@rsyslog ~]# chkconfig httpd on
五、建立loganalyzer數據庫,並受權
[root@rsyslog ~]# mysql Enter password: mysql> create database loganalyzer; Query OK, 1 row affected (0.04 sec) mysql> grant all on loganalyzer.* to dianyi@'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)
六、安裝loganalyzer
(1)安裝界面
(2)step 1
(3)step 2
(4)setp 3
在這一步,須要創建一個數據庫來受權監控服務器訪問
mysql>create database loganalyzer; mysql>grant all on loganalyzer.* to loguser@'192.168.200.106' identified by 'dianyi_888'; mysql>flush privileges;
(5)setp 4
(6)setp 5
(7)step 6
(8)setp 7
(9)setp 8
(10)開始報錯
排錯階段
一、從新安裝
二、修改表名爲正確的表名
三、安裝完成,enjoy it