Linux日志服務rsyslog深度解析(上)

🐇明明跟你說過:個人主頁

🏅個人專欄:《Linux :從菜鳥到飛鳥的逆襲》🏅

🔖行路有良友,便是天堂🔖

目錄

一、引言

1、日志在Linux系統中的作用

2、rsyslog歷史背景?

3、rsyslog與syslogd的比較?

二、rsyslog基礎知識?

1、rsyslog的安裝與配置基礎

2、rsyslog的組件架構


一、引言

1、日志在Linux系統中的作用

1. 系統監控和管理

  • 系統健康檢查:日志文件記錄了系統的啟動過程、內核消息、硬件事件等,可以幫助管理員了解系統的健康狀況。
  • 資源使用監控:日志文件可以記錄CPU、內存、磁盤和網絡等資源的使用情況,幫助管理員監控系統性能。

2. 故障排查和調試

  • 錯誤排查:當系統或應用程序發生錯誤時,日志文件中通常會記錄錯誤信息和堆棧跟蹤,這些信息對故障排查和調試非常有幫助。
  • 行為回溯:通過查看日志文件,可以了解系統或應用程序在特定時間段內的行為,幫助找出問題的根源。

3. 安全監控

  • 入侵檢測:日志文件可以記錄系統的登錄嘗試、權限變更和異常操作等,有助于檢測和防范潛在的入侵行為。
  • 審計和合規:日志文件可以用于審計和合規檢查,確保系統操作符合安全策略和法規要求。

4. 性能分析和優化

  • 性能瓶頸分析:通過分析日志文件中的性能數據,可以找出系統或應用程序的性能瓶頸,進行相應的優化。
  • 趨勢分析:日志文件中的數據可以用于分析系統性能的歷史趨勢,幫助預測未來的性能需求和瓶頸。

?

2、rsyslog歷史背景?

rsyslog 是一個開源的日志處理工具,廣泛用于UNIX和Linux系統中。它起源于經典的syslog,并在此基礎上進行了大量的擴展和改進。

1. syslog的起源

  • syslog協議:最早由Eric Allman在1980年代為BSD Unix開發。syslog協議提供了一個標準化的日志記錄機制,用于記錄系統事件和應用程序消息。
  • syslog守護進程:是最早的系統日志記錄工具之一,負責接收和處理來自系統和應用程序的日志消息。

2. syslog的局限性


隨著時間的推移,經典的syslog守護進程暴露出了一些局限性,包括:

  • 擴展性不足:syslog的設計較為簡單,難以滿足現代系統復雜的日志處理需求。
  • 性能問題:在處理大量日志消息時,syslog的性能和效率較低。
  • 靈活性不足:缺乏高級的過濾、格式化和轉發功能,難以適應多樣化的日志處理場景。

3. rsyslog的誕生

  • 起源:rsyslog由Rainer Gerhards在2004年開始開發,旨在解決經典syslog的局限性。
  • 開源發布:rsyslog在2007年作為開源項目發布,迅速得到了社區的廣泛關注和使用。

4. rsyslog的特點和改進


rsyslog在經典syslog的基礎上進行了大量改進,具有以下主要特點:

  • 高性能:通過多線程和異步處理機制,極大地提高了日志處理的性能和效率。
  • 模塊化設計:采用模塊化架構,支持通過插件擴展功能,包括多種輸入、輸出和處理模塊。
  • 高級過濾和處理:支持復雜的過濾規則和日志消息的格式化處理,滿足多樣化的日志處理需求。
  • 可靠性:提供可靠的日志傳輸機制,確保日志消息不會丟失。
  • 支持多種協議:支持包括UDP、TCP、RELp在內的多種網絡協議,增強了日志消息的傳輸能力。
  • 豐富的輸出選項:支持將日志消息發送到文件、數據庫、遠程服務器等多種目標。

