版本: Graylog 7.0 | 平台: Ubuntu 22.04 / 24.04 LTS
架構模型: Core Deployment(單節點,適合小型/測試環境)
官方文件: https://go2docs.graylog.org/current/downloading_and_installing_graylog/ubuntu_installation.htm
一、推薦硬體規格
Core Deployment(單節點 — Graylog + MongoDB + Data Node)
Graylog 官方建議依照每日日誌量與保留天數估算,以下為一般小型生產環境建議值:
| 元件 | 最低規格 | 建議規格 |
|---|---|---|
| CPU | 4 核心 | 8 核心以上 |
| RAM | 16 GB | 32 GB 以上 |
| 系統磁碟 | SSD 50 GB | SSD 100 GB |
| 資料磁碟(Data Node) | SSD,依保留量決定 | SSD(高 IOPS) |
| 網路 | 1 Gbps | 1 Gbps 以上 |
| 作業系統 | Ubuntu 22.04 / 24.04 LTS | Ubuntu 24.04 LTS |
儲存容量計算公式
所需儲存空間 = 每日日誌量 × 保留天數 × 1.2(緩衝 20%)
範例: 每日 10 GB,保留 30 天 → 10 × 30 × 1.2 = 360 GB
記憶體配置原則
| 服務 | Heap 建議值 |
|---|---|
| Graylog Server | RAM / 2,最大 16 GB |
| Data Node(OpenSearch) | RAM / 2,最大 31 GB |
⚠️ 推薦使用 XFS 檔案系統作為資料儲存分區。訊息 Journal 建議置於高速 SSD。
二、網路連接埠需求
安裝前請確認以下連接埠已開放:
| 目標服務 | 連接埠 | 來源 | 用途 |
|---|---|---|---|
| Graylog | TCP/9000 | 瀏覽器 | Web UI / API |
| OpenSearch | TCP/9200 | Graylog | 日誌查詢 |
| MongoDB | TCP/27017 | Graylog | Metadata 儲存 |
| Data Node | TCP/9300 | Graylog | 日誌索引儲存 |
| Sidecar | TCP/5044 | 日誌收集器 | 日誌傳送 |
三、安裝步驟
Step 0:設定系統時區
sudo timedatectl set-timezone UTC
建議統一使用 UTC,避免時區問題導致日誌時間不一致。
Step 1:安裝 MongoDB 8.0
MongoDB 作為 Graylog 的 Metadata 資料庫。
1-1 安裝相依套件
sudo apt-get install -y gnupg curl
1-2 匯入 MongoDB 官方 GPG 金鑰
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
1-3 新增 MongoDB 官方 APT 來源
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] \
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
1-4 更新套件清單並安裝 MongoDB
sudo apt-get update
sudo apt-get install -y mongodb-org
1-5 鎖定 MongoDB 版本(防止自動升級)
sudo apt-mark hold mongodb-org
1-6 修改 MongoDB 設定檔(調整監聽介面)
sudo nano /etc/mongod.conf
修改 net 區段,選擇以下其中一種設定:
監聽所有介面(測試/內部環境):
net:
port: 27017
bindIpAll: true
綁定特定 IP(建議生產環境):
net:
port: 27017
bindIp: 192.168.50.71 # 替換為實際 IP
綁定主機名稱:
net:
port: 27017
bindIp: graylog01 # 替換為實際主機名稱
1-7 啟動 MongoDB 服務
sudo systemctl daemon-reload
sudo systemctl enable mongod.service
sudo systemctl start mongod.service
驗證 MongoDB 運行狀態
sudo systemctl status mongod
Step 2:安裝 Graylog Data Node
Data Node 負責日誌的接收、處理與索引,內建 OpenSearch 作為搜尋後端。
⚠️ 請勿單獨安裝 OpenSearch! 請使用官方 Data Node,已整合最佳化設定。
2-1 新增 Graylog 官方 Repository 並安裝 Data Node
wget https://packages.graylog2.org/repo/packages/graylog-7.0-repository_latest.deb
sudo dpkg -i graylog-7.0-repository_latest.deb
sudo apt-get update
sudo apt-get install -y graylog-datanode
2-2 設定 vm.max_map_count(OpenSearch 必要參數)
先檢查目前值:
cat /proc/sys/vm/max_map_count
若低於 262144,執行以下指令調整:
echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.d/99-graylog-datanode.conf
sudo sysctl --system
cat /proc/sys/vm/max_map_count # 確認已生效
2-3 產生 password_secret
此為系統加密金鑰,Graylog Server 與 Data Node 必須使用相同的值。
openssl rand -hex 32
📝 請將輸出的字串複製保存,後續步驟會再次用到。
2-4 編輯 Data Node 設定檔
sudo nano /etc/graylog/datanode/datanode.conf
加入以下設定(根據實際環境調整):
# 加密金鑰(與 Graylog Server 必須相同)
password_secret = <上一步產生的隨機字串>
# MongoDB 連線字串(替換主機名稱或 IP)
mongodb_uri = mongodb://127.0.0.1:27017/graylog
# Heap 大小:設為系統 RAM 的一半,最大 31 GB
# 範例:16 GB RAM → 設定 8g
opensearch_heap = 8g
⚠️
opensearch_heap預設不存在,需手動加入!
2-5 啟動 Data Node 服務
sudo systemctl daemon-reload
sudo systemctl enable graylog-datanode.service
sudo systemctl start graylog-datanode
驗證 Data Node 運行狀態
sudo systemctl status graylog-datanode
Step 3:安裝 Graylog Server
3-1 安裝 Graylog 套件
Graylog Open(免費版):
sudo apt-get install -y graylog-server
Graylog Enterprise / Security(商業版):
sudo apt-get install -y graylog-enterprise
3-2 產生 root_password_sha2(管理員密碼雜湊值)
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
輸入你要設定的管理員密碼,將輸出的 SHA256 雜湊值複製保存。
3-3 編輯 Graylog Server 設定檔
sudo nano /etc/graylog/server/server.conf
修改以下重要參數:
# 加密金鑰(與 Data Node 相同)
password_secret = <Step 2-3 產生的字串>
# 管理員密碼 SHA256 雜湊值
root_password_sha2 = <Step 3-2 產生的雜湊值>
# Web UI / API 監聽位址(0.0.0.0 表示所有介面)
http_bind_address = 0.0.0.0:9000
# 訊息 Journal 設定(依實際日誌量調整)
# 建議設為 72 小時,大小為 72 小時預期日誌量
message_journal_max_age = 72h
message_journal_max_size = 90gb # 範例:每日 30 GB × 3 天
3-4 調整 JVM Heap 設定
sudo nano /etc/default/graylog-server
修改 GRAYLOG_SERVER_JAVA_OPTS,設為系統 RAM 一半(最大 16 GB):
# 範例:系統 RAM 16 GB → Heap 設定 8g
GRAYLOG_SERVER_JAVA_OPTS="-Xms8g -Xmx8g -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow"
✅ 建議
-Xms和-Xmx設定為相同值,避免 Heap 動態調整的效能損耗。
3-5 啟動 Graylog Server 服務
sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
驗證 Graylog Server 運行狀態
sudo systemctl status graylog-server
四、首次登入(Preflight)
重要警告
⚠️ 第一次登入不可使用你設定的管理員密碼!
必須先從日誌中取得初始登入憑證完成 Preflight 設定後,才能使用一般管理員帳號。
取得 Preflight 初始登入憑證
sudo grep -i "preflight" /var/log/graylog-server/server.log | tail -20
存取 Web UI
開啟瀏覽器,前往:
http://<伺服器 IP 或主機名稱>:9000
使用從日誌取得的 Preflight 憑證完成初始設定,之後才可使用你在 root_password_sha2 設定的密碼登入。
五、服務狀態確認
安裝完成後,統一確認所有服務狀態:
sudo systemctl status mongod
sudo systemctl status graylog-datanode
sudo systemctl status graylog-server
三個服務均應顯示 active (running)。
六、疑難排解
問題:MongoDB 安裝後網路連線失敗
可能原因:DNS 設定或 TCP/27017 連接埠未開放。
測試連通性:
nc -vz <MongoDB 節點 IP> 27017
若無法連線,檢查防火牆設定:
sudo ufw allow 27017/tcp
sudo ufw reload
問題:Data Node 無法啟動
確認 vm.max_map_count 是否已正確設定:
cat /proc/sys/vm/max_map_count
# 應回傳 262144 或更大的值
確認 password_secret 在 datanode.conf 中已填入。
問題:Graylog Server 無法連線至 Data Node
確認 password_secret 在 server.conf 與 datanode.conf 中的值完全一致。
查看 Graylog 服務日誌
sudo journalctl -u graylog-server -f
sudo journalctl -u graylog-datanode -f
sudo journalctl -u mongod -f
七、安全性建議(生產環境部署前必做)
⚠️ 本安裝指南未包含安全強化設定,部署至生產環境前請務必完成以下項目:
- 限制 MongoDB、Data Node、Graylog API 的對外網路存取
- 啟用 TLS/SSL 加密(Web UI 與元件間通訊)
- 設定防火牆規則,僅開放必要連接埠
- 啟用 Graylog 的角色型存取控制(RBAC)
- 定期備份 MongoDB 資料與 Graylog 設定檔
詳細安全設定請參考官方文件:
https://go2docs.graylog.org/current/planning_your_deployment/secure_your_graylog_environment.htm
附錄:重要設定檔位置
| 服務 | 設定檔路徑 |
|---|---|
| MongoDB | /etc/mongod.conf |
| Data Node | /etc/graylog/datanode/datanode.conf |
| Graylog Server | /etc/graylog/server/server.conf |
| Graylog JVM | /etc/default/graylog-server |
| Graylog 日誌 | /var/log/graylog-server/server.log |
本文件依據 Graylog 7.0 官方文件整理,適用於 Ubuntu 24.04 LTS 單節點 Core 部署。
官方文件:https://go2docs.graylog.org/current/downloading_and_installing_graylog/ubuntu_installation.htm