問題:
syslog與rsyslogd有什麼關係?rsyslogd是syslog的升級版
如何增加自定義服務?通過local0 ~ local7可以自定義一些服務信息
如何與數據庫相關聯?
如何確定使用的什麼協議傳輸?根據配置
業務場景有哪些?記錄系統日誌、開發業務日誌
如何升級?
#
syslog缺點:
- 記錄丟失,默認使用UDP 514端口傳輸 UDP沒有檢測,重發等功能
- 記錄緩慢 磁盤IO利用率較高進而導致CPU阻塞影響系統性能
#
rsyslog優點:
- 支持數據庫
- 日誌內容篩選
- 自定義日誌格式模板
- 支持UDP、TCP、RELP傳輸協議
重啓服務:
systemctl restart rsyslog
/etc/init.d/rsyslog restart
syslog日誌消息既可以記錄在本地文件中,也可以通過網絡發送到接收syslog的服務器。
完整的syslog日誌中包含產生日誌的程序模塊(Facility)、嚴重性(Severity或 Level)、時間、主機名或IP、進程名、進程ID和正文。
配置文件的格式
facility.level action
facility: 服務
level: 等級
action: 動作
日誌服務:
sysloggd:主要登錄系統與網絡等服務
klodg:主要登錄內核產生的各項信息
logrotate:主要進行日誌文件的輪替功能
日誌記錄的主要數據
- 事件發生的日期與時間
- 發生此事的主機名
- 啓動此事件的服務名或函數名稱
- 該信息的實際數據內容
服務名稱(facility)
服務類型 | 說明 |
---|---|
auth(authpriv) | 授權信息 主要是認證有關的機制,例如login ssh eu等需要賬號、密碼 |
cron | 例行性工作調度信息 |
daemon | 守護進程、後臺進程 |
kern | 內核信息 |
lpr | 打印相關 |
郵件 | |
news | 與新聞服務器相關 |
syslog | 系統信息 |
user | 用戶進程 |
uucp | 由uucp產生的消息 |
local0~local7 | 自定義程序使用 |
消息級別(level)一下表中爲由高到低
等級名稱 | 說明 |
---|---|
* | 所有級別,除了none |
none | 沒有重要級,通常用於排錯(不記錄任何日誌消息) |
debug | 不包含函數條件或問題的其他信息(調試級-信息量最多) |
info | 僅是一些基本的消息(通知類) |
notice | 具有重要性的普通消息(普通單重要的消息) |
warning(warn) | 阻止某些工具或子系統功能實現的錯誤條件(重要消息) |
error(err) | 阻止工具或某些子系統部分功能實現的錯誤條件(出錯消息 |
crit | 比error還要嚴重 |
alert | 需要立即被修改的條件(緊急消息) |
panic | 該系統不可用(最緊急消息) |
服務與等級之間的連接符“.=!”
. 代表比當前等級要高(包含自己)的都要記錄下來
.= 僅記錄後面標記的等級
.! 記錄處後面的所有等級
信息記錄的文件名、設備、主機(action 動作域)
- 文件的絕對路徑:通常記錄到 /var/log/
- 打印機或其他:/dev/lp0
- 用戶名稱:顯示給某用戶
- 遠程主機:例如@www.vbird.tsai
-
- :代表在線的所有人
封裝好的調用函數
bool openlog ( string $ident , int $option , int $facility )
bool syslog ( int $priority , string $message )
bool closelog ( void )
rsyslog服務配置案例:
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad imudp #應用UDP協議模塊
$UDPServerRun 514 #設置UDP使用的端口
$ModLoad imtcp #應用tcp協議模塊
$InputTCPServerRun 514 #設置TCP使用的端口
$AllowedSender tcp, 192.168.18.248 #設置允許的iP
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
:fromhost-ip, !isequal, "127.0.0.1" ?Remote #過濾本機的日誌
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
配置文件
加載模塊
Module (load="imuxsock")
$ModLoad imuxsock
#
日誌記錄格式
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #默認格式
$template name , "路徑" #定義一種模板
$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
#
參考:
[RSYSLOG服務實時傳輸日誌配置請添加鏈接描述](https://www.cnblogs.com/blueswu/p/3564763.html)
[syslog簡介——系統日誌寫入API請添加鏈接描述](https://www.cnblogs.com/bonelee/p/6234647.html)
[Rsyslog的遠程傳輸日誌(系統日誌篇)請添加鏈接描述](http://blog.csdn.net/love910809/article/details/70761526)
[官方參考手冊請添加鏈接描述](http://www.rsyslog.com/guides-for-rsyslog/)