5. 發展歷程

  1. 2004年:Rainer Gerhards開始開發rsyslog。
  2. 2007年:rsyslog作為開源項目發布,逐步取代經典syslog守護進程。
  3. 2008年:加入了對RELp(Reliable Event Logging Protocol)的支持,提高了日志傳輸的可靠性。
  4. 2010年:引入了對零消息隊列(ZeroMQ)的支持,進一步提升了并發處理能力。
  5. 2011年:加入了對 Elasticsearch、Redis 等現代存儲系統的支持。
  6. 2012年以后:持續進行功能擴展和性能優化,逐步成為Linux系統中最常用的日志處理工具之一。

3、rsyslog與syslogd的比較?

syslogd 是最早的 UNIX 和 Linux 系統日志守護進程之一,它提供了一種簡單而有效的方式來記錄和管理系統和應用程序的日志。
rsyslog syslogd 是兩個用于日志管理的守護進程,盡管它們有共同的歷史淵源,但在功能和特性上有顯著的差異。

1. 性能和擴展性


syslogd:

  • 性能:設計簡單,適合處理中小規模的日志量。
  • 擴展性:擴展性有限,難以處理大量并發日志消息。

rsyslog:

  • 性能:支持多線程和異步處理,能夠高效地處理大量日志消息。
  • 擴展性:模塊化設計,允許通過插件進行功能擴展,能夠適應大規模和高并發的日志處理需求。


2. 配置靈活性


syslogd:

  • 配置文件:配置文件格式相對簡單,但功能有限。
  • 靈活性:缺乏高級的過濾和處理功能,配置靈活性較低。

rsyslog:

  • 配置文件:支持復雜的配置文件格式,允許進行精細的日志過濾、格式化和路由。
  • 靈活性:提供強大的配置選項,支持復雜的日志處理需求。


3. 支持的輸入和輸出


syslogd:

  • 輸入:主要支持標準的syslog協議(UDP)。
  • 輸出:主要支持將日志消息寫入文件或發送到遠程syslog服務器。

rsyslog:

  • 輸入:支持多種輸入來源,包括文件、網絡(UDP、TCP、RELp)、數據庫、消息隊列等。
  • 輸出:支持多種輸出目標,包括文件、數據庫、遠程服務器、消息隊列、Elasticsearch等。


4. 可靠性


syslogd:

  • 可靠性:使用UDP傳輸日志消息,傳輸不可靠,可能丟失日志消息。

rsyslog:

  • 可靠性:支持多種可靠的傳輸協議(如TCP、RELp),提供可靠的日志傳輸機制,確保日志消息不丟失。


5. 日志處理功能


syslogd:

  • 處理功能:基本的日志記錄和轉發功能,缺乏高級的處理能力。

rsyslog:

  • 處理功能:支持復雜的日志處理規則,包括條件過濾、消息修改、格式化、轉發等,功能強大。


6. 安全性


syslogd:

  • 安全性:基本的安全性特性,缺乏現代化的安全機制。

rsyslog:

  • 安全性:支持TLS加密傳輸,增強了日志消息傳輸的安全性;提供更細粒度的訪問控制和安全配置選項。


7. 社區支持和更新


syslogd:

  • 社區支持:作為傳統的日志守護進程,社區支持和開發更新較少。

rsyslog:

  • 社區支持:活躍的開源社區,持續的功能更新和改進,廣泛的文檔和用戶支持。


rsyslog 和 syslogd 各有特點:

  • syslogd:適合于簡單的日志記錄需求,小規模系統使用。
  • rsyslog:功能強大,適合處理大規模、高并發的日志需求,支持復雜的日志處理規則和多種傳輸協議,提供高性能和高可靠性。

二、rsyslog基礎知識?

1、rsyslog的安裝與配置基礎

安裝 rsyslog
在大多數 Linux 發行版中,rsyslog 都可以通過包管理器進行安裝。

在 Debian/Ubuntu 系統上:

sudo apt update
sudo apt install rsyslog


在 Red Hat/CentOS 系統上:

sudo yum update
sudo yum install rsyslog


在 Fedora 系統上:

sudo dnf update
sudo dnf install rsyslog


啟動和啟用 rsyslog 服務
安裝完成后,可以通過以下命令啟動和啟用 rsyslog 服務:

sudo systemctl start rsyslog
sudo systemctl enable rsyslog


