環境:Centos7.2
前言:系統日日夜夜不停地運行著,有這么一個守護進程,兢兢業業地不斷記錄它運行產生的日志,有不起眼的閑言碎語,值得管理員撇一眼的系統報錯,也默默地接收來自進程的嚴厲警告,甚至在內核崩潰前夕,同樣不遺余力記錄著當時發生的情形。他是無言的記錄者,沒有特別的修辭,但他的記錄的文字卻擲地有聲。本文的主角——rsyslog。
官方介紹rsyslog是增強型的,多線程的syslog守護進程。rsyslogd – reliable and extended syslogd.
一、rsyslog
rsyslog特性:
1.多線程
2.支持MySQL,PGSQL,Oracle等關系型數據庫存儲
3.強大的過濾器,實現過濾日志信息中任何部分的內容
4.自定義輸出格式
yum install rsyslog 即可安裝
主配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
rsyslog記錄日志,分為若干信道,每個信道有細分多個信息等級
信道-facility:
auth 認證
authpriv 認證(私有的)
cron 計劃任務
daemon 守護進程
kern 內核
lpr 打印服務
mail 郵件
mark 防火墻標記
news 新聞組
security 安全
user 用戶相關
uucp Unix主機之間拷貝文件
syslog 自身的記錄
local0-local7 自定義的信道
信息等級-priority:越向下級別越嚴格
debug 有調式信息的,日志信息最多,最詳細的信息
info 一般信息的日志
notice 具有重要性意義的普通信息
warn(warning) 警告信息,需要注意
err(error) 嚴重錯誤,模塊不能正常工作
crit(critical) 臨界預警,服務或系統不能正常運行
alert 告警信息,需要馬上修改的錯誤
emerg(panic) 嚴重告警,內核級別錯誤,系統馬上崩潰
配置文件分為三部分,需嚴格安裝配置段位置添加配置
#### MODULES #### 模塊配置
#### GLOBAL DIRECTIVES #### 全局指令
#### RULES #### 記錄規則
其中RULES 配置段:
基本格式:facility.priority target
facility可選內容:
前面所介紹的值
* :表示通配所有facility
priority可選內容:
前面所介紹的值
* :表示通配所有級別
none :不記錄日志
facility.priority 可用特別組合:
1)f1,f2,f3.pri 代表f1-f3指定的級別為pri
2)f1.pri1,f2.pri2,f3.pri3 代表分開指定級別pri
target可選內容
文件:將日志信息記錄到指定的文件中;文件路徑之前的“-”表示異步寫入之意;
用戶:將日志事件通知給指定的用戶;一般指登錄到當前系統上的所有用戶的終端;
日志服務器:@rsyslog_server,把日志信息發往指定的日志服務器;
管道:|COMMAND
二、配置一臺rsyslog收集服務器,負責記錄其他主機日志
服務端:修改配置文件啟用udp,tcp模塊
#### modules ####
…………
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
修改完成,重啟服務。
systemctl restart rsyslog
客戶端:
facility.priority @server_ip
三、配置rsyslog記錄日志于mysql
首先準備好mysql數據庫服務
(1) 安裝rsyslog連接至mysql server的驅動模塊;
yum install rsyslog-mysql
(2) 在mysql server準備rsyslog專用的用戶賬號;
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'%.cutemsyu' IDENTIFIED BY 'rsyslogpass';
//數據庫名Syslog需固定,后面mysql語句會創建該庫。授權地址依照實際情況添加。
(3) 生成所需要的數據庫和表;
mysql -ursyslog -prsyslogpass < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql #模塊自帶的sql語句
(4) 配置rsyslog使用ommysql模塊
#### MODULES ####
……
$ModLoad ommysql
(5) 配置RULES,將所期望的日志信息記錄于mysql中;
facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS
//例如: *.info,authpriv.none :ommysql:node-02.cutemsyu,Syslog,rsyslog,rsyslogpass
(6) 重啟rsyslog服務;
四、結合loganalyzer頁面顯示
loganalyzer 用于顯示日志的web GUI頁面,php編寫。需要amp環境。
準備amp環境,mysql數據庫前面已經配置好
yum install httpd php php-mysql php-gd #php-gd 為繪圖所用庫 tar xf loganalyzer-4.1.5.tar.gz #解壓項目包 cd loganalyzer-4.1.5 cp -a src /var/www/html/log #拷貝項目下src目錄至web server 目錄下 cd /var/www/html/log touch config.php #后續安裝所需的配置文件 chmod 666 config.php
現在打開瀏覽器,輸入http://web_server_ip/log 準備配置loganalyzer。
初次打開,如果配置正確,出現缺少配置文件的錯誤,屬于正常情況,點擊繼續配置
一路可按需修改,next
到下圖頁面,
source type:MYSQL Native
table type:Monitor Ware
database name 和table name 是固定的
配置完成后,安全起見把配置文件權限做嚴格一些
chmod 644 config.php
至此大功告成!
原創文章,作者:cutemsyu,如若轉載,請注明出處:http://www.www58058.com/53680