如何在 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 文章中進一步學習這些型別的命令。繼續關注!

更新於: 2020-01-23

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.