跳到主內容

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 NodeGraylog 來源庫
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.confdatanode.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.confvim /etc/graylog/datanode/datanode.conf 內容,password_secret 參數是否有一樣

graylog-password_secret-01.png

  • 設定 Graylog 管理員 admin 的密碼,由於密碼使用 SHA 雜湊演算法,我們需要把明文密碼轉換為 hash 值,然後賦值給 root_password_sha2 參數。

例如:以下列命令產生密碼為 test1234hash 值。

echo -n test1234 | sha256sum | awk '{print $1}'

  • 以下是產生出來的畫面

graylog-hash-02.png

  • 將以上命令產出之 Hash 值,填入到 server.confroot_password_sha2 參數。 vim /etc/graylog/server/server.conf

graylog-hash-03.png

  • 設定 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"
  • 設定 Grayloggraylog-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服務


  1. 增加syslog服務

graylog-05.png

  1. 選擇你想要接收的服務,例:Syslog UDP

graylog-06.png

  1. 新增畫面,接收的名稱及Port號,填完之後存檔,就可以開始接收記錄了。

graylog-07.png

使用 NGINX 代理方式來連線


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



參考相關網頁