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 教學

架構概覽

  • rsyslog:高效能 syslog 守護進程,支援模組化輸出(MySQL、Elasticsearch、Kafka 等)。
  • LogAnalyzer:PHP Web 前端,解析資料庫日誌,提供儀表板、過濾、圖表、告警。
  • MySQL:日誌存儲後端。
  • Apache + PHP:Web 運行環境。

一鍵部署腳本(CentOS 6/7 適用,已修正語法與路徑)

#!/bin/bash
# rsyslog_loganalyzer_install.sh
# 執行前請確保:root 權限、網路通暢、關閉防火牆或開放 80/514/3306

set -euo pipefail

MYSQL_ROOT_PWD="StrongRootPwd123!"
RSYSLOG_DB_USER="rsyslog"
RSYSLOG_DB_PWD="RsyslogPwd456!"
LOGANLZR_DIR="/var/www/html/loganalyzer"

# 1. 安裝基礎套件
yum -y install epel-release
yum -y install mysql-server mysql-devel rsyslog rsyslog-mysql \
    httpd php php-mysql php-gd php-common php-pdo \
    gcc gcc-c++ make automake libtool zlib-devel

# 2. 啟動並安全初始化 MySQL
systemctl enable --now mysqld
mysqladmin -u root password "$MYSQL_ROOT_PWD"

# 3. 建立資料庫與表
mysql -uroot -p"$MYSQL_ROOT_PWD" < /etc/rsyslog.d/mysql.conf </dev/null || true
systemctl enable --now rsyslog

# 6. 部署 LogAnalyzer
cd /tmp
wget -q https://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gz
tar xzf loganalyzer-4.1.12.tar.gz
mkdir -p "$LOGANLZR_DIR"
cp -r loganalyzer-4.1.12/src/* "$LOGANLZR_DIR"
cp -r loganalyzer-4.1.12/contrib/* "$LOGANLZR_DIR"
chown -R apache:apache "$LOGANLZR_DIR"
chmod -R 755 "$LOGANLZR_DIR"

# 7. 執行 Web 安裝向導(自動化部分需手動完成或用 Selenium)
systemctl enable --now httpd
echo "請瀏覽 https:///loganalyzer 完成 Web 安裝向導"
echo "資料庫設定:localhost / Syslog / $RSYSLOG_DB_USER / $RSYSLOG_DB_PWD"
read -p "Web 安裝完成後按 Enter 繼續..."

# 8. 降低資料庫權限(僅保留運行必需)
mysql -uroot -p"$MYSQL_ROOT_PWD" </loganalyzer 登入查看日誌。"

客戶端配置(發送日誌至中央伺服器)

# /etc/rsyslog.d/remote.conf
*.* @192.168.1.100:514   # UDP
# *.* @@192.168.1.100:514  # TCP(更可靠)
# 載入 imuxsock、imklog 等模組通常預設已啟用
systemctl restart rsyslog

常見問題與優化

生產環境建議升級

  • 資料庫改用 ClickHouse / Elasticsearch 提升查詢效能與壓縮比。
  • 前端遷移至 Grafana Loki / Kibana / Graylog。
  • 傳輸層強制 TLS(gtls 模組)保障日誌機密性。
  • 採用 systemd-journald + rsyslog imjournal 統一收集容器/系統日誌。

總結

本腳本實現了 rsyslog + MySQL + LogAnalyzer 的全自動化部署,適合中小規模環境快速建立可視化中央日誌平台。大規模生產建議採用 ELK/EFK/Loki 等現代可觀測性棧。

Copyright © Windows教程網 All Rights Reserved
問題解決方案
終端不斷彈出日誌訊息在 /etc/rsyslog.conf 註釋 *.emerg *,重啟 rsyslog
大量日誌寫入 MySQL 慢啟用 ommysql 批次插入:\$ActionQueueType LinkedList \$ActionQueueFileName rsyslog_queue \$ActionResumeRetryCount -1 \$ActionQueueSaveOnShutdown on
LogAnalyzer 顯示亂碼確保資料庫、表、連接均為 utf8mb4;PHP htmlentities 指定 UTF-8
日誌保留策略配合 partition 表或定期 DELETE / TRUNCATE 舊分區