Graylog: 保持期間の管理
ログ保持の設定方法
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるGraylogクラウドソリューションを提供しています。
- 無制限で専用のSMTP メールサーバーが含まれています。
- ワンクリックで簡単にアップデート。
- HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://logs.your-company.com)。
- プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ。
時間を節約し、生活を簡素化:StackheroのGraylogクラウドホスティングソリューションを試すのに5分しかかかりません!
保持期間は、OpenSearchデータベースに保存されるメッセージの数を定義します。メッセージ数、最大年齢、または全体のサイズ制限に基づいて保持期間を設定できます。
例えば、過去365日間のメッセージを保持する、2億メッセージまで保持する、または合計400GBのストレージスペースを確保することができます。
インデックスの理解
保持ポリシーを定義する前に、GraylogとOpenSearchで使用されるインデックスの仕組みを理解することが重要です。インデックスを物理的なコンテナと考えてください。Graylogはコンテナ(インデックス)を「開き」、受信メッセージをその中に配置します。そのコンテナに割り当てられたクォータが超過すると、コンテナは閉じられ、棚に保管され、次のメッセージ用に新しいコンテナが開始されます。
このクォータは、さまざまな基準で設定できます。
- メッセージ数: 「1コンテナあたり2000万メッセージを保持し、その後新しいコンテナを開始する。」
- 時間制限: 「10日間コンテナを使用し、その後新しいコンテナに切り替える。」
- サイズ制限: 「1コンテナあたり20GBを保存し、その後新しいコンテナに移行する。」
棚に保管できるコンテナの最大数も定義されています。この数を超えると、最も古いコンテナが自動的に削除されます。例えば、最大20コンテナを設定し、棚に22コンテナがある場合、最も古い2コンテナが削除されます。
このアナロジーでは、コンテナがインデックスを表し、棚がOpenSearchであり、最大数が許可されるインデックスの数を表します。
ローテーション戦略の選択
Graylogは3つの保持戦略を提供します。
- 「インデックスタイム」は各インデックスでメッセージが保持される最大期間を定義します。例えば、1インデックスあたり14日間。
- 「インデックスメッセージ数」は1インデックスあたりのメッセージの最大数を設定します。例えば、1インデックスあたり2000万メッセージ。
- 「インデックスサイズ」はインデックスの最大サイズを制限します。例えば、1インデックスあたり40GB。
特定の要件に基づいてこれらの戦略のいずれかを選択できます。例えば、「インデックスタイム」を選択すると、常に過去X日間のログを持つことができます。
ディスクストレージのニーズを正確に見積もるように注意してください。
例えば、1日あたり1GBのログを保存し、過去365日間のログを保持することに決めた場合、365GBのディスクスペースが必要です。追加の運用スペースも確保する必要があることを忘れないでください(以下参照)。
保持パラメータの定義
デフォルトでは、Graylogはインデックスの数を20に制限しています。この値をニーズに合わせて調整できます。例えば、過去365日間のログを保存したい場合、365日を20インデックスで分割して保持を分配することができます。これにより、1インデックスあたり約19日間となります。
他の戦略についても同様の計算を行うことができます。
- 「インデックスメッセージ数」戦略の場合: 最大20インデックスで2億メッセージを保持したい場合、2億メッセージを20インデックスで割ると、1インデックスあたり1000万メッセージとなります。
- 「インデックスサイズ」戦略の場合: 最大10インデックスで400GBのログを維持したい場合、400GBを10インデックスで割ると、1インデックスあたり40GBとなります。
ログ、Graylogのジャーナル、MongoDBデータのために常に少なくとも15GBの空きディスクスペースを確保することをお勧めします。
空きディスクスペースがなくなると、OpenSearchは操作をブロックし、より大きなインスタンスにアップグレードする必要があるかもしれません。
保持ポリシーの設定
保持ポリシーを設定するには、Graylogインターフェースに移動します。「System」から「Indices」を選択し、「Default index set」の「Edit」ボタンをクリックします。
以下の例では、最大27インデックスを設定し、各インデックスが14日間のログを保持します。この設定は約1年間(378日)のログを保持します。
1インデックスあたり14日以上のメッセージを保持することはお勧めしません。
1年間ログを保持するための保持設定
「インデックスタイム」をローテーションポリシーとして選択する場合、ISO8601 Duration標準を使用して期間を定義する必要があります。
例えば、「P7D」は7日間、「P14D」は14日間を意味します。
さらに進む
インデックスについてもっと知りたい場合は、公式ドキュメントを読むことを強くお勧めします。
OpenSearchの読み取り専用インデックスに関するエラーの処理
時折、OpenSearchが読み取り専用モードに切り替わり、次のようなエラーが発生することがあります。
- 「Flood stage disk watermark exceeded, all indices on this node will be marked read-only」
- 「FORBIDDEN/12/index read-only / allow delete (api)」
これらのエラーは、ディスクスペースが非常に少ない場合にOpenSearchの保護メカニズムの一環として発生します。利用可能なディスクスペースが7GBを下回ると、OpenSearchはデータの破損を防ぐためにインデックスを読み取り専用に設定します。
これらのエラーが発生した場合、次の2つのオプションがあります。
- 保持ポリシーを再設定してログを少なく保持します。ポリシーを調整した後、最も古いインデックスを削除してディスクスペースを解放し、OpenSearchが読み書きモードに戻るようにします。インデックスを削除すると、そのインデックス内のすべてのデータが失われることに注意してください。
- より大きなディスクを持つインスタンスにアップグレードします。Stackheroダッシュボードでワンクリックするだけで、インスタンスが再起動し、追加のディスクスペースが提供され、OpenSearchは自動的に読み書きモードに戻ります。