如何在 Linux 上設定 Rsyslog 遠端日誌
每個 Linux 發行版都帶有一些日誌系統來記錄系統活動。這在系統故障排除期間可能很有幫助。Rsyslog 是一個開源的,並且在系統日誌處理速度方面非常快。它適用於多個主要的 Linux 發行版,包括基於 Debian 和 Red Hat 的系統。與 SYSLOG 協議相比,它具有若干額外功能,例如用於傳輸的 TCP 的基於內容的過濾,並提供大量的配置選項。本文介紹瞭如何分步設定 Rsyslog 遠端日誌。
安裝
如果您的 Linux 系統上未安裝 Rsyslog,請使用以下命令安裝:
$ sudo apt-get install rsyslog rsyslog-doc
輸出應如下所示:
Reading package lists... Done Building dependency tree Reading state information... Done rsyslog is already the newest version. The following NEW packages will be installed: rsyslog-doc 0 upgraded, 1 newly installed, 0 to remove and 265 not upgraded. Need to get 931 kB of archives. After this operation, 1,828 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://in.archive.ubuntu.com/ubuntu/ trusty-updates/main rsyslog-doc all 7.4.4-1ubuntu2.6 [931 kB] Fetched 931 kB in 1s (508 kB/s) Selecting previously unselected package rsyslog-doc. (Reading database ... 165966 files and directories currently installed.) Preparing to unpack .../rsyslog-doc_7.4.4-1ubuntu2.6_all.deb ... Unpacking rsyslog-doc (7.4.4-1ubuntu2.6) ... Processing triggers for doc-base (0.10.5) ... Processing 32 changed doc-base files, 1 added doc-base file... Setting up rsyslog-doc (7.4.4-1ubuntu2.6) ...
Rsyslog 配置儲存在 /etc/ryslog.conf 檔案中,檔案位於 /etc/rsyslog.d/ 目錄下。
配置結構
Rsyslog 配置檔案結構如下:
- 模組
- 配置指令
- 規則行
模組
Rsyslog 具有模組化架構。它將以動態方式啟用功能。模組分類如下:
- 輸入模組 – 用於從各種來源收集訊息。
- 輸出模組 – 用於將訊息寫入各種位置(檔案、套接字等)。
- 解析器模組 – 用於解析訊息內容。
配置指令
配置指令是 Rsyslog 的配置說明。這些指令應每行只指定一個,並以美元符號 ($) 開頭。
規則行
每條規則行包含兩個欄位,它們被劃分為選擇器欄位和動作欄位。選擇器欄位又分為兩個欄位,應如下所示:
- 設施
- 優先順序
一個示例配置
MODULES $ModLoad imuxsock $ModLoad imklog Directives # Set the default permissions for all log files. $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 RULES mail.info/var/log/mail.info mail.warn/var/log/mail.warn mail.err/var/log/mail.err daemon.*/var/log/daemon.log
模板
這是 Rsyslog 最重要的功能之一,它允許使用者以所需的格式記錄訊息。它還可以用於建立動態檔名來記錄訊息。
檢查 Rsyslog 配置
在檢查 Rsyslog 配置之前,請確保已重新啟動 Rsyslog,以便您的更改立即生效。要重新啟動 Rsyslog,請使用以下命令:
$ sudo service rsyslog restart
確保 Rsyslog 正在執行。如果此命令沒有返回任何內容,則可以假設它根本沒有執行。使用以下命令檢查程序是否正在執行:
$ ps -A | grep rsyslog
示例輸出應如下所示:
6738 ? 00:00:00 rsyslogd
檢查 Rsyslog 配置,使用以下命令:
$ rsyslogd -N1
示例輸出應如下所示:
rsyslogd: version 7.4.4, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
檢查 Linux 系統日誌中是否存在任何 Rsyslog 錯誤。如果存在錯誤,您可以在 /var/log/messages 中找到它們。某些日誌也可能儲存在 /var/log/syslog 中。
$ sudo cat /var/log/messages | grep rsyslog
傳送示例資料
透過建立測試事件來驗證 Rsyslog 是否正在將資料傳送到記錄器。要傳送資料,請使用以下命令:
$ logger Tutorialspoint
檢查 Linux 系統日誌以檢視 Rsyslog 是否已記錄測試事件,要驗證它,請使用以下命令:
$ sudo cat /var/log/syslog | grep Tutorialspoint
示例輸出應如下所示:
Feb 4 11:25:54 linux tp: Tutorialspoint Feb 4 11:32:25 linux tp: Tutorialspoint
恭喜!現在,您瞭解瞭如何在 Linux 上“設定 Rsyslog 遠端日誌”。我們將在下一篇 Linux 文章中進一步學習這些型別的命令。繼續關注!
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP