rsyslogd系統日誌服務總結

簡單介紹

  • 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官方文檔)php

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

參考資料

相關文章
相關標籤/搜索