CentOS 6.5下部署日志服務器 Rsyslog+LogAnalyzer+MySQL

簡介

LogAnalyzer 是一款syslog日志和其他網絡事件數據的Web前端。它提供了對日志的簡單瀏覽、搜索、基本分析和一些圖表報告的功能。數據可以從數據庫或一般的syslog文本文件中獲取,所以LogAnalyzer不需要改變現有的記錄架構?;诋斍暗娜罩緮祿?,它可以處理syslog日志消息,Windows事件日志記錄,支持故障排除,使用戶能夠快速查找日志數據中看出問題的解決方案。

LogAnalyzer 獲取客戶端日志會有兩種保存模式,一種是直接讀取客戶端/var/log/目錄下的日志并保存到服務端該目錄下,一種是讀取后保存到日志服務器數據庫中,推薦使用后者。

LogAnalyzer 采用php開發,日志服務器需要php的運行環境,本文采用LNMP。

系統環境

服務端:

Rsyslog Server OS: CentOS6.5
Rsyslog Server OS: 192.168.1.200
Rsyslog 版本:rsyslog-5.8.10-10.el6_6.x86_64
LogAnalyzer 版本: loganalyzer-4.1.5
LNMP 版本:nginx1.8.0 + php5.6.29 + mysql 5.7.17
SELinux 關閉
iptables 打開

客戶端:

Rsyslog Client OS: CentOS6.5
Rsyslog Client OS: 192.168.1.201

安裝LNMP環境

此處省略

服務端軟件安裝和配置

軟件安裝:rsyslog和rsyslog-mysql

檢查是否按照rsyslog軟件(系統會默認安裝)

# rpm -qa|grep rsyslog

安裝模塊rsyslog-mysql(負責將日志傳送到MySQL):

# yum install rsyslog-mysql -y

rsyslog配置

1、導入rsyslog-mysql自帶的sql文件

# mysql -uroot -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

createDB.sql文件的內容:(創建Syslog數據庫,并創建空表SystemEvents和SystemEventsProperties)

CREATE DATABASE Syslog;
USE Syslog;
CREATE TABLE SystemEvents
(
        ID int unsigned not null auto_increment primary key,
        CustomerID bigint,
        ReceivedAt datetime NULL,
        DeviceReportedTime datetime NULL,
        Facility smallint NULL,
        Priority smallint NULL,
        FromHost varchar(60) NULL,
        Message text,
        NTSeverity int NULL,
        Importance int NULL,
        EventSource varchar(60),
        EventUser varchar(60) NULL,
        EventCategory int NULL,
        EventID int NULL,
        EventBinaryData text NULL,
        MaxAvailable int NULL,
        CurrUsage int NULL,
        MinUsage int NULL,
        MaxUsage int NULL,
        InfoUnitID int NULL ,
        SysLogTag varchar(60),
        EventLogType varchar(60),
        GenericFileName VarChar(60),
        SystemID int NULL
);

CREATE TABLE SystemEventsProperties
(
        ID int unsigned not null auto_increment primary key,
        SystemEventID int NULL ,
        ParamName varchar(255) NULL ,
        ParamValue text NULL
);

2、創建訪問Syslog數據庫的賬號并分配權限

mysql> grant all privileges on `Syslog`.* to 'rsyslog'@'localhost' identified by 'abc123456';
mysql> flush privileges;

3、配置服務端支持rsyslog-mysql模塊

# vim /etc/rsyslog.conf
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,abc123456

說明:ommysql表示裝載的模塊名,Syslog表示數據庫名,rsyslog表示用戶,abc123456是密碼
配置支持rsyslog-mysql模塊,rsyslog會將新產生的日志信息自動傳到MySQL中保存
4、開啟相關日志模塊,并開啟UDP服務端口獲取內網內其他linux系統日志

# vim /etc/rsyslog.conf
$ModLoad immark    #immark是模塊名,支持日志標記
$ModLoad imudp    #imupd是模塊名,支持udp協議
$UDPServerRun 514    #允許514端口接收使用UDP和TCP協議轉發過來的日志

5、重啟rsyslog服務,讓配置生效

# /etc/init.d/rsyslog restart

6、開啟iptables規則
開放514端口,僅限內網訪問

# vim /etc/sysconfig/iptables
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 514 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 514 -j ACCEPT
# /etc/init.d/iptables restart

客戶端配置

1、檢查rsyslog是否安裝

# rpm -qa|grep rsyslog

2、配置rsyslog客戶端發送本地日志到服務端

# vim /etc/rsyslog.conf
*.* @192.168.1.200

服務端地址:192.168.1.200
3、重啟服務

# /etc/init.d/rsyslog restart

4、將客戶端用戶的history寫入到系統日志,用于審計用戶登錄操作
用戶登錄操作被寫入系統日志/var/log/messages中

# vim /etc/bashrc
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
# source /etc/bashrc

說明:

1、PROMPT_COMMAND 是bash的環境變量,變量值會作為普通bash命令執行,執行時間是在bash顯示prompt之前。
2、" msg=$(history 1 | { read x y; echo $y; }) " 。在prompt顯示之前,執行history 1 ,總會獲取最后一次執行的命令,通過read命令過濾掉歷史ID。msg變量的值就是執行的命令。
3、logger 是一個shell 命令接口,可以通過該接口使用Rsyslog的系統日志模塊,還可以從命令行直接向系統日志文件寫入一行信息。

測試server端是否正常接收client端的日志

client 端測試:

[test@server ~]$ pwd
[test@server ~]$ whoami
[test@server ~]$ id
[test@server ~]$ ls

查看server端的messages日志:

#  tail -f /var/log/messages
Jun  9 17:57:52 server test: [euid=test]:test pts/1 2017-06-09 17:43 (217.11.57.227):[/home/test]pwd
Jun  9 17:57:53 server test: [euid=test]:test pts/1 2017-06-09 17:43 (217.11.57.227):[/home/test]whoami
Jun  9 17:57:54 server test: [euid=test]:test pts/1 2017-06-09 17:43 (217.11.57.227):[/home/test]id
Jun  9 17:58:02 server test: [euid=test]:test pts/1 2017-06-09 17:43 (217.11.57.227):[/home/test]ls

安裝配置LogAnalyzer

1、軟件安裝

# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.5.tar.gz
# tar zxvf loganalyzer-4.1.5.tar.gz
# cd loganalyzer-4.1.5
# mkdir /home/www/loganalyzer
# mv src/* /home/www/loganalyzer  
# chmod +x contrb/configure.sh
# cp -a contrb/configure.sh /home/www/loganalyzer/
# cd /home/www/loganalyzer/
# ./configure.sh; rm -f configure.sh 

在Nginx上配置域名訪問,根目錄為/home/www/loganalyzer
2、在瀏覽器安裝向導中安裝LogAnalyzer

測試LogAnalyzer的使用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容