首頁 > 軟體

適用於Linux的開源紀錄檔記錄工具

2020-06-16 16:44:04

如果您是Linux系統管理員,那麼您將要使用的第一個工具是紀錄檔檔案。 這些檔案包含重要資訊,可以幫助您解決影響桌面和伺服器的問題。 對於許多系統管理員(特別是那些舊式的系統管理員),沒有什麼比檢查紀錄檔檔案更好的命令列。 但對於那些寧願採用更有效(也可能是現代)方法進行故障排除的人來說,有很多選擇。

在本文中,我將重點介紹Linux平台可用的一些此類工具。 我不會涉及可能特定於某個服務(例如Kubernetes或Apache)的紀錄檔記錄工具,而是將重點放在可以挖掘寫入/var/log的所有魔法資訊深度的工具上。

說到哪......

什麼是/var/log?

如果您是Linux新手,可能不知道/var/log目錄包含什麼。 但是,這個名字非常有說服力。 在該目錄中包含來自系統的所有紀錄檔檔案以及安裝在作業系統上的任何主要服務(例如Apache,MySQL,MariaDB等)。 開啟終端視窗並行出命令cd /var/log。 按照命令ls進行操作,您將看到所有可以檢視紀錄檔檔案的系統(圖1)。

在/var/log/

圖1:我們的ls命令顯示/var/log/中可用的紀錄檔。

例如,假設您要檢視syslog紀錄檔檔案。 發出命令less syslog,您可以捲動瀏覽該特定紀錄檔的所有血腥細節。 但是如果標準終端不適合你呢? 你有什麼選擇? 我們來看看幾個這樣的選擇。

紀錄檔工具Logs

如果您使用GNOME桌面(或其他,因為Logs可以安裝在不僅僅是GNOME上),您可以輕鬆獲得紀錄檔檢視器,主要只是在紀錄檔檔案上新增一點點GUI優點,建立一些簡單的內容 它很有效。 一旦安裝(從標準儲存庫),從桌面選單開啟紀錄檔,您將被視為一個介面(圖2),允許您從各種型別的紀錄檔(重要,所有,系統,安全和硬體)中進行選擇 ),以及選擇啟動週期(從頂部中心下拉選單),甚至搜尋所有可用的紀錄檔。

記錄工具

圖2:GNOME Logs工具是您可以在Linux中找到的最簡單的GUI紀錄檔檢視器之一。

Logs是一個很好的工具,特別是如果你不是在尋找太多的花裡胡哨,妨礙你檢視關鍵的紀錄檔條目,這樣你就可以排除系統故障。

KSystemLog

KSystemLog是KDE對GNOME的紀錄檔,但還有一些功能可以新增到組合中。雖然兩者都使得檢視系統紀錄檔檔案非常簡單,但只有KSystemLog包括彩色紀錄檔行,索引標籤式檢視,將紀錄檔行複製到桌面剪貼簿,內建功能,可以直接向系統傳送紀錄檔訊息,讀取每個紀錄檔的詳細資訊線,等等。 KSystemLog檢視在GNOME紀錄檔中找到的所有相同紀錄檔,只有不同的布局。

在主視窗(圖3)中,您可以檢視任何不同的紀錄檔(來自系統紀錄檔,身份驗證紀錄檔,X.org紀錄檔,紀錄檔紀錄檔),搜尋紀錄檔,按日期過濾,主機,進程,訊息,然後選擇記錄優先順序。

KSystemLog

圖3:KSystemLog主視窗。

使用KSystemLog建立手動紀錄檔條目。

如果單擊“視窗”選單,則可以開啟一個新索引標籤,您可以在其中選擇要檢視的其他紀錄檔/過濾器組合。從同一選單中,您甚至可以複製當前索引標籤。如果要手動將紀錄檔新增到檔案,請執行以下操作:

1.開啟KSystemLog。

2.單擊檔案>新增紀錄檔條目。

3.建立紀錄檔條目。

4.單擊“OK”

KSystemLog使在KDE中檢視紀錄檔成為一項非常容易的任務。

Logwatch

Logwatch不是一個奇特的GUI工具。相反,logwatch允許您設定一個紀錄檔系統,通過電子郵件向您傳送重要警報。您可以通過SMTP伺服器通過電子郵件傳送這些警報,也可以在本地計算機上檢視它們。幾乎每個發行版都可以在標準儲存庫中找到Logwatch,因此可以使用單個命令完成安裝,如下所示:

sudo apt-get install logwatch

要麼:

sudo dnf install logwatch

在安裝過程中,您需要選擇警報的交付方式(圖5)。如果您選擇僅使用本地郵件傳遞,則需要安裝mailutils應用程式(這樣您就可以通過mail命令在本地檢視郵件)。

Logwatch

圖5:設定Logwatch警報傳送方法。

所有Logwatch設定都在一個檔案中處理。要編輯該檔案,請發出命令sudo nano /usr/share/logwatch/default.conf/logwatch.conf。您將要編輯MailTo = option。如果您在本地檢視,請將其設定為您希望紀錄檔傳送到的Linux使用者名稱(例如MailTo = linuxidc)。如果要將這些紀錄檔傳送到外部電子郵件地址,則還需要將MailFrom = option更改為合法的電子郵件地址。在同一組態檔中,您還可以設定詳細級別和要傳送的紀錄檔範圍。儲存並關閉該檔案。

設定完成後,您可以使用以下命令傳送第一封郵件:

logwatch --detail Med --mailto ADDRESS --service all --range today
Where ADDRESS is either the local user or an email address.

有關使用Logwatch的更多資訊,請發出命令man logwatch。閱讀手冊頁以檢視可與該工具一起使用的不同選項。

Rsyslog

Rsyslog是將遠端用戶端紀錄檔傳送到集中式伺服器的便捷方式。 假設您有一台Linux伺服器要用於從資料中心的其他Linux伺服器收集紀錄檔。 使用Rsyslog,這很容易完成。 必須在所有用戶端和集中式伺服器上安裝Rsyslog(通過發出sudo apt-get install rsyslog之類的命令)。

安裝後,在集中式伺服器上建立/etc/rsyslog.d/server.conf檔案,其中包含以下內容:

# Provide UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provide TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

# Use custom filenaming scheme
$template FILENAME,"/var/log/remote/%HOSTNAME%.log"
*.* ?FILENAME

$PreserveFQDN on

儲存並關閉該檔案。 現在,在每台客戶機上,使用以下內容建立檔案/etc/rsyslog.d/client.conf:

$PreserveFQDN on
$ActionQueueType LinkedList
$ActionQueueFileName srvrfwd
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
*.* @@SERVER_IP:514

SERVER_IP是中央伺服器的IP地址。 儲存並關閉該檔案。 使用以下命令在所有計算機上重新啟動rsyslog:

sudo systemctl restart rsyslog

您現在可以使用命令檢視集中式紀錄檔檔案(在集中式伺服器上執行):

tail -f /var/log/remote/*.log

tail命令允許您實時檢視這些檔案。 您應該看到包含用戶端主機名的紀錄檔條目(圖6)。

Rsyslog

圖6:顯示已連線用戶端條目的Rsyslog。

Rsyslog是一個很棒的工具,用於建立單個入口點以檢視所有Linux伺服器的紀錄檔。

總結

本文僅涉及在Linux平台上找到的紀錄檔工具的表面。 並且上述每個工具都能夠勝過此處概述的內容。 但是,此概述應該為您提供一個開始漫長一天的Linux紀錄檔檔案之旅的地方。


IT145.com E-mail:sddin#qq.com