Rsyslog-legacy(舊版本文法)配置說明及舉例
1、 RULES-書寫規則
格式:日志裝置(類型).日志級别 日志處理方式
(1)日志類型分類
auth | pam産生的日志 |
authpriv | ssh,ftp等登入資訊的驗證資訊 |
cron | 時間任務相關 |
kern | 核心 |
lpr | 列印 |
郵件 | |
mark(syslog) | rsyslog服務内部的資訊,時間辨別 |
news | 新聞討論區 |
user | 使用者程式産生的相關資訊 |
uucp | unix主機之間相關的通訊 |
local 1~7 | 自定義的日志裝置(類型) |
(2)日志級别分類
debug | 有調試資訊的,日志資訊最多 |
info | 一般資訊的日志,最常用 |
notice | 最具有重要性的普通條件的資訊 |
warning | 警告級别 |
err | 錯誤級别,阻止某個功能或子產品不能正常工作的資訊 |
crit | 嚴重級别,阻止整個系統或整個軟體不能正常工作的資訊 |
alert | 需要立即修改的資訊 |
emerg | 核心崩潰等嚴重資訊 |
none | 什麼都不記錄 |
備注:從上到小,級别由低到高,記錄的資訊也越來越少。
(3)連接配接符号
.xxx | 表示大于等于xxx級别的資訊 |
.=xxx | 表示等于xxx級别的資訊 |
.!xxx | 表示在xxx之外的等級的資訊 |
(4)示範
記錄到普通檔案或裝置檔案 | *.* /var/log/file.log #絕對路徑 *.* /dev/pts/0 |
轉發到遠端 | *.* @192.168.0.1 #UDP *.* @@192.168.0.1:10514 #TCP |
發送給使用者(線上使用者才生效) | *.* root *.* root,test #多個使用者使用英文逗号分開 *.* * #*表示所有線上使用者 |
忽略,丢棄 | local3.* ~ #忽略所有local3類型的所有級别的日志 |
執行腳本 | local3.* ^/tmp/a.sh #^後跟可執行腳本或程式的絕對路徑 #日志内容可作為腳本的第一個參數 |
觸發報警 | .. note:: |
備注:日志記錄的順序有先後關系
2、執行個體
(1)過濾日志,由:号開頭
:msg,contains, "error" /var/log/error.log |
:msg,contains, "error" ~ |
:msg,contains, "user vicky" ~ |
:msg, contains, "module-alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write" ~ |
local3.* ~ |
& ~ #忽略所有日志 |
(2)使用模闆來定義日志格式
- 預設模闆格式:
$template myFormat, "%rawmsg%\n"
- 定義模闆格式:
詳見文檔rsyslog的模闆
- 為規則使用模闆:
cron.* /var/log/cron;myFormat #分号後面添加模闆名
(3)遠端發送和接收
*.* @192.168.0.1 #UDP
*.* @@192.168.0.1:10514 #TCP
client端:配置發送到哪裡,有無端口,使用什麼協定發送
server端:配置使用什麼協定監聽哪個端口,收到的日志儲存到哪裡
(4)作為server端,将不同client端發送過來的日志儲存到不同的檔案
:FROMHOST-IP,isequal, "192.168.0.3" /var/log/host3.log
:FROMHOST-IP,isequal, "192.168.0.133" /var/log/host133.log
:FROMHOST-IP,startwith, "192.168.1." /var/log/network1.log
:FROMHOST-IP,startwith, "192.168.2." /var/log/network2.log
勿忘初心,放得始終