Graylog Open のためのログ長期アーカイブとリストア——Enterprise 版にしかない機能です。 ストリーミングエクスポート、SHA256 による完全性検証、任意の時点へのリストア、 そして Graylog 管理者でも改ざんできない独立したコンプライアンス監査を備えています。 古いログは、リストアせずにアーカイブ内を直接検索することもできます。
前提条件:
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
sudo git clone https://github.com/jasoncheng7115/jt-glogarch.git /opt/jt-glogarch
cd /opt/jt-glogarch
sudo pip install --no-build-isolation .
sudo cp deploy/jt-glogarch.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now jt-glogarch
# 1) インターネットに接続できる Linux 上で(対象ホストと同じ Python マイナーバージョン・CPU アーキテクチャ)
curl -L -o src.tar.gz \
https://github.com/jasoncheng7115/jt-glogarch/archive/refs/heads/main.tar.gz
tar xzf src.tar.gz && cd jt-glogarch-main
bash scripts/build-offline-bundle.sh # -> dist/jt-glogarch--offline.tar.gz
sha256sum dist/jt-glogarch-*-offline.tar.gz # 値を控え、搬入後に照合
# 2) バンドルを搬入(USB / scp)し、sha256 を照合してから対象ホストで:
tar xzf jt-glogarch-*-offline.tar.gz && cd jt-glogarch-*-offline
sudo bash upgrade-offline.sh # pip はネットワークに接続しません。先に DB をバックアップ
# バンドル(約 370 MB)には PDF レポート用の Chromium が含まれますが、OS ライブラリ
# (libnss3、libatk1.0-0、libgbm1 など)は含まれません。自社のメディアからインストールしてください。
https://<server-ip>:8990 (Graylog のアカウントでログイン)/opt/jt-glogarch/config.yamljournalctl -u jt-glogarch -fsudo bash /opt/jt-glogarch/deploy/upgrade.sh (安全です。先に DB のスナップショットを取得します)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
エクスポートは API か OpenSearch 直接、リストアは GELF か OpenSearch Bulk を選べます。モードをまたいだ重複排除で、データの一貫性を保ちます。
標準の REST API を使う経路です。どの Graylog Open 環境でも動作します。ストリームでの絞り込み、10K オフセット上限を超える時間窓ページング、Graylog に負荷がかかると自動で一時停止する JVM ヒープ監視を備えています。
Graylog を経由せず OpenSearch に直接クエリします。約 5 倍高速です。search_after ページングによるインデックス単位のエクスポート(10K 上限なし)、ホストのフェイルオーバー、500/502/503/429 に対する一時的エラーの再試行に対応しています。
デフォルトのリストア経路です。各メッセージを Graylog の input → process → indexer の全工程に流し直します。パイプラインルール、エクストラクター、ストリームのルーティング、アラートはすべてそのまま適用されます。
_bulk で OpenSearch に直接書き込み、5〜10 倍高速です。Graylog の処理は完全にスキップします。災害復旧、移行、特定時点の調査など「そのまま戻す」用途に向いています。
※ Graylog 7 Data Node では OpenSearch 直接エクスポートと Bulk インポートは利用できません(Graylog API エクスポートと GELF インポートは利用可能)。
同じアーカイブが複数の用途に使えます。チェックサム付きの圧縮 .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 と別ホストの台帳を有効にすると、破損だけでなく意図的な改ざんも検知できます——内部の人間がファイルとデータベースの両方を書き換えても検出されます。
エクスポート、クリーンアップ、検証——期待どおりの曜日番号で動く POSIX cron です。Web UI での変更はサービスを再起動せずにすぐ反映されます。
Graylog のヒープが 85% を超えると API エクスポートは自動で一時停止します。GC で回復すれば再開し、5 分経っても回復しなければ停止します。Graylog を落としません。
GELF や Bulk で送信する前に、jt-glogarch はターゲットの容量を確認し、マッピングの競合を修正し、インポート後にインデクサーの失敗を突き合わせます。インデクサーの失敗ゼロ=コンプライアンス合格です。
Telegram・Discord・Slack・Microsoft Teams・Nextcloud Talk・メール。英語/繁體中文/日本語に対応。イベントの種類ごとに個別に通知を設定できます。
フル機能の Web UI(ライト/ダーク、英語/繁體中文/日本語)と、スクリプトから使える glogarch CLI。同じ操作、同じデータベースを、好きな方で使えます。
Graylog のダッシュボードとアーカイブ統計から、ブランド入りの PDF レポートを作成します。ウィジェットをネイティブのグラフとして再構築するか、稼働中のダッシュボードをスクリーンショットするかを選べます——最初のタブだけでなく、すべてのタブを取り込みます。cron スケジュール、メール配信、タイル状の透かし、ファイルが改変されていないことを示す SHA-256 フィンガープリントに対応しています(レポートの言語は英語/繁體中文/日本語から選べます)。
コンプライアンスの枠組み(ISO 27001、PCI-DSS、GDPR など)は、管理者操作の監査証跡を求めます。 Graylog 標準の監査ログは Graylog 自身が管理しているため、管理者権限を持つ人なら誰でも削除・変更できます。 監査人の立場から見れば、信頼できません。
Graylog の前段にある nginx が、すべての API 呼び出しを UDP で jt-glogarch の syslog リスナーへ転送します。経路も保存先も独立しています。
Graylog 管理者は自分たちの監査ログは削除できますが、この監査ログは削除できません。
ストリーム/パイプライン/ユーザー/検索/ダッシュボード/コンテンツパック/ルックアップテーブル/エクストラクター——意味のある作成・変更・削除はすべて記録され、分類されます。
Web UI でユーザー、メソッド、URI、ステータス、期間、重要操作のみで絞り込めます。
Basic 認証、API トークン、ブラウザーセッション、Cookie 認証——いずれも実際の Graylog ユーザー名に解決します。トークンのプレフィックスキャッシュ、ユーザーごとの照会、IP によるフォールバックを使います。
5 人の管理者が同じ IP を共有していても、Cookie ベースのセッション解決で区別できます。
設定したパターンに一致すると、指定のチャネルへリアルタイムに通知します。ユーザーの削除、管理者権限の付与、コンテンツパックのインストールなどを、翌朝のレポートではなく発生した時点で知らせます。
jt-glogarch は 5 分ごとに nginx 経由でプローブを送り、syslog に返ってくるかを監視します。経路が途絶えるとすぐにアラートを出します。「誰かが転送を無効にした」ことを、誤検知なく捉えます。
監査の保持期間はアーカイブの保持期間とは別に設定できます(デフォルト 180 日、変更可能)。ログのアーカイブが削除されても、操作履歴は必要な期間残ります。
設定手順と nginx 設定テンプレート → 日本語 README
Web UI は英語/繁體中文/日本語に対応し、ライトとダークのテーマを備えています。
任意の Graylog ダッシュボードを、ブランド入りの複数ページ PDF レポートにします。スケジュールとメール配信に対応し、2 つのモードがあります。レポートをクリックすると全ページをめくって確認できます。
アーカイブしたファイルを、先に Graylog へインポートし直すことなく検索できます。「あのホストは 6 か月前に何をしていたか」といった単発の疑問に向いています。期間全体を再インポートすると数十分かかるところ、数秒から数分で済みます。クリックで拡大します。
意図的な仕様です。アーカイブにはインデックスがないため、ファイルを開く前に対象を絞り込めるのは期間だけです。実行前に、スキャンするアーカイブ数とおおよそのレコード数、所要時間の目安を表示します。期間を狭めるほど速くなります。
キーワードは自由テキストで、レコード内のどこにでも一致し、大文字・小文字を区別しません。フィールドフィルターは、指定した 1 つのフィールドが完全一致する必要があります。キーワード欄に source=fw01 と入力すると文字列として扱われ、何も見つかりません——そのため、どの例もどの欄に入力するかを明記しています。
CSV または JSON Lines で、全ページにわたって検索に一致したすべてのレコードを、ディスクへ直接ストリーミングします。CSV には時刻、ソース、レベル、レコード、アーカイブファイルが、JSON Lines にはすべてのレコードの全フィールドが含まれます。
ダッシュボード、グラフ、集計はなく、クエリ言語、ワイルドカード、正規表現、OR / NOT、フィールドによる並べ替えもありません。本格的な分析には、その期間を Graylog へインポートし直してフル機能の検索を使ってください——このツールのインポート経路はそのためにあります。