這份指南說明如何在 Ubuntu Linux (22.04 LTS 或 24.04 LTS) 上安裝 Graylog 6.0 Server,並連接到一個已經存在的 Elasticsearch Cluster。
在開始之前,務必確認你的 Elasticsearch (ES) 版本:
- Graylog 6.0 支援:Elasticsearch 7.10.2 (最後 Apache 版), OpenSearch 1.x, OpenSearch 2.x
- Graylog 6.0 不支援:Elasticsearch 8.x (除非使用特定 Plugin 或透過 Logstash 做降級)
如果你的 ES 是 8.x,你需要安裝 Data Prepper 或考慮降級 ES,或者安裝相容的 OpenSearch。
Graylog 需要 MongoDB (版本 5.0 或 6.0) 來儲存設定檔與 Metadata。
# 加入 MongoDB 6.0 Repository
sudo apt-get install -y gnupg curl
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# 更新並安裝
sudo apt-get update
sudo apt-get install -y mongodb-org
# 啟動並設定開機自啟
sudo systemctl enable mongod
sudo systemctl start mongod# 下載 Graylog 6.0 Repository
wget https://packages.graylog2.org/repo/packages/graylog-6.0-repository_latest.deb
sudo dpkg -i graylog-6.0-repository_latest.deb
sudo apt-get update
# 安裝 Graylog Server (核心套件)
sudo apt-get install graylog-server編輯主要設定檔:
sudo nano /etc/graylog/server/server.conf你需要填入兩個必要的密碼欄位:
- password_secret (至少 96 字元隨機字串):
- 產生指令:
pwgen -N 1 -s 96(若無 pwgen 請apt install pwgen)
- 產生指令:
- root_password_sha2 (Admin 登入密碼的 SHA-256 Hash):
- 產生指令:
echo -n "你的密碼" | sha256sum
- 產生指令:
找到並修改以下參數:
# 綁定 IP (預設只監聽 localhost,若要外部存取需改為 0.0.0.0)
http_bind_address = 0.0.0.0:9000這是最重要的一步。找到 elasticsearch_hosts 並填入你的 ES Cluster 位址:
# 如果是單機 ES (無驗證)
elasticsearch_hosts = http://你的ES主機IP:9200
# 如果是 ES Cluster (無驗證)
elasticsearch_hosts = http://es-node-1:9200,http://es-node-2:9200
# 如果有帳號密碼 (Basic Auth)
elasticsearch_hosts = http://username:password@es-node-1:9200注意: 如果你的 ES 有啟用 TLS/SSL (HTTPS),你還需要匯入憑證到 Java Keystore (這比較進階)。
sudo systemctl daemon-reload
sudo systemctl enable graylog-server
sudo systemctl start graylog-server檢查服務狀態:
sudo systemctl status graylog-server查看詳細 Log (這是除錯聖經):
sudo tail -f /var/log/graylog-server/server.log常見錯誤訊息:
ElasticsearchException: 通常是連不上 ES,檢查防火牆 (Port 9200)。Version conflict: ES 版本不相容 (例如用了 ES 8.x)。OutOfMemoryError: 需要調大 Heap Size (在/etc/default/graylog-server中修改-Xmx)。
- Graylog 預設只給 1GB RAM。如果你的 Log 量大,建議至少給 4GB。
- 如果你要收 Syslog (UDP 514),記得要嘛用
authbind讓 Graylog 能綁定 <1024 Port,要嘛把 Graylog 改聽 1514 然後用 iptables 轉發。