linux rsyslog詳解
概念和特性
歷史日誌、歷史事件:時間、事件本身、日誌級別(根據時間的關鍵性程度)
系統日誌服務:syslog有兩個進程syslogd(system負責用戶進程)、 klogd(kernel負責內核進程)
centos7:rsyslog:syslogd、klogd
rsyslog和syslog對比:
1、多進程、可以為非本機上的進程接收日誌;
2、支持UDP\TCP\SSL\TLS\RELP;
3、支持MySQL,PGSQL,Oralce實現日誌存儲;
4、強大的內置過濾器,可實現過濾日誌信息中的任意部分;
5、自定義輸出格式;
(並非所有程序都rsyslog負責記錄,有的程序自己有自己的日誌記錄)
收集工具elk:elasticsearch強大的彈性搜索工具、logstash日誌收集器、kibana前端日誌顯示
日誌收集放:
facility設施(從功能活程序上對日誌進行分類),將多個發過來具有相同特性的數據流約束在一個管道內
auth、authpriv、cron、daemon、kern、lpr、mail、mark、news、security、user、uucp、local0-local7、syslog
priority日誌級別
debug、info、notice、warn(warning)、err(error)、crit(critical)、alert、emerg(panic)
指定級別:*(所有級別)、none(沒有級別)、priority(此級別及更高級別的日誌信息)、=priority(此級別)
facility.priority /var/log/messages
#rpm -q rsyslog
程序環境
主程序rsyslogd
配置文件/etc/rsyslog.conf
RULES:
facility.priority target(不光是文件,可以是用戶)
文件路徑:記錄到文件中,通常在/var/log,文件路徑前加-表示異步同步
用戶:將日誌通知給其他用戶,*表示所有用戶
日誌服務器:[email protected]:514,必須監聽在tcp或者udp某個端口,通常514端口
管道:|COMMAND
文件記錄的日誌的格式:
時間產生的時間 | 主機 | 進程pid | 時間內容 |
有些日誌記錄二進制格式:/var/log/wtmp(記錄當前系統上成功登陸的日誌,last查看);/var/log/btmp(記錄當前系統上失敗登陸的日誌,lastb查看)
lastlog命令:顯示當前系統每一個用戶最近一次登陸時間
服務腳本/etc/rc.d/init.d/rsyslog
rsyslog服務器:
#vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
配置使用基於mysql存儲日誌信息:
(1) 準備好MySQL服務器,創建用戶,授權對Syslog數據庫的全部訪問權限;
(2) 安裝rsyslog-mysql程序包;
(3) 創建rsyslog-mysql依賴的數據庫;
# mysql -uUSERNAME -hHOST -pPASSWORD < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(4) 配置rsyslog使用ommysql模塊
#### MODULES ####
$ModLoad ommysql
#### RULES ####
facility.priority :ommysql:DBHOST,DB,DBUSER,USERPASS
重啟rsyslog服務
(5) 安裝loganalyzer
(a) 配置webserver, 支持php
# yum install httpd php php-mysql php-gd
# service httpd start
(b) loganalyzer
# cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer
# cp loganalyzer-3.6.5/contrib/*.sh /var/www/html/loganalyzer
# cd /var/www/html/loganalyzer
# chmod +x *.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php
本文出自 “勤能補拙” 博客,請務必保留此出處http://echoroot.blog.51cto.com/11804540/1962987
linux rsyslog詳解