Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Syslog 集中式日誌伺服器建置與進階應用實戰

編輯:Linux 教學

Syslog 作為 UNIX/Linux 歷史最悠久的日誌標準,至今仍是基礎設施日誌收集的主流選擇。本文詳細說明 rsyslog (現代主流實作) 集中式日誌伺服器部署、多租戶日誌分離、加密傳輸、結構化日誌 (JSON)、異常偵測整合等進階應用,並對比 syslog-ng、Fluentd、Vector 等新世代工具。

一、基礎架構:Client → Server (TCP/TLS) → 儲存/分析


+----------------+      TCP 514 / TLS 6514      +------------------+      本地檔案/Elasticsearch/Splunk
|  Linux/Network |  ──────────────────────────► |  rsyslog Server  |  ──────────────────────────────────►
|  Devices       |                              |  (Central Log)   |
+----------------+                              +------------------+

二、Server 端配置 /etc/rsyslog.conf


# 模組載入
module(load="imuxsock")   # 本地 Unix socket
module(load="imklog")     # 核心日誌
module(load="imtcp")      # TCP 接收
module(load="imudp")      # UDP 接收 (可選)
module(load="imptcp")     # Plain TCP (效能較佳)

# 全域設定
global(
    workDirectory="/var/spool/rsyslog"
    maxMessageSize="64k"
    parser.ParseTrustedAuth="on"
)

# 模板:依主機/程式/日期分目錄儲存
template(name="DynFile" type="string"
    string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")

# 模板:JSON 結構化 (供 Logstash/Beats 直接讀取)
template(name="JSON" type="list") {
    property(name="timestamp" dateFormat="rfc3339")
    property(name="hostname")
    property(name="syslogtag")
    property(name="msg" format="json")
    constant(value="\n")
}

# TLS 憑證 (建議生產環境啟用)
global(
    DefaultNetstreamDriver="gtls"
    DefaultNetstreamDriverCAFile="/etc/rsyslog/ca.pem"
    DefaultNetstreamDriverCertFile="/etc/rsyslog/server-cert.pem"
    DefaultNetstreamDriverKeyFile="/etc/rsyslog/server-key.pem"
)

# TCP/TLS 監聽
input(type="imtcp" port="514" ruleset="RemoteLogs")
input(type="imtcp" port="6514" ruleset="RemoteLogsTLS"
    streamDriver="gtls" streamDriverMode="1" streamDriverAuthMode="x509/name")

# 規則集:遠端日誌寫入動態檔案
ruleset(name="RemoteLogs") {
    action(type="omfile" dynaFile="DynFile" asyncWriting="on" queue.size="10000")
    # 同時轉發至 Elasticsearch (omelasticsearch 模組)
    # action(type="omelasticsearch" server="es1" serverport="9200" template="JSON" ...)
}

ruleset(name="RemoteLogsTLS") {
    action(type="omfile" dynaFile="DynFile" asyncWriting="on")
}

# 本地日誌規則保持預設
include(file="/etc/rsyslog.d/*.conf")

三、Client 端配置 /etc/rsyslog.d/90-remote.conf


# 非加密 TCP (內網可信環境)
*.* @@logserver.example.com:514
# 或 TLS 加密 (跨網段/公網)
*.* @@(o)logserver.example.com:6514

# 動作佇列:網路中斷時本地緩衝
$ActionQueueType LinkedList
$ActionQueueFileName fwdRule1
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
$ActionQueueMaxDiskSpace 1g

四、多租戶/多環境日誌隔離策略

策略實作方式適用場景
依 $HOSTNAME 分目錄模板 %HOSTNAME%主機數較少、單一團隊
依 $INPUTNAME/$FROMHOST-IP 分檔規則集 if $fromhost-ip == '10.1.0.0/16' then ...多 VPC/資料中心
依 syslogtag (programname) 分檔模板 %PROGRAMNAME%微服務架構、容器化
標籤式路由 (RFC 5424 structured-data)msg contains "@tenant_id=" → dynaFileSaaS 多租戶強隔離

五、logrotate 自動輪轉與保留策略


# /etc/logrotate.d/rsyslog-remote
/var/log/remote/*/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 0640 syslog adm
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

六、進階應用:異常偵測與告警整合

  1. rsyslog + mmnormalize 正規化:將非結構化訊息解析為 JSON 欄位,便於下游分析。
  2. rsyslog → Kafka/Redis Streams:action(type="omkafka" topic="logs" ...) 實現高吞吐緩衝。
  3. 整合 Fail2ban/CrowdSec:日誌即時觸發封鎖惡意 IP。
  4. Grafana Loki / Elasticsearch / ClickHouse:作為後端儲存與查詢引擎。

七、工具對比與選型建議

工具定位優點缺點建議場景
rsyslog傳統 Syslog 守護進程增強版標準相容、效能高、模組豐富、已預裝多數發布版配置語法較舊、複雜路由需 Rainerscript集中式收集、網路設備、舊系統整合
syslog-ng新世代 Syslog 守護進程配置更直觀、內建 GeoIP、Python 腳本、Disk Buffer部分企業版功能收費複雜路由、多租戶、需 Python 擴展
Fluentd/Fluent Bit統一日誌收集層 (CNCF)插件生態極豐富、Kubernetes 原生、結構化處理強Java/Ruby 執行期資源較大容器/雲原生、異構日誌源整合
Vector高效能可觀測性管道 (Rust)零拷貝、記憶體安全、單二進位、配置簡單生態相對較新高吞吐、邊緣計算、替代 Fluent Bit

八、安全加固清單

  • 強制 TLS 加密傳輸 (gtls 驅動)
  • Server 端驗證 Client 憑證 (streamDriverAuthMode="x509/name")
  • 限制來源 IP (防火牆/TCP Wrapper/allow from 規則)
  • 日誌目錄權限 0640、擁有者 syslog:adm
  • 啟用 imark 間隔心跳 (預設 20 分鐘) 偵測傳輸中斷

建立可靠、可擴展、可審計的集中式日誌平台,是資安合規、故障診斷、業務分析的基石。以 rsyslog 為核心,配合結構化解析、緩衝佇列、加密傳輸與現代儲存後端,即可構建企業級日誌中樞。

Copyright © Windows教程網 All Rights Reserved