Skip to content

Latest commit

 

History

History
115 lines (82 loc) · 3.71 KB

File metadata and controls

115 lines (82 loc) · 3.71 KB

Graylog Server 安裝指南 (連結既有 Elasticsearch)

這份指南說明如何在 Ubuntu Linux (22.04 LTS 或 24.04 LTS) 上安裝 Graylog 6.0 Server,並連接到一個已經存在的 Elasticsearch Cluster。

⚠️ 關鍵相容性警告 (Read This First)

在開始之前,務必確認你的 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。


1. 安裝 MongoDB (必備)

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

2. 安裝 Graylog Repository 與 Server

# 下載 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

3. 設定 Graylog Server (關鍵步驟)

編輯主要設定檔:

sudo nano /etc/graylog/server/server.conf

3.1 產生密碼雜湊 (必填)

你需要填入兩個必要的密碼欄位:

  1. password_secret (至少 96 字元隨機字串):
    • 產生指令:pwgen -N 1 -s 96 (若無 pwgen 請 apt install pwgen)
  2. root_password_sha2 (Admin 登入密碼的 SHA-256 Hash):
    • 產生指令:echo -n "你的密碼" | sha256sum

3.2 網路設定

找到並修改以下參數:

# 綁定 IP (預設只監聽 localhost,若要外部存取需改為 0.0.0.0)
http_bind_address = 0.0.0.0:9000

3.3 連接現有的 Elasticsearch

這是最重要的一步。找到 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 (這比較進階)。

4. 啟動服務

sudo systemctl daemon-reload
sudo systemctl enable graylog-server
sudo systemctl start graylog-server

5. 驗證與除錯

檢查服務狀態:

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)。

🦁 辛巴的小撇步 (Simba's Tips)

  • Graylog 預設只給 1GB RAM。如果你的 Log 量大,建議至少給 4GB。
  • 如果你要收 Syslog (UDP 514),記得要嘛用 authbind 讓 Graylog 能綁定 <1024 Port,要嘛把 Graylog 改聽 1514 然後用 iptables 轉發。