Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 系統日誌管理完整架構與實戰配置指南

編輯:Linux 系統常見問題解答

日誌是系統稽核、入侵偵測、故障診斷的核心依據。本文系統說明 Linux 日誌檔案分佈、核心日誌類型與等級、rsyslog 服務配置、自訂 SSH 日誌、logrotate 日誌輪轉與遠端日誌伺服器部署。

一、日誌檔案標準儲存位置

/var/log/

二、常見關鍵日誌檔案用途

檔案記錄內容
btmp失敗登入嘗試
lastlog各使用者最近一次成功/失敗登入
messages系統核心訊息 (syslog 連結或獨立)
secure認證授權相關 (登入、sudo、SSH)
utmp目前登入使用者狀態
wtmp歷史登入/登出記錄
cron排程任務執行記錄
maillog郵件系統記錄
boot.log開機過程訊息

三、登入資訊查看指令

last        # 顯示 wtmp 內容:誰、何時、從何處登入
lastb       # 顯示 btmp 內容:失敗登入嘗試 (暴力破解偵測)
lastlog     # 顯示所有帳號最近登入時間

差異:last 可見來源 IP;lastlog 適合偵測異常帳號 (如長期未登入帳號突然活動)。

四、Syslog 設施與優先級標準

設施

代碼來源
kern核心
daemon背景服務
authpriv認證授權
cron排程任務
mail郵件系統
syslog日誌服務本身
lpr列印系統
news新聞系統
local0-local7保留給應用程式自訂

優先級 (由低到高)

debug < info < notice < warn < err < crit < alert < emerg

五、rsyslog 服務配置 (RHEL 6/7/8、CentOS 6/7/8)

配置檔:/etc/rsyslog.conf

# 核心規則範例
*.info;mail.none;authpriv.none;cron.none    /var/log/messages
authpriv.*                                  /var/log/secure
mail.*                                      -/var/log/maillog
cron.*                                      /var/log/cron
local7.*                                    /var/log/boot.log

語法規則:

  • 設施.優先級:記錄 ≥ 指定優先級的訊息
  • 設施.=優先級:僅記錄 指定優先級
  • 設施.!優先級:記錄 除 指定優先級外的所有
  • none:排除該設施 (如 mail.none)
  • - 前綴:非同步寫入 (先存記憶體達閾值再寫碟,減少 I/O,但異常關機可能丟失)

六、自訂 SSH 服務日誌

# 1. rsyslog.conf 新增
local0.*    /var/log/sshd.log

# 2. sshd_config 設定日誌設施
SyslogFacility LOCAL0
LogLevel VERBOSE

# 3. 重啟服務生效
systemctl restart rsyslog
systemctl restart sshd

七、logrotate 日誌輪轉機制

配置檔:/etc/logrotate.conf 與 /etc/logrotate.d/ 目錄下個別服務配置。

# 核心參數範例
/var/log/sshd.log {
    missingok           # 檔案不存在不報錯
    monthly             # 每月輪轉
    create 0600 root root
    minsize 1M          # 檔案 ≥ 1MB 才輪轉
    rotate 1            # 保留 1 個舊檔
    dateext             # 舊檔命名加日期後綴
    # compress          # 可選:壓縮舊檔
}

原理:達條件時將舊日誌改名備份、建立新同名檔案繼續記錄,避免單一檔案過大導致查詢困難與磁碟耗盡。

八、遠端日誌伺服器部署 (集中化管理)

Server 端 (接收日誌)

# /etc/rsyslog.conf
$ModLoad imtcp          # 載入 TCP 模組
$InputTCPServerRun 514  # 監聽 TCP 514

systemctl restart rsyslog
netstat -anltp | grep 514  # 驗證監聽

Client 端 (發送日誌)

# /etc/rsyslog.conf
*.* @@192.168.75.129:514   # @@ 表示 TCP,單 @ 為 UDP

systemctl restart rsyslog

建議:生產環境務必使用 TCP (雙 @) 確保日誌傳輸可靠性;UDP 速度快但可能丟包。

Copyright © Windows教程網 All Rights Reserved