記錄活得比叢集還久。

Graylog Open 長期記錄歸檔與還原工具,再補上 Enterprise 版才有的 Archive 功能。 串流匯出、SHA256 完整性驗證、時間點還原、Graylog 管理員無法刪除的獨立合規稽核。

Graylog Open 自架 歸檔 通知 獨立稽核 開源 Apache 2.0
三步驟安裝 → GitHub 看原始碼

前置條件。 Linux 主機需有 python3 ≥ 3.10pipgit。 安裝指令稿會自行建立系統使用者、設好 systemd、產生自簽 SSL 憑證,並啟動 HTTPS Web UI 於 8990 port。

sudo git clone https://github.com/jasoncheng7115/jt-glogarch.git /opt/jt-glogarch
sudo bash /opt/jt-glogarch/deploy/install.sh
Web UI
https://<伺服器 IP>:8990 (用您的 Graylog 帳密登入)
設定檔
/opt/jt-glogarch/config.yaml
記錄檢視
journalctl -u jt-glogarch -f
升級
sudo bash /opt/jt-glogarch/deploy/upgrade.sh (會先快照備份 DB,不會破壞資料)
移除
sudo bash /opt/jt-glogarch/deploy/uninstall.sh (每個刪除動作都會逐一詢問)

接著指向 Graylog。 編輯 config.yaml 填入 Graylog API URL 與 token (Graylog → System → Users → Edit tokens 產生)。可選:加上 OpenSearch 主機以啟用約 5 倍速的 Direct 模式。完整設定 → README · 設定

兩種匯出、兩種匯入。

依需求自由搭配:匯出可選 API(相容性高)或 OpenSearch Direct(約 5 倍速),匯入可選 GELF(走完整 Graylog pipeline)或 OpenSearch Bulk(約 5~10 倍速)。跨模式重複資料刪除確保切換時資料一致。

Graylog API 匯出

標準 REST API 路徑,相容任何 Graylog Open 安裝。支援串流篩選、突破 10K offset 限制的時間視窗分頁、JVM heap 監控(Graylog 過載時自動暫停)。

OpenSearch Direct 匯出

繞過 Graylog 直接查 OpenSearch,速度約 5 倍。逐 index 匯出、search_after 分頁無 10K 限制、多主機 failover、500/502/503/429 自動重試。

GELF 匯入

預設還原方式。每筆訊息透過 GELF 重播完整 Graylog input → process → indexer 處理流程。Pipeline 規則、Extractor、Stream routing、告警全部沿用。

OpenSearch Bulk 匯入

速度 5~10 倍,透過 _bulk 直接寫入 OpenSearch,完全跳過 Graylog 處理流程。適合「原樣還原」場景:災難復原、遷移、時間點調查。

六種用法,一份歸檔。

資料一旦壓縮成附帶 SHA256 校驗的 .json.gz,從以下任一角度都能取用。

法規遵循記錄保留

資安要求認證記錄保留 1 年,但 Graylog 熱索引保留期維持 90 天。排程每日匯出篩選的串流,讓便宜的儲存吃下 90 天以上的歸檔。

鑑識調查還原

6 個月前的資安事件需要調查,但記錄已超過 OpenSearch 的保留期限。歸檔清單上找到、按匯入、指向 Graylog 與 GELF — 重新上線、可搜尋。

叢集遷移

從舊 Graylog 搬到新 Graylog。OpenSearch Direct 把整個叢集快速匯出,GELF 或 Bulk 把它匯入新叢集。沒有廠商鎖定、沒有雲端中間人。

異地備援

把遠端儲存掛在 /data/graylog-archives,排程每日匯出。即使主 Graylog 叢集掛了,異地仍保有可搜尋的歸檔。

降低儲存成本

OpenSearch hot tier 很貴。把舊 indices 歸檔到壓縮儲存(約 10 倍壓縮),讓現役叢集只負責近期搜尋。舊資料幾分鐘內仍可恢復。

獨立合規稽核

Graylog 內建 audit log 是 admin 可刪改的。jt-glogarch 的獨立行為稽核記下叢集真實的操作軌跡,存在 Graylog admin 沒權限的資料庫裡。

為長期穩定運作設計。

設計目標就是在繁忙的 Graylog 叢集旁邊安靜跑好幾年。

串流寫入

從不把訊息全載入記憶體。.json.gz 預設每 50 MB 切檔。GB 級 index 也不會 OOM。

智慧重複資料刪除

同模式精確比對防止重匯出。跨模式覆蓋率檢查讓 API/OpenSearch 切換時不會重複。

斷點續傳

服務匯出途中當掉?重啟後從上次完成的區段續跑。資料不漏、不重複。

SHA256 完整性

每份歸檔附 .sha256。排程的並行驗證會定期重算雜湊,壞檔在儀表板上會被標記。

Cron 排程

匯出、清理、驗證 — POSIX cron 慣例(0=週日)。Web UI 上的編輯立即生效,不必重啟服務。

JVM heap 防護

API 匯出在 Graylog heap 超過 85% 時自動暫停;GC 回收後自動繼續;5 分鐘未恢復才停止。Graylog 不會被你的歸檔工作拖垮。

合規 Pre-flight

GELF 或 Bulk 送出前,先檢查目標容量、修復 mapping 衝突;送完還會核對 indexer 失敗數。零 indexer 失敗 = 合規通過。

多管道通知

Telegram · Discord · Slack · Microsoft Teams · Nextcloud Talk · Email。雙語(EN / 繁體中文)。每個事件可獨立啟停。

Web UI + CLI

完整 Web UI(深/淺主題、英/繁中)外加 glogarch CLI。同操作、同資料庫,看你愛哪個。

獨立於 Graylog 的軌跡稽核。

法規(ISO 27001、PCI-DSS、個資法等)要求保留管理者操作軌跡。

nginx access log → syslog

nginx 擋在 Graylog 前面,把每筆 API 呼叫透過 UDP syslog 旁路給 jt-glogarch 的 listener。獨立路徑、獨立儲存。

Graylog admin 可以刪 他們自己的 audit log。但刪不到 這份

60+ 種操作分類

Stream / pipeline / user / search / dashboard / content pack / lookup table / extractor — 所有有意義的建立 / 修改 / 刪除都被攔截分類。

Web UI 可依使用者、method、URI、狀態碼、時間區間、是否敏感操作篩選。

使用者名稱解析

Basic Auth、API token、瀏覽器 session、Cookie 認證 — 全部解析回真實的 Graylog 使用者名稱。Token 前綴快取、逐使用者查詢、IP fallback。

即使 5 個 admin 共用一個 IP,也能透過 Cookie session 解析區分。

敏感行為即時告警

可設定的 pattern 觸發即時通知。刪除使用者、授予 admin、安裝 content pack — 即時推播,不必等隔天的報表。

稽核管道斷線偵測

每 5 分鐘 jt-glogarch 主動透過 nginx 探測一筆,等 syslog 回來。沒回來 → 立即告警,捕捉「有人關掉轉送」這種微妙故障,不會誤報。

獨立保留期限

稽核保留期限跟歸檔保留期限分開設定(預設 180 天可調)。即使歸檔已被清理,操作軌跡仍保留所需期間。

設定步驟與 nginx 設定範本 → README · 行為稽核

畫面

Web UI 雙語(英文 / 繁體中文)、深淺主題切換。