配置 rsyslog
rsyslog 的主配置文件通常位于 /etc/rsyslog.conf,而具體的配置文件則位于 /etc/rsyslog.d/ 目錄下。配置文件使用一種簡單的規則語言,可以指定日志消息的來源、過濾條件和輸出目標。配置文件示例
以下是一個基本的 rsyslog 配置文件示例:

# 加載輸入模塊
module(load="imuxsock") ?# 本地 Unix socket 輸入
module(load="imklog") ? ?# 內核日志輸入# 日志格式模板
template(name="TraditionalFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%\n")# 日志過濾和輸出
authpriv.* ? ? ? ? ? ? ? ? ? ? ?/var/log/secure
mail.* ? ? ? ? ? ? ? ? ? ? ? ? ?-/var/log/mail
cron.* ? ? ? ? ? ? ? ? ? ? ? ? ?/var/log/cron# 記錄所有日志到 /var/log/messages,排除 mail, authpriv 和 cron 日志
*.info;mail.none;authpriv.none;cron.none ? ? ? ? ? ? ? ?/var/log/messages# 記錄緊急日志到所有用戶終端
*.emerg ? ? ? ? ? ? ? ? ? ? ? ? :omusrmsg:*# 將日志消息轉發到遠程服務器
*.* @192.168.1.100:514


配置詳解

  • 模塊加載:加載必要的輸入模塊,如本地 Unix socket (imuxsock) 和內核日志輸入模塊 (imklog)。
  • 模板:定義日志消息的格式。
  • 日志過濾和輸出:指定不同類型的日志消息的處理規則和輸出目標。
  • 遠程日志轉發:將所有日志消息轉發到遠程服務器(IP 地址:192.168.1.100,端口:514)。

2、rsyslog的組件架構

rsyslog 是一個高度模塊化和可擴展的系統日志處理工具,其組件架構使其能夠靈活地處理、過濾和轉發日志消息。以下是 rsyslog 的主要組件及其架構的詳細介紹:

1. 輸入模塊(Input Modules)
輸入模塊負責接收各種來源的日志消息。常用的輸入模塊包括:

  • imuxsock:從 Unix 域套接字接收本地日志消息。
  • imklog:從內核日志緩沖區接收內核日志消息。
  • imudp:通過 UDP 協議接收日志消息。
  • imtcp:通過 TCP 協議接收日志消息。
  • imfile:從文件中讀取日志消息。


2. 過濾和解析器(Parsers and Filters)
過濾器和解析器用于處理和解析接收到的日志消息,并根據預定義的規則過濾日志。常見的過濾器和解析器包括:

  • RainerScript:rsyslog 的內置腳本語言,用于復雜的日志處理和過濾。
  • Syslog parser:解析標準的 syslog 消息格式。
  • JSON parser:解析 JSON 格式的日志消息。
  • Filter conditions:基于消息內容、來源等條件進行日志過濾。


3. 輸出模塊(Output Modules)
輸出模塊負責將處理后的日志消息轉發到指定的目標位置。常用的輸出模塊包括:

  • omfile:將日志消息寫入文件。
  • omudp:通過 UDP 協議發送日志消息。
  • omtcp:通過 TCP 協議發送日志消息。
  • omelasticsearch:將日志消息發送到 Elasticsearch。
  • ommysql:將日志消息寫入 MySQL 數據庫。
  • omkafka:將日志消息發送到 Kafka 主題。


4. 緩沖與隊列(Buffers and Queues)
為了提高性能和可靠性,rsyslog 支持異步操作和消息隊列。隊列用于緩沖日志消息,避免在高負載或網絡故障時丟失日志。常見的隊列類型包括:

  • 內存隊列:將消息存儲在內存中,適用于低延遲需求的場景。
  • 磁盤隊列:將消息存儲在磁盤上,適用于高可靠性需求的場景。


5. 模板(Templates)

  • 模板用于定義日志消息的輸出格式。用戶可以自定義日志格式,以便與特定的日志收集系統或數據庫兼容。模板支持多種格式化選項和變量。

