原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://cyr520.blog.51cto.com/714067/1214850
相信從事linux服務器運維的筒子們都和我一樣,每天都在和各種系統日誌、服務日誌打交道。這些日誌記錄了系統或服務每天發生的各種狀態。通過觀察日誌我們可以及時的解決掉很多系統和服務故障。
今天主要寫的是利用rsyslog集中收集系統日誌和用戶操作記錄,以及對收集到的日誌進行相關處理的方法。例如服務器異常監控和用戶行爲審計。
部署架構:
角色:應用服務器、日誌彙總服務器、數據庫、日誌監控和日誌查詢
這裏針對上圖做下說明:
1、 把應用服務器上的日誌彙總到日誌彙總服務器上。
2、 把彙總服務器上的日誌寫到數據庫中。
3、 針對彙總日誌進行相關處理,例如日誌監控和歷史查詢。
實驗環境:
操作系統:Centos 5.8 x86_64
一、配置日誌收集部分
在日誌彙總服務器上操作:
因爲Centos 5.8 x86_64默認使用syslog服務,所以這裏的日誌彙總服務器需要手工安裝rsyslog。
1 2 3 | service syslog stop chkconfig --del syslog yum -y install rsyslog |
1 2 3 | vim /etc/sysconfig/rsyslog #SYSLOGD_OPTIONS="-m 0" SYSLOGD_OPTIONS= "-c 2 -r 514 -x -m 240" |
各參數作用:
-c 指定運行兼容模式。
-r 指定監聽端口。
-x 在接收客戶端消息時,禁用DNS查找。需和-r參數配合使用。
-m 標記時間戳。單位是分鐘,爲0時,表示禁用該功能。
1 2 3 | chkconfig rsyslog on service rsyslog start ps -ef| grep rsyslog |
在應用服務器上操作:
1 2 | echo "*.* @192.168.154.128" >> /etc/syslog .conf service syslog restart |
1 2 | vim /etc/bashrc export PROMPT_COMMAND= '{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }' |
1 | source /etc/bashrc |
我們在應用服務器上隨便輸入幾個命令,看看日誌彙總服務器上是否都已正常收到。
應用服務器上隨便輸幾個命令。
日誌彙總服務器:
1 | tail -f /var/log/messages |
配置日誌入庫部分
創建數據庫和表結構:
1 | cat /usr/share/doc/rsyslog-mysql-3 .22.1 /createDB .sql |
1 | mysql < /usr/share/doc/rsyslog-mysql-3 .22.1 /createDB .sql |
1 2 | grant all on Syslog.* to rsyslog_user@ '%' identified by 'rsyslog_pass' ; flush privileges ; |
日誌彙總服務器上操作:
1 | yum –y install rsyslog-mysql |
1 2 3 | vim /etc/rsyslog .conf $ModLoad ommysql *.* :ommysql:192.168.154.128,Syslog,rsyslog_user,rsyslog_pass |
格式:*.* :ommysql:IP:庫名:用戶:密碼
1 | service rsyslog restart |
在數據庫驗證是否正常入庫
完成上述幾步,就可以着手進行日誌處理相關方面的工作了。
關於日誌處理部分
常見的日誌處理大致有以下幾種方法:
1、使用nagios對日誌進行進行狀態監控,例如發現error狀態就發消息給管理員。讓管理員及時的處理服務器相關故障。
2、對日誌進行分析,例如loganalyzer日誌分析工具。
3、查詢數據庫中的日誌信息,可檢索某用戶對某臺機器都進行了哪些操作。
今天先寫到這裏,如果大家有不明白的地方,歡迎和我溝通^_^。
本文出自 “小崔的成長之路” 博客,請務必保留此出處http://cyr520.blog.51cto.com/714067/1214850