利用Rsyslog集中收集系統日誌和用戶操做記錄以及相關處理方法

   相信從事linux服務器運維的筒子們都和我同樣,天天都在和各類系統日誌、服務日誌打交道。這些日誌記錄了系統或服務天天發生的各類狀態。經過觀察日誌咱們能夠及時的解決掉不少系統和服務故障。mysql

   今天主要寫的是利用rsyslog集中收集系統日誌和用戶操做記錄,以及對收集到的日誌進行相關處理的方法。例如服務器異常監控和用戶行爲審計。linux


部署架構:ios

角色:應用服務器、日誌彙總服務器、數據庫、日誌監控和日誌查詢sql

p_w_picpath

這裏針對上圖作下說明:數據庫

一、 把應用服務器上的日誌彙總到日誌彙總服務器上。vim

二、 把彙總服務器上的日誌寫到數據庫中。bash

三、 針對彙總日誌進行相關處理,例如日誌監控和歷史查詢。服務器


實驗環境:架構

操做系統:Centos 5.8 x86_64運維


1、配置日誌收集部分

在日誌彙總服務器上操做:

由於Centos 5.8 x86_64默認使用syslog服務,因此這裏的日誌彙總服務器須要手工安裝rsyslog。

service syslog stop
chkconfig --del syslog
yum -y install rsyslog
vim /etc/sysconfig/rsyslog
    #SYSLOGD_OPTIONS="-m 0"
    SYSLOGD_OPTIONS="-c 2 -r 514 -x -m 240"

各參數做用:

-c 指定運行兼容模式。

-r 指定監聽端口。

-x 在接收客戶端消息時,禁用DNS查找。需和-r參數配合使用。

-m 標記時間戳。單位是分鐘,爲0時,表示禁用該功能。

p_w_picpath

chkconfig rsyslog on
service rsyslog start
ps -ef|grep rsyslog

p_w_picpath


在應用服務器上操做:

echo "*.* @192.168.154.128" >> /etc/syslog.conf
service syslog restart
vim /etc/bashrc
    export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

p_w_picpath

source /etc/bashrc

咱們在應用服務器上隨便輸入幾個命令,看看日誌彙總服務器上是否都已正常收到。

應用服務器上隨便輸幾個命令。

p_w_picpath

日誌彙總服務器:

tail -f /var/log/messages

p_w_picpath


配置日誌入庫部分

建立數據庫和表結構:

cat /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql

p_w_picpath

mysql < /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql
grant all on Syslog.* to rsyslog_user@'%' identified by 'rsyslog_pass';
flush privileges;

p_w_picpath

日誌彙總服務器上操做:

yum –y install rsyslog-mysql
vim /etc/rsyslog.conf
    $ModLoad ommysql
    *.* :ommysql:192.168.154.128,Syslog,rsyslog_user,rsyslog_pass

格式:*.* :ommysql:IP:庫名:用戶:密碼

p_w_picpath

service rsyslog restart

在數據庫驗證是否正常入庫

p_w_picpath

完成上述幾步,就能夠着手進行日誌處理相關方面的工做了。


關於日誌處理部分

常見的日誌處理大體有如下幾種方法:

一、使用nagios對日誌進行進行狀態監控,例如發現error狀態就發消息給管理員。讓管理員及時的處理服務器相關故障。

二、對日誌進行分析,例如loganalyzer日誌分析工具。

三、查詢數據庫中的日誌信息,可檢索某用戶對某臺機器都進行了哪些操做。


今天先寫到這裏,若是你們有不明白的地方,歡迎和我溝通^_^。

相關文章
相關標籤/搜索