環境: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使用者相關
uucpUnix主機之間拷貝檔案
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
#子產品自帶的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.178linux.com/53680