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

企業級日誌中心搭建實戰:rsyslog + LogAnalyzer 完整部署指南

編輯:Linux 教學

前言

集中化日誌管理是合規審計、故障診斷、安全審計的基礎設施。本文以 CentOS 7/8 為例,詳細記錄 rsyslog (伺服端/客戶端) + MySQL + LogAnalyzer (Web 分析介面) 全棧部署流程。

一、 架構規劃

角色IP核心元件
日誌伺服器 192.168.0.100 nginx + PHP + MySQL + rsyslog + rsyslog-mysql + LogAnalyzer
日誌客戶端 192.168.0.101 rsyslog

二、 伺服器端部署

1. 基礎環境(LNMP)

# 安裝 nginx, PHP, MySQL(MariaDB)
yum install -y nginx php php-fpm php-mysql mariadb-server mariadb
systemctl enable --now nginx php-fpm mariadb
# 資料庫初始化
mysql_secure_installation

2. rsyslog + MySQL 模組安裝

yum install -y rsyslog rsyslog-mysql

3. rsyslog 核心配置 /etc/rsyslog.conf

# 載入模組
module(load="imuxsock")    # 本地 syslog
module(load="imklog")      # 核心日誌
module(load="ommysql")     # MySQL 輸出
module(load="imudp")       # UDP 接收
module(load="imtcp")       # TCP 接收(建議啟用)

# UDP/TCP 接收埠
input(type="imudp" port="514" ruleset="remote")
input(type="imtcp" port="514" ruleset="remote")

# 遠端日誌寫入 MySQL 規則集
ruleset(name="remote") {
    action(type="ommysql" server="localhost" db="Syslog" uid="rsyslog" pwd="StrongPasswd")
    # 同時保留本地檔案(可選)
    action(type="omfile" file="/var/log/remote-hosts.log")
}

# 本地日誌亦可寫入 MySQL(視需求)
*.* action(type="ommysql" server="localhost" db="Syslog" uid="rsyslog" pwd="StrongPasswd")

4. 建立 MySQL 資料庫與帳號

mysql -u root -p <

5. 服務啟動與開機自啟

systemctl stop rsyslog
systemctl disable --now syslog  # 停用舊 syslog
systemctl enable --now rsyslog

6. LogAnalyzer 部署

# 下載解壓
wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gz
tar xzf loganalyzer-*.tar.gz
mkdir -p /var/www/html/loganalyzer
cp -r loganalyzer-*/src/* /var/www/html/loganalyzer/

# 建立配置檔並授權
touch /var/www/html/loganalyzer/config.php
chown nginx:nginx /var/www/html/loganalyzer/config.php
chmod 666 /var/www/html/loganalyzer/config.php

# nginx 虛擬主機配置(略),指向 /var/www/html/loganalyzer
systemctl reload nginx

7. Web 安裝向導

  1. 瀏覽 https://192.168.0.100/loganalyzer/
  2. 步驟 1:語言選擇 → 下一步
  3. 步驟 2:資料庫設定
    • 資料庫類型:MySQL
    • 主機:localhost
    • 資料庫:Syslog
    • 用戶/密碼:rsyslog / StrongPasswd
    • 資料表名:SystemEvents(區分大小寫)
  4. 步驟 3:建立管理員帳號
  5. 完成,登入儀表板。

三、 客戶端部署

# 安裝 rsyslog
yum install -y rsyslog

# 配置轉發至伺服器 /etc/rsyslog.conf
*.* @192.168.0.100:514   # UDP
# *.* @@192.168.0.100:514  # TCP(更可靠)

# 重啟服務
systemctl enable --now rsyslog

四、 進階優化與運維

  • TLS 加密傳輸:啟用 gtls 模組,雙向憑證驗證,防竄改竊聽。
  • RELP 協議:module(load="imrelp") 提供可靠傳輸、緩衝、壓縮。
  • 日誌保留策略:MySQL 分區表 + 定期歸檔/刪除;LogAnalyzer 設定自動清理。
  • 高可用:雙主 rsyslog + Keepalived VIP,客戶端配置雙目標 @vip:514。
  • 效能調校:queue.type="LinkedList" queue.size="100000" queue.dequeuebatchsize="4000" 緩衝突發流量。

五、 常見問題排查

現象排查方向
客戶端日誌未出現在 Web 1. tcpdump -i eth0 port 514 確認封包到達
2. tail -f /var/log/messages | grep rsyslog 看伺服端錯誤
3. MySQL show processlist 檢查寫入阻塞
LogAnalyzer 顯示亂碼 資料庫/表/連線字元集統一 utf8mb4;PHP mysqli_set_charset
UDP 丟包嚴重 改用 TCP/RELP;調大 net.core.rmem_max、net.core.wmem_max

結語

rsyslog + LogAnalyzer 以輕量元件構建企業級日誌中心,核心在於模組化配置、資料庫效能與傳輸可靠性。生產環境建議導入 RELP/TLS、分區表策略,並納入監控告警體系。

Copyright © Windows教程網 All Rights Reserved