Graylog 7 安裝及設定 - Debian 12
BUBU 因要開始錄製 Graylog 基本教學影片,因此重新記錄目前官方最新版本安裝流程。
運行環境
本工作室環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: Debian 12
- Web 服務: Nginx 1.28
更新系統
- 更新系統
sudo apt update && sudo apt upgrade -y && init 6
- 安裝必要的套件服務
sudo apt install uuid-runtime pwgen dirmngr gnupg wget net-tools htop iftop iotop python3-pip glances nano curl -y
安裝MongoDB
- 新增加 MongoDB 金鑰
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
- 新增加 MongoDB 來源庫
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
- 安裝 MongoDB 服務
sudo apt-get update && sudo apt-get install -y mongodb-org
- 設定 MongoDB 啟動服務
# 重新載入系統設定檔
sudo systemctl daemon-reload
# 開機時自動啟動
sudo systemctl enable mongod.service
or
sudo systemctl enable --now mongod.service
# 啟動 MongoDB 服務
sudo systemctl restart mongod.service
# 查看目前該服務狀態
sudo systemctl --type=service --state=active | grep mongod
or
sudo systemctl status mongod.service
安裝 Data Node 及 Graylgo 服務
2025.12.23 官方在 6 版過後已開始導入自家所包裝的資料收集服務,但底層還是一樣是 opensearch 服務,只是由 Graylog 官方統一做維護處理。
- 新增加
Data Node及Graylog來源庫
wget https://packages.graylog2.org/repo/packages/graylog-7.0-repository_latest.deb
sudo dpkg -i graylog-7.0-repository_latest.deb
- 安裝
graylog-datanode服務
sudo apt-get update && sudo apt-get install graylog-datanode graylog-server
-
因 BUBU 環境是在 LXC 上運行所以不用特別去調整此參數
-
確認
vm.max_map_count的值是否為262144如果沒有請在修正官方所建議的數值。
cat /proc/sys/vm/max_map_count
- 如果是您用 KVM 方式安裝請在執行以下方式
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
- 調整 java 記憶體
vim /etc/graylog/datanode/datanode.conf,假設您本機的記憶體是設定 16G 那會建議先設定 8G 提供給服務使用
opensearch_heap = 8g
- 設置Graylog管理員的密鑰
利用pwgen輔助工具產生密碼 for server.conf 及 datanode.conf 中的 password_secret
SECRET=$(pwgen -s 96 1)
sudo -E sed -i \
-e "s/^password_secret =.*/password_secret = ${SECRET}/" \
/etc/graylog/server/server.conf \
/etc/graylog/datanode/datanode.conf
- 查看
vim /etc/graylog/server/server.conf及vim /etc/graylog/datanode/datanode.conf內容,password_secret參數是否有一樣
- 設定 Graylog 管理員 admin 的密碼,由於密碼使用
SHA雜湊演算法,我們需要把明文密碼轉換為hash值,然後賦值給root_password_sha2參數。
例如:以下列命令產生密碼為 test1234 的 hash 值。
echo -n test1234 | sha256sum | awk '{print $1}'
- 以下是產生出來的畫面
- 將以上命令產出之
Hash值,填入到server.conf中root_password_sha2參數。vim /etc/graylog/server/server.conf
- 設定 Graylog 服務,開啟設定檔
vim /etc/graylog/server/server.conf
這是設定 http
http_bind_address = 0.0.0.0:9000 (192.168.x.x為Graylog Server IP)
http_publish_uri = http://0.0.0.0:9000
設定郵件
root_email = "[email protected]"
設定時區,不然收到的記錄會是國際標準時區
root_timezone = Asia/Taipei # 重要,若不設定為ROC,則進來Log的timestamp會變成以UTC時間紀錄,
# 允許wildcard搜尋語法
allow_leading_wildcard_searches = true
# 設定資料暫存時間(建議 72 小時,資料大小請依當時的每天所收集到的資料在做調整)
message_journal_max_age = 72h
message_journal_max_size = 90gb
- 設定 Graylog 服務在 java 所使用的記憶體
vim /etc/default/graylog-server官方提出的最底的建議值,如果站台收的流很大的話需要依狀況在調整
GRAYLOG_SERVER_JAVA_OPTS="-Xms2g -Xmx2g -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow"
- 設定
Graylog及graylog-datanode啟動服務
# 重新載入 systemd 設定(如果你剛改過 unit 檔或環境變數)
sudo systemctl daemon-reload
# 1) 先啟用開機自動啟動(兩個一起)
sudo systemctl enable graylog-datanode.service graylog-server.service
# 2) 先啟動 datanode(OpenSearch)
sudo systemctl start graylog-datanode.service
# 3) 再啟動 graylog-server
sudo systemctl start graylog-server.service
# 4) 檢查狀態
sudo systemctl status graylog-datanode.service graylog-server.service --no-pager
登錄 Graylog Web
-
使用瀏覽器訪問
http://graylog_public_IP_domain:9000/ -
登入時會出現此畫面,請查看記錄檔
vim /var/log/graylog-server/server.log
- 可以改用這個方式做登入
- 因為改用
datanode關係因此在連線時會加上憑證,所以現在要設定憑證事宜,這畫面是在建立新的 CA 憑證,預設即可
- 系統會自動更新憑證,如果不想每個月都更新的話,可以自行設定想要多久更新一次
- 系統會直接配發憑證,只要按下
Provison certifcate and continue即可,這段會花一點時間處理需要等待一下。
- 完成後直接按下
Resume startup
- 系統正在設定中,後續會導向到登入頁面
- 導向登入頁面後的畫面,使用帳號 admin 和前面設置的密碼登入。
登入Graylog設定syslog服務
- 增加syslog服務
- 選擇你想要接收的服務,例:Syslog UDP
- 新增畫面,接收的名稱及Port號,填完之後存檔,就可以開始接收記錄了。
使用 NGINX 代理方式來連線
-
請參考本站所編寫文章 Nginx 模組擴充 - Debian \ Ubuntu
-
新增給 Graylog 服務設定檔
vim /etc/nginx/conf.d/graylog.conf
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name 你的ip或網址;
#
access_log /var/log/nginx/graylog_access.log;
error_log /var/log/nginx/graylog_error.log;
#
fastcgi_buffers 64 4K;
#
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/;
proxy_pass http://127.0.0.1:9000;
}
}
- 啟動及自動啟動服務
systemctl start nginx ; systemctl enable nginx
or
sudo systemctl enable --now nginx













