Linux中syslog、rsyslogd、rsyslog.service的使用及區(qū)別
簡單來說,它們的關(guān)系是:
syslog(協(xié)議/標(biāo)準(zhǔn)) -> rsyslogd(守護(hù)進(jìn)程/程序) -> rsyslog.service(服務(wù)單元/控制方式)
下面我們進(jìn)行詳細(xì)解釋。
syslog(系統(tǒng)和協(xié)議)
定位:一個(gè)標(biāo)準(zhǔn)和協(xié)議,而不是一個(gè)具體的軟件。
作用:
- 協(xié)議規(guī)范:它定義了一套系統(tǒng)日志應(yīng)該如何被生成、傳輸和存儲(chǔ)的規(guī)范。比如,它規(guī)定了日志的設(shè)施(facility,如 mail, auth, kern)和嚴(yán)重級(jí)別(severity level,如 debug, info, error)。
- API:為應(yīng)用程序提供了一套統(tǒng)一的接口(如
syslog()函數(shù)),讓程序可以輕松地將日志消息發(fā)送到系統(tǒng)的日志系統(tǒng)中,而無需關(guān)心這些日志最終寫到哪里。
總結(jié):
- 你可以把
syslog看作是日志領(lǐng)域的“通用語言”或“法律”。 - 它規(guī)定了格式和流程,但本身不負(fù)責(zé)具體執(zhí)行。
- 在歷史上,也有一個(gè)叫
syslogd的原始守護(hù)進(jìn)程來實(shí)現(xiàn)這個(gè)協(xié)議,但現(xiàn)在它基本上已被更先進(jìn)的實(shí)現(xiàn)所取代。
rsyslogd(守護(hù)進(jìn)程/程序)
定位:rsyslogd 是一個(gè)具體的、正在運(yùn)行的進(jìn)程(daemon)。它是 syslog 協(xié)議的一個(gè)高性能、功能豐富的實(shí)現(xiàn)。
作用:
- 它是 “rocket-fast system for log processing” 的縮寫。
- 它負(fù)責(zé)監(jiān)聽并接收來自系統(tǒng)內(nèi)核、各種應(yīng)用程序、通過網(wǎng)絡(luò)傳來的其他設(shè)備的日志消息。
根據(jù)其配置文件(通常是 /etc/rsyslog.conf 和 /etc/rsyslog.d/ 下的文件)中定義的規(guī)則,對(duì)這些消息進(jìn)行過濾、處理,然后輸出到指定的目標(biāo),比如:
- 本地文件(如
/var/log/messages,/var/log/syslog) - 遠(yuǎn)程服務(wù)器
- 數(shù)據(jù)庫
- 甚至執(zhí)行一個(gè)腳本
總結(jié):
rsyslogd是syslog協(xié)議的“實(shí)干家”,是真正在后臺(tái)干活的那個(gè)進(jìn)程。- 你在進(jìn)程列表里能看到它(
ps aux | grep rsyslog)。
rsyslog.service(服務(wù)單元)
定位:rsyslog.service 是一個(gè) systemd 的服務(wù)單元文件。
作用:
- 在采用
systemd作為初始化系統(tǒng)(init system)的現(xiàn)代 Linux 發(fā)行版(如 CentOS 7/8, Ubuntu 16.04+, Debian 8+)中,systemd負(fù)責(zé)管理系統(tǒng)上所有的服務(wù)。 rsyslog.service這個(gè)文件定義了如何啟動(dòng)、停止、重啟和管理rsyslogd這個(gè)守護(hù)進(jìn)程。
它告訴 systemd:
- 啟動(dòng)
rsyslogd進(jìn)程的命令是什么。 - 這個(gè)服務(wù)應(yīng)該在什么時(shí)候啟動(dòng)(比如在網(wǎng)絡(luò)啟動(dòng)之后)。
- 如果它崩潰了該怎么辦。
- 如何與其他服務(wù)產(chǎn)生依賴關(guān)系。
總結(jié):
rsyslog.service是rsyslogd進(jìn)程的“管理員”或“控制器”。- 我們通過
systemctl命令來操作這個(gè)服務(wù),從而間接地控制rsyslogd進(jìn)程。
三者關(guān)系與工作流程比喻
我們可以用一個(gè)比喻來理解:
- syslog(協(xié)議) 就像是 《道路交通法》。它規(guī)定了車輛(日志消息)應(yīng)該怎么行駛(格式、分類),但法律本身不會(huì)開車。
- rsyslogd(進(jìn)程) 就像是 交警支隊(duì)和交通管理系統(tǒng)。它是一個(gè)具體的實(shí)體,負(fù)責(zé)在路上執(zhí)法,根據(jù)法律(協(xié)議)和具體規(guī)定(配置文件)來指揮車輛(日志)去到正確的停車場(日志文件)。
- rsyslog.service(服務(wù)單元) 就像是 交警支隊(duì)的上級(jí)管理部門。你要啟動(dòng)、關(guān)閉或重啟整個(gè)交警系統(tǒng),需要通過這個(gè)管理部門(使用
systemctl命令)來下達(dá)指令。
實(shí)際操作中的體現(xiàn)
當(dāng)你在現(xiàn)代 Linux 系統(tǒng)上管理日志時(shí):
- 你想查看日志內(nèi)容,你會(huì)去讀
/var/log/下的文件,這些文件是由rsyslogd根據(jù)syslog格式寫入的。 - 你想修改日志規(guī)則,比如把認(rèn)證日志單獨(dú)存一個(gè)文件,你會(huì)去編輯
/etc/rsyslog.conf,然后讓rsyslogd重新加載配置。
sudo systemctl status rsyslog.service # 查看服務(wù)狀態(tài) sudo systemctl restart rsyslog.service # 重啟服務(wù)(會(huì)讓rsyslogd進(jìn)程重啟) sudo systemctl stop rsyslog.service # 停止服務(wù)(會(huì)終止rsyslogd進(jìn)程)
總結(jié)表格
| 名稱 | 類別 | 作用 | 相互關(guān)系 |
|---|---|---|---|
| syslog | 協(xié)議和標(biāo)準(zhǔn) | 定義了日志的格式、傳輸方式和處理規(guī)則。 | 是規(guī)范和基礎(chǔ)。 |
| rsyslogd | 守護(hù)進(jìn)程/程序 | syslog 協(xié)議的一個(gè)具體實(shí)現(xiàn),負(fù)責(zé)實(shí)際處理日志消息。 | 是實(shí)現(xiàn)協(xié)議、干活的進(jìn)程。 |
| rsyslog.service | systemd 服務(wù)單元 | 用于控制 rsyslogd 進(jìn)程的生命周期(啟動(dòng)、停止等)。 | 是管理 rsyslogd 進(jìn)程的工具。 |
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
cloudstack下libvirtd服務(wù)無響應(yīng)問題
這篇文章主要介紹了cloudstack下libvirtd服務(wù)無響應(yīng)問題的相關(guān)資料,需要的朋友可以參考下2016-10-10
Linux學(xué)習(xí)教程之redis哨兵集群詳解
這篇文章主要給大家介紹了關(guān)于Linux學(xué)習(xí)教程之Redis哨兵集群的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
在Apache服務(wù)器上啟用GZip壓縮靜態(tài)內(nèi)容的方法
這篇文章主要介紹了在Apache服務(wù)器上啟用GZip壓縮靜態(tài)內(nèi)容的方法,通過配置.htaccess文件即可輕松實(shí)現(xiàn),同時(shí)附帶了一些GZip的常用命令,需要的朋友可以參考下2015-08-08
CentOS 7.2安裝Nginx 1.10.2的詳細(xì)教程
最近公司要切換VPS,所以打算使用最新的系統(tǒng)進(jìn)行搭建LNMP,這篇文章是為CentOS 7.2安裝Nginx 1.10.2的安裝記錄,記錄下以便下次或者有需要的朋友們參考使用。下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
Apache JMeter 5.5 下載安裝及設(shè)置中文圖文教程
這篇文章主要介紹了Apache JMeter 5.5 下載安裝以及設(shè)置中文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
Linux系統(tǒng)禁止root賬號(hào)遠(yuǎn)程登錄的命令
這篇文章主要介紹了Linux系統(tǒng)禁止root賬號(hào)遠(yuǎn)程登錄的方法,文中給大家提到linux下禁止root遠(yuǎn)程登錄和添加新用戶,需要的朋友可以參考下2019-07-07

