クラスターが消えても、ログは残る。

Graylog Open のためのログ長期アーカイブとリストア——Enterprise 版にしかない機能です。 ストリーミングエクスポート、SHA256 による完全性検証、任意の時点へのリストア、 そして Graylog 管理者でも改ざんできない独立したコンプライアンス監査を備えています。 古いログは、リストアせずにアーカイブ内を直接検索することもできます。

Graylog Open セルフホスト アーカイブ 通知 PDF レポート 独立した監査 オープンソース AGPL v3
3 ステップでインストール → 日本語 README を見る

前提条件: python3 ≥ 3.10、pip、git が使える Linux ホスト。 インストーラーはシステムユーザーを作成し、systemd を設定し、自己署名証明書を生成して、 HTTPS ポート 8990 で Web UI を起動します。

sudo git clone https://github.com/jasoncheng7115/jt-glogarch.git /opt/jt-glogarch
sudo bash /opt/jt-glogarch/deploy/install.sh
Web UI
https://<server-ip>:8990 (Graylog のアカウントでログイン)
設定ファイル
/opt/jt-glogarch/config.yaml
ログ
journalctl -u jt-glogarch -f
アップグレード
sudo bash /opt/jt-glogarch/deploy/upgrade.sh (安全です。先に DB のスナップショットを取得します)
アップグレードが止まる場合
Not possible to fast-forward で止まる場合、公開履歴が 2026-09-13 に書き換えられたため、それ以前にクローンしたインストールの履歴が分岐しています。何も変更されず、サービスは動き続けます。一度だけクローンを公開履歴に合わせてから、アップグレードしてください: cd /opt/jt-glogarch && sudo git fetch origin && sudo git reset --hard origin/main (config.yaml、データベース、certs/、reports/ は git-ignore 対象のため影響を受けません。v1.14.11 以降は自動で復旧します。)
オフラインでのアップグレード
インターネットに接続できないホストは、上の「オフライン(閉域)」タブを参照してください(接続できる環境でビルド → 搬入 → インストール)
アンインストール
sudo bash /opt/jt-glogarch/deploy/uninstall.sh (データを削除する前に確認があります)

次に Graylog へ接続します。 config.yaml に Graylog API の URL とトークンを設定します (Graylog → System → Users → Edit tokens)。任意で OpenSearch のホストを追加すると、 約 5 倍高速な直接モードが使えます。詳しい設定 → 日本語 README

取り出す経路は 2 つ、戻す経路も 2 つ。

エクスポートは API か OpenSearch 直接、リストアは GELF か OpenSearch Bulk を選べます。モードをまたいだ重複排除で、データの一貫性を保ちます。

Graylog API エクスポート

標準の REST API を使う経路です。どの Graylog Open 環境でも動作します。ストリームでの絞り込み、10K オフセット上限を超える時間窓ページング、Graylog に負荷がかかると自動で一時停止する JVM ヒープ監視を備えています。

OpenSearch 直接エクスポート

Graylog を経由せず OpenSearch に直接クエリします。約 5 倍高速です。search_after ページングによるインデックス単位のエクスポート(10K 上限なし)、ホストのフェイルオーバー、500/502/503/429 に対する一時的エラーの再試行に対応しています。

GELF インポート

デフォルトのリストア経路です。各メッセージを Graylog の input → process → indexer の全工程に流し直します。パイプラインルール、エクストラクター、ストリームのルーティング、アラートはすべてそのまま適用されます。

OpenSearch Bulk インポート

_bulk で OpenSearch に直接書き込み、5〜10 倍高速です。Graylog の処理は完全にスキップします。災害復旧、移行、特定時点の調査など「そのまま戻す」用途に向いています。

※ Graylog 7 Data Node では OpenSearch 直接エクスポートと Bulk インポートは利用できません(Graylog API エクスポートと GELF インポートは利用可能)。

6 つの活用例。

同じアーカイブが複数の用途に使えます。チェックサム付きの圧縮 .json.gz ファイルとして保存されていれば、どの角度からでも取り出せます。

コンプライアンス上の保存

Graylog のホットインデックスの保持期間は 90 日のまま、認証ログを 1 年間保存できます。ストリームで絞り込んだエクスポートを毎日スケジュールし、90 日を過ぎた分は安価なストレージに任せます。

フォレンジックのためのリストア

6 か月前のインシデントを調査したいのに、そのログはすでに OpenSearch からローテーションで消えている。アーカイブを探して「インポート」をクリックし、GELF で Graylog を指定すれば、再び検索できる状態に戻ります。

クラスターの移行

旧 Graylog から新 Graylog へ移行します。OpenSearch 直接エクスポートでクラスター全体を素早く取り出し、GELF または Bulk で新環境へインポートします。ベンダーロックインも、クラウドの仲介もありません。

災害復旧

リモートストレージを /data/graylog-archives にマウントし、毎日のエクスポートをスケジュールします。稼働中の Graylog クラスターが停止しても、別拠点に検索可能なアーカイブが残ります。

コスト削減

OpenSearch のホット層は高価です。古いインデックスを圧縮ストレージ(約 10 倍の圧縮)にアーカイブし、稼働中のクラスターには最近の検索だけを担わせます。古いデータも数分で復元できます。

独立した監査

