オープンソース

一覧へ

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のインデックスを新たに作成します。 メニューの indices リンクから管理画面に移動します。

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

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

インデックスの作成前に、テンプレートの選択画面が表示されます。 Built-in Templates ではテンプレートからインデックスを作成することができます。

Graylogのインデックス作成

それぞれのテンプレートの種類は以下の通りです。

  • 7 Days Hot : 最低7日間ログを保存し、9日間保存された後に削除します。
  • 14 Days Hot : 最低14日間ログを保存し、18日間保存された後に削除します。
  • 30 Days Hot : 最低30日間ログを保存し、40日間保存された後に削除します。

上記のいずれかを選択し、 Apply template をクリックするとインデックスの作成画面が表示されます。

以下は 30 Days Hot を選択した例です。

Graylogのインデックス作成

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

  • Title : インデックスの名前を入力します。
  • Description : インデックスの説明を入力します。
  • Index prefix : インデックスのプレフィックスを入力します。アルファベットと数値と_ - +が使えます。また他のインデックスで利用しているプレフィックスは利用できません。
  • Analyzer : OpenSearchのアナライザを指定します。
  • Index shareds : インデックスのシャードを指定します。
  • Index replicas : インデックスのレプリカを指定します。
  • Maximum Number of Segments : 最適化された後のOpenSearchインデックスのセグメントの最大数を指定します。
  • Field Type Refresh Interval : フィールドタイプ情報が更新される間隔を指定します。
  • Max. days in storage : 何日後にデータを削除するかを指定します。
  • Min. days in storage : データを最低何日間保存するかを指定します。
  • Index field type mapping profile (optional) : インデックスに割り当てるフィールドタイププロファイルを選択します。

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

14.3.2. Streamの作成

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

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

Graylogのstream管理画面

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

Graylogのstream作成

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

  • Title : Streamのタイトルです。
  • Description : Streamの説明です。
  • Index Set : Streamと紐付けるインデックスを選択します。
  • Remove matches from 'Default Stream' : チェックすると、このStreamにマッチするメッセージを Default Stream から削除します。
  • Add Collaborator : このStreamの共同編集者を選択します。共同編集者に対してはそれぞれ権限を設定することができます。
    • Viewer : 閲覧権限のみ
    • Manager : 削除を含む編集可能
    • Owner : Manager権限に加え、他のユーザへの共有も可能

作成すると新しい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が存在する場合
  • contain : 上記の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 のボタンをクリックします。

一覧へ