6. 安全與加密(Security and Encryption)
rsyslog 支持 TLS/SSL 加密,以確保日志消息在傳輸過程中的安全性。相關模塊包括:

  • imtcp + TLS:通過 TLS 加密的 TCP 連接接收日志消息。
  • omfwd + TLS:通過 TLS 加密的 TCP/UDP 連接發送日志消息。

?💕💕💕每一次的分享都是一次成長的旅程,感謝您的陪伴和關注。希望這些關于Linux的文章能陪伴您走過技術的一段旅程,共同見證成長和進步!😺😺😺

🧨🧨🧨讓我們一起在技術的海洋中探索前行,共同書寫美好的未來!!!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23664.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23664.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23664.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

保姆級講解 FTP服務器的搭建、配置與管理

本來目錄很長的 因為感覺不太美觀 所以小標題都刪掉了 本文介紹了 本地用戶的FTP服務器搭建實例匿名用戶的FTP服務器搭建實例虛擬用戶的FTP服務器搭建實例企業常見類型搭建實驗 配置與管理FTP服務器 配置與管理FTP服務器一、FTP相關知識二、項目設計與準備三、項目實施四、認識…

實驗一、網絡傳輸介質————雙絞線 《計算機網絡》

蝙蝠身上長雞毛,忘了自己是什么鳥。 目錄 一、實驗目的 二、實驗內容 1.雙絞線的原理以及分類 2.了解雙絞線的性質、結構與特性 3.掌握雙絞線的制作方法 4.了解雙絞線的材質 5.了解雙絞線的發展趨勢 三、實驗小結 一、實驗目的 1.雙絞線的原理以及分類 2.了…

MyBatisPlus——入門到進階

?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。🍎個人主頁:Meteors.的博客💞當前專欄:知識分享、知識備份?特色專欄: 知識分享…

【GIS教程】土地利用轉移矩陣

隨著科技社會的不斷進步,人類活動對地理環境的影響與塑造日益明顯,土地不斷的侵蝕與改變也導致一系列的環境問題日益突出。土地利用/覆蓋(LUCC)作為全球環境變化研究的重點問題為越來越多的國際研究機構所重視,研究它的…

Day25 首頁待辦事項及備忘錄添加功能

? 本章節,完成首頁待辦事項及備忘錄添加功能 一.修改待辦事項和備忘錄邏輯處理類,即AddMemoViewModel和AddTodoViewModel 在 AddMemoViewModel邏輯處理類中,為了支持與其關聯的View視圖文件的數據綁定,需要定義一個與視圖文件相匹配的實體類 Model。這個Model將包含 View中…

圖像算法---自動對焦AF

一,CDAF反差對焦原理 CDAF,全稱Contrast Detection Auto Focus,即反差式對焦或對比度檢測自動對焦,是一種廣泛應用于入門級數碼相機和相機模塊化智能手機上的自動對焦技術。以下是關于CDAF反差對焦的詳細介紹: 工作原…

測繪航空攝影乙級資質升級為甲級的過渡期規劃

升級測繪航空攝影乙級資質為甲級通常需要一個詳細的過渡期規劃,這個過程涉及提升技術力量、積累業績、完善管理體系等多個方面。以下是一個概括性的過渡期規劃框架,具體實施時需結合實際情況和最新的資質標準進行調整: 1. 了解最新資質標準 …

每日AI資訊-20240606

智普AI推出全新開源大模型GLM-4-9B 智譜AI日前推出全新開源模型GLM-4-9B,該尺寸模型首次具備多模態能力。據了解,GLM-4-9B,最高支持1M/約兩百萬字上下文輸入,相當于2本《紅樓夢》或125篇論文的長度。性能上,GLM-4-9B函…

《手把手教你》系列練習篇之13-python+ selenium自動化測試 -壓軸篇(詳細教程)

1. 簡介 “壓軸”原本是戲曲名詞,指一場折子戲演出的倒數第二個劇目。在現代社會中有很多應用,比如“壓軸戲”,但壓軸也是人們知識的一個盲區。“壓軸”本意是指倒數第二個節目,而不是人們常說的倒數第一個,倒數第一個…

