簡單介紹
- syslog系統日志服務協議,標准出來的比較晚
- 用於記錄系統日志或者用戶程序產生的日志
- 采用C/S架構,本地可以通過socket和syslogd守護進程通訊,遠程通過TCP/UDP協議通信,支持加密,默認端口是514
- 除了可以記錄本地日志之外,還可以作為中繼器(relay轉發)或者接收器(collector)接收來自支持syslog協議客戶端的日志
- CentOS6.0后,使用rsyslogd代替syslogd,rsyslogd是對syslogd的增強和擴展
- rsyslogd支持文件寫入本地文件,也支持寫入關系型數據庫,或者寫入Kafka以及hdfs
- 注意
- 如果日志信息包含多行,每一行是syslog的一個msg,對於整體分析會有問題
- syslog整體架構
- rsyslogd內部實現
(圖片來源rsyslog官方文檔)
syslog格式
-
HEADER MSG - <>包含的是Facility+Severity
- HEADER部分包含 時間 + host/ip
- MSG是具體的消息內容
syslog配置文件
- 每一行表示一個項目,格式為:facility.level action
- 常見的facility有:
- kern: 內核信息
- user: 用戶進程相關信息
- mail: 電子郵件相關信息
- daemon: 后台進程相關信息
- authpriv: 包括特權信息如用戶名在內的認證活動等
- cron: 計划任務信息
- syslog: 系統日志信息
- 重要級(按嚴重程度由低到高排序):
- debug: 調試信息
- info: 打印的信息
- none: 沒有重要級,通常用於排錯
- notice: 具有重要信息的普通條件
- warning: 警告信息
- err: 錯誤信息
- crit: 阻止某些工具或子系統功能實現的錯誤條件
- alert: 需要立即被修改的條件
- emerg: 該系統不可用
- 操作動作
- 文件
- 遠程日志服務
- 其他存儲
# /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# php-fpm daemon messages
if $syslogfacility-text == "daemon" and $programname == "php-fpm" then /var/log/php-fpm-error.log
# php error messages
if $syslogfacility-text == "user" and $programname == "php" then /var/log/php-error.log
- 重啟rsyslogd服務(CentOS7)
[root@wadeyu ~]# systemctl restart rsyslog