オープンソース

一覧へ

14. ログのカテゴライズと保存場所の変更方法

Graylogでは、ログに含まれるキーワードなどで、ログをカテゴライズすることができます。 Graylogでは、ログのカテゴライズの機能をstreamと呼びます。

14.1. streamとは

streamとは、Graylogが受け取ったメッセージを、リアルタイムにカテゴライズする仕組みです。 例えば、ログに含まれるプログラム名などとマッチングさせるルールを作り、マッチングしたログだけを OpenSearchの特別なインデックスに保存することができます。

Graylogのstream

streamを利用することで、ログを保存するときに分類ができるようになります。 そのため、検索効率が上がります。

また検索効率だけでなく、streamの設定毎にアラートの設定を行うことや、別のシステムにログを 送信するなどの操作もできるようになります。

14.2. streamの利用例

  • システムごとにログを分類する
  • 異常を示すログだけを集めて、システム名やユーザ名などで分析を行う
  • 特定の異常をカテゴライズしてアラートを送信する

14.3. streamの作成

14.3.1. インデックスの作成

まずstreamと紐づくOpenSearchのインデックスを新たに作成します。 メニューの indeces リンクから管理画面に移動します。

Graylogのインデックス管理画面

初期状態では、 Default index set というインデックスが存在します。 新たにインデックスを追加する場合、 Create index set ボタンをクリックします。

Graylogのインデックス作成

インデックスの入力項目の意味は次の通りです。

  • Title : インデックスの名前を入力します。
  • Description : インセックスの説明を入力します。
  • Index prefix : インデックスのプレフィックスを入力します。アルファベットと数値と_ - +が使えます。また他のインデックスで利用しているプレフィックスは利用できません。
  • Analyzer : OpenSearchのアナライザを指定します。
  • Index shareds : インデックスのシャードを指定します。
  • Index replicas : インデックスのレプリカを指定します。
  • Max. number of segments : 最適化された後のOpenSearchインデックスのセグメントの最大数を指定します。
  • Index optimization after rotation : ローテーション後のインデックス最適化の有効 / 無効を指定します。
    • Disable index optimization after rotation : チェックした場合、ローテーション後のインデックスの最適化を無効化します。
  • Field type refresh interval : フィールドタイプ情報が更新される間隔を指定します。
  • Select rotation strategy : ローテーションの条件を以下から選択します。
    • Index Message Count : メッセージの数でローテーションします
    • Index Size : サイズでローテーションします
    • Index Time : 時間でローテーションします
    • Index Time Size Optimizing : 時間とサイズを踏まえ最適なタイミングでローテーションします
  • Select retention strategy : 最大のインデックス数を超えた場合の挙動を選択します。
    • Delete index : インデックスを削除します。
    • Close index : インセックスをクローズします。
    • Do nothing : 何もしません
  • Lifetime in days : インデックスが保持されるまでのデータの最小保持日数と最大保持日数を指定します。

入力後、 Save ボタンをクリックすることで、新しいインデックスが作成されます。

14.3.2. Streamの作成

次に新しいStreamを作成します。

メニューの Streams リンクから管理画面に移動します。

Graylogのstream管理画面

初期状態では、 Default Stream というすべてのログが保存されるStreamが存在しています。また、ルールが設定されていない All eventsAll system evnets というStreamが存在しています。 新しくStreamを作成するためには、 Create Stream ボタンをクリックします。

Graylogのstream作成

入力項目の意味は次の通りです。

  • Title : Streamのタイトルです。
  • Description : Streamの説明です。
  • Index Set : streamと紐付けるインデックスを選択します。
  • Remove matches from 'Default Stream' : チェックすると、このStreamにマッチするメッセージを Default Stream から削除します。

作成すると新しいStreamが表示されます。

Graylogのstream一覧

次に、作成したStreamを使うためのルールを定義します。

作成したStreamの右側にある More から Manage Rules のボタンをクリックします。

Graylogのstreamのルール

クリックするとルールの管理画面が表示されます。

Graylogのstreamのルール管理画面

この画面で、 Add stream rule をクリックしルールを追加します。

Graylogのstreamのルール追加画面

入力項目の意味は次の通りです。

  • Field : マッチングするフィールド名を指定します。
  • Type : マッチングルールを指定します。ルールにマッチングするログが、紐付くStreamに流れるようになります。
    • match exactly : 上記のFieldとValueが完全一致する場合
    • match regular expression : 上記のFieldとValueが正規表現で一致する場合
    • grater than : 上記のFieldの値よりもValueが大きい場合
    • smaller than : 上記のFieldの値よりもValueが小さい場合
    • field presence : 上記のFieldが存在する場合
    • contaion : 上記のFieldにValueが含まれる場合
    • always match : 常にマッチする
    • match input : 指定したInputに一致する場合

なお、 inverted オプションが存在する場合、チェックすると、逆の意味になります。

ルールは、複数追加可能です。 複数のルールを追加した場合、次の選択によって、Streamを利用するか否か挙動が変化します。

  • A message must match all of the following rules : すべてのルールにマッチする場合
  • A message must match at least one of the following rules : 少なくとも1つのルールがマッチする場合

14.3.3. Outputの作成

Streamに流れているログを、別の場所に送信することができます。 Outputを設定するには、対象のStreamの右側にある More から Manage Outputs のボタンをクリックします。

GraylogのOutput遷移

Outputの設定画面が表示されます。

GraylogのOutput設定

Outputは、以下の2つから選択して設定します。

  • STDOUT Output : 標準出力に出力するOutputモジュール
  • GELF Output : TCP/UDPで別システムに接続してGELFフォーマットでログを出力するモジュール

14.3.4. streamの開始と停止

streamの設定が完了後、 Start Stream のボタンをクリックします。

GraylognのStreamの開始

streamを停止したい場合は、 Pause Stream のボタンをクリックします。

一覧へ