苗情生態自動監測站

TH-MQ1在現代農業發展中,苗情生態自動監測站的應用已經變得日益重要。這種技術不僅為農業生產提供了實時的數據支持,還通過精準監測和科學決策,提高了農業生產的效率和質量。 首先,苗情生態自動監測站的優勢在于其能夠實現精準監…

Java并發編程:線程與并發工具

Java并發編程:線程與并發工具 引言 在現代計算機程序中,并發編程是一個不可避免的主題。無論是提升應用程序性能,還是處理多個任務并發執行,Java為開發者提供了豐富的并發編程工具。在本篇文章中,我們將深入探討Java的并發編程,包括線程的基礎知識、線程池的使用以及常…

全流程透明雙語大語言模型MAP-Neo,4.5T 高質量數據訓練

前言 近年來,大語言模型 (LLM) 已經成為人工智能領域最熱門的研究方向之一,并在各種任務中展現出前所未有的性能。然而,由于商業利益的驅動,許多最具競爭力的模型,例如 GPT、Gemini 和 Claude,其訓練細節和…

讀書筆記-《軟件定義安全》之一:SDN和NFV:下一代網絡的變革

第1章 SDN和NFV:下一代網絡的變革 1.什么是SDN和NFV 1.1 SDN/NFV的體系結構 SDN SDN的體系結構可以分為3層: 基礎設施層由經過資源抽象的網絡設備組成,僅實現網絡轉發等數據平面的功能,不包含或僅包含有限的控制平面的功能。…

Unity Magica Cloth2 使用教程

視頻教程 參考文章 前提: 找到角色的模型 模之屋,我這里準備了轉好FBX格式的吟霖模型點擊自取【源自 模之屋】 角色舞蹈動畫 點擊下載【源自 Mixamo】 導入Unity【如何將原神的角色導入Unity】 三渲二 (必須是2022.3LTS和URP項目) Magica Cloth2 頭…

深入探索Stage #13:CSS層疊樣式表的IE特性偽協議注入

在網絡安全領域,跨站腳本攻擊(XSS)是一種常見的攻擊手段。隨著Web技術的不斷發展,攻擊者也在不斷探索新的攻擊途徑。本文將詳細介紹如何利用IE瀏覽器的特性,通過CSS層疊樣式表進行XSS攻擊。 實驗環境搭建 為了模擬IE…

spring boot 白盒測試實戰

假設項目中存在以下代碼: 常量類:public final static String NUMBER_REGEX "\\d"; service:return ReUtil.getGroup0(Constants.NUMBER_REGEX, waybill); 代碼解析 解釋: return ReUtil.getGroup0(Constants.NUMB…

python學習 - 使用OpenCV庫(cv2)和imutils庫實現輔助答題卡判別

測試數據見文章頂部位置資源!!! 使用了OpenCV庫(cv2)和imutils庫。代碼的主要目的是處理圖像中的問題,如識別圖像中的文字,并對其進行分析和排序。 輔助答題卡判別 # -*- coding:utf-8 -*- fr…

python實現郵箱轟炸機

最近在學計算機網絡看到套接字的練習 于是應用SMTP協議寫了個發送郵箱的玩玩 可以發一大堆垃圾郵件給對方 其中參考了 關于發郵件報錯535 Error:authentication failed解決方法http://t.csdnimg.cn/Bc0Dq 已經查詢如何獲取網易郵箱客戶端授權碼 base64編碼 i…

Mybatis05-一對多和多對一處理

多對一和一對多 多對一 多對一的理解: 多個學生對應一個老師 如果對于學生這邊,就是一個多對一的現象,即從學生這邊關聯一個老師! 結果映射(resultMap): association 一個復雜類型的關聯&…

在線Logo背景去除:pixian.ai

文章目錄 簡介特色 簡介 pixian.ai是一款智能圖片背景去除工具,進入網頁后,會非常醒目地提示你準備【Free】還是【Paid】,這點就非常好,不向有一些網站,主打免費使用,但時不時彈出“免費注冊”&#xff0c…