Graylog 標準の監査ログは管理者が削除できます。jt-glogarch の独立した操作監査は、Graylog 管理者が所有しないデータベースに、クラスター上で実際に行われた操作を記録します。

長期運用のための設計。

忙しい Graylog クラスターを相手に、何年も静かに動き続けるように作られています。

ストリーミング書き込み

メッセージをメモリに溜め込みません。.json.gz のチャンクはデフォルトで 50 MB ごとに切り替わります。数 GB のインデックスでもメモリ不足になりません。

スマートな重複排除

同一モードでは完全一致で再エクスポートを防ぎます。API と OpenSearch を切り替えても、モードをまたいだカバー範囲チェックで重複を防ぎます。

中断からの再開

エクスポート中にサービスが停止しても、再起動すれば最後に完了したチャンクから続行します。欠落も重複もありません。

SHA256 と HMAC による完全性

すべてのアーカイブに .sha256 ファイルが付きます。定期的な再検証は並列ワーカーで実行され、破損したファイルはダッシュボードに表示されます。オプションでキー付き HMAC-SHA256 と別ホストの台帳を有効にすると、破損だけでなく意図的な改ざんも検知できます——内部の人間がファイルとデータベースの両方を書き換えても検出されます。

cron によるスケジュール

エクスポート、クリーンアップ、検証——期待どおりの曜日番号で動く POSIX cron です。Web UI での変更はサービスを再起動せずにすぐ反映されます。

JVM ヒープガード

Graylog のヒープが 85% を超えると API エクスポートは自動で一時停止します。GC で回復すれば再開し、5 分経っても回復しなければ停止します。Graylog を落としません。

事前コンプライアンスチェック

GELF や Bulk で送信する前に、jt-glogarch はターゲットの容量を確認し、マッピングの競合を修正し、インポート後にインデクサーの失敗を突き合わせます。インデクサーの失敗ゼロ=コンプライアンス合格です。

通知

Telegram・Discord・Slack・Microsoft Teams・Nextcloud Talk・メール。英語/繁體中文/日本語に対応。イベントの種類ごとに個別に通知を設定できます。

Web UI と CLI

フル機能の Web UI(ライト/ダーク、英語/繁體中文/日本語)と、スクリプトから使える glogarch CLI。同じ操作、同じデータベースを、好きな方で使えます。

PDF レポート (ベータ)

Graylog のダッシュボードとアーカイブ統計から、ブランド入りの PDF レポートを作成します。ウィジェットをネイティブのグラフとして再構築するか、稼働中のダッシュボードをスクリーンショットするかを選べます——最初のタブだけでなく、すべてのタブを取り込みます。cron スケジュール、メール配信、タイル状の透かし、ファイルが改変されていないことを示す SHA-256 フィンガープリントに対応しています(レポートの言語は英語/繁體中文/日本語から選べます)。

管理者でも改ざんできない監査。

コンプライアンスの枠組み(ISO 27001、PCI-DSS、GDPR など)は、管理者操作の監査証跡を求めます。 Graylog 標準の監査ログは Graylog 自身が管理しているため、管理者権限を持つ人なら誰でも削除・変更できます。 監査人の立場から見れば、信頼できません。

nginx アクセスログ → syslog

Graylog の前段にある nginx が、すべての API 呼び出しを UDP で jt-glogarch の syslog リスナーへ転送します。経路も保存先も独立しています。

Graylog 管理者は自分たちの監査ログは削除できますが、この監査ログは削除できません。

60 種類以上の操作

ストリーム/パイプライン/ユーザー/検索/ダッシュボード/コンテンツパック/ルックアップテーブル/エクストラクター——意味のある作成・変更・削除はすべて記録され、分類されます。

Web UI でユーザー、メソッド、URI、ステータス、期間、重要操作のみで絞り込めます。

ユーザー名の解決

Basic 認証、API トークン、ブラウザーセッション、Cookie 認証——いずれも実際の Graylog ユーザー名に解決します。トークンのプレフィックスキャッシュ、ユーザーごとの照会、IP によるフォールバックを使います。

5 人の管理者が同じ IP を共有していても、Cookie ベースのセッション解決で区別できます。

重要操作のアラート

設定したパターンに一致すると、指定のチャネルへリアルタイムに通知します。ユーザーの削除、管理者権限の付与、コンテンツパックのインストールなどを、翌朝のレポートではなく発生した時点で知らせます。

能動的なハートビート

jt-glogarch は 5 分ごとに nginx 経由でプローブを送り、syslog に返ってくるかを監視します。経路が途絶えるとすぐにアラートを出します。「誰かが転送を無効にした」ことを、誤検知なく捉えます。

独立した保持期間

監査の保持期間はアーカイブの保持期間とは別に設定できます(デフォルト 180 日、変更可能)。ログのアーカイブが削除されても、操作履歴は必要な期間残ります。

設定手順と nginx 設定テンプレート → 日本語 README

画面

Web UI は英語/繁體中文/日本語に対応し、ライトとダークのテーマを備えています。

ブランド入りレポートの作成

任意の Graylog ダッシュボードを、ブランド入りの複数ページ PDF レポートにします。スケジュールとメール配信に対応し、2 つのモードがあります。レポートをクリックすると全ページをめくって確認できます。