Graylog: 保持期間の管理

ログ保持の設定方法

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供する、すぐに使えるGraylogクラウドソリューションを提供しています。

  • 無制限で専用のSMTP メールサーバーが含まれています。
  • ワンクリックで簡単にアップデート
  • HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://logs.your-company.com)。
  • プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ

時間を節約し、生活を簡素化:StackheroのGraylogクラウドホスティングソリューションを試すのに5分しかかかりません!

保持期間は、OpenSearchデータベースに保存されるメッセージの数を定義します。メッセージ数、最大年齢、または全体のサイズ制限に基づいて保持期間を設定できます。

例えば、過去365日間のメッセージを保持する、2億メッセージまで保持する、または合計400GBのストレージスペースを確保することができます。

保持ポリシーを定義する前に、GraylogとOpenSearchで使用されるインデックスの仕組みを理解することが重要です。インデックスを物理的なコンテナと考えてください。Graylogはコンテナ(インデックス)を「開き」、受信メッセージをその中に配置します。そのコンテナに割り当てられたクォータが超過すると、コンテナは閉じられ、棚に保管され、次のメッセージ用に新しいコンテナが開始されます。

このクォータは、さまざまな基準で設定できます。

  1. メッセージ数: 「1コンテナあたり2000万メッセージを保持し、その後新しいコンテナを開始する。」
  2. 時間制限: 「10日間コンテナを使用し、その後新しいコンテナに切り替える。」
  3. サイズ制限: 「1コンテナあたり20GBを保存し、その後新しいコンテナに移行する。」

棚に保管できるコンテナの最大数も定義されています。この数を超えると、最も古いコンテナが自動的に削除されます。例えば、最大20コンテナを設定し、棚に22コンテナがある場合、最も古い2コンテナが削除されます。

このアナロジーでは、コンテナがインデックスを表し、棚がOpenSearchであり、最大数が許可されるインデックスの数を表します。

Graylogは3つの保持戦略を提供します。

  1. 「インデックスタイム」は各インデックスでメッセージが保持される最大期間を定義します。例えば、1インデックスあたり14日間。
  2. 「インデックスメッセージ数」は1インデックスあたりのメッセージの最大数を設定します。例えば、1インデックスあたり2000万メッセージ。
  3. 「インデックスサイズ」はインデックスの最大サイズを制限します。例えば、1インデックスあたり40GB。

特定の要件に基づいてこれらの戦略のいずれかを選択できます。例えば、「インデックスタイム」を選択すると、常に過去X日間のログを持つことができます。

ディスクストレージのニーズを正確に見積もるように注意してください。

例えば、1日あたり1GBのログを保存し、過去365日間のログを保持することに決めた場合、365GBのディスクスペースが必要です。追加の運用スペースも確保する必要があることを忘れないでください(以下参照)。

デフォルトでは、Graylogはインデックスの数を20に制限しています。この値をニーズに合わせて調整できます。例えば、過去365日間のログを保存したい場合、365日を20インデックスで分割して保持を分配することができます。これにより、1インデックスあたり約19日間となります。

他の戦略についても同様の計算を行うことができます。

  1. 「インデックスメッセージ数」戦略の場合: 最大20インデックスで2億メッセージを保持したい場合、2億メッセージを20インデックスで割ると、1インデックスあたり1000万メッセージとなります。
  2. 「インデックスサイズ」戦略の場合: 最大10インデックスで400GBのログを維持したい場合、400GBを10インデックスで割ると、1インデックスあたり40GBとなります。

ログ、Graylogのジャーナル、MongoDBデータのために常に少なくとも15GBの空きディスクスペースを確保することをお勧めします。

空きディスクスペースがなくなると、OpenSearchは操作をブロックし、より大きなインスタンスにアップグレードする必要があるかもしれません。

保持ポリシーを設定するには、Graylogインターフェースに移動します。「System」から「Indices」を選択し、「Default index set」の「Edit」ボタンをクリックします。

以下の例では、最大27インデックスを設定し、各インデックスが14日間のログを保持します。この設定は約1年間(378日)のログを保持します。

1インデックスあたり14日以上のメッセージを保持することはお勧めしません。

1年間ログを保持するための保持設定1年間ログを保持するための保持設定

「インデックスタイム」をローテーションポリシーとして選択する場合、ISO8601 Duration標準を使用して期間を定義する必要があります。

例えば、「P7D」は7日間、「P14D」は14日間を意味します。

インデックスについてもっと知りたい場合は、公式ドキュメントを読むことを強くお勧めします。

時折、OpenSearchが読み取り専用モードに切り替わり、次のようなエラーが発生することがあります。

  1. 「Flood stage disk watermark exceeded, all indices on this node will be marked read-only」
  2. 「FORBIDDEN/12/index read-only / allow delete (api)」

これらのエラーは、ディスクスペースが非常に少ない場合にOpenSearchの保護メカニズムの一環として発生します。利用可能なディスクスペースが7GBを下回ると、OpenSearchはデータの破損を防ぐためにインデックスを読み取り専用に設定します。

これらのエラーが発生した場合、次の2つのオプションがあります。

  1. 保持ポリシーを再設定してログを少なく保持します。ポリシーを調整した後、最も古いインデックスを削除してディスクスペースを解放し、OpenSearchが読み書きモードに戻るようにします。インデックスを削除すると、そのインデックス内のすべてのデータが失われることに注意してください。
  2. より大きなディスクを持つインスタンスにアップグレードします。Stackheroダッシュボードでワンクリックするだけで、インスタンスが再起動し、追加のディスクスペースが提供され、OpenSearchは自動的に読み書きモードに戻ります。