オープンソース

一覧へ

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

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

15.1. streamとは

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

_images/infra_2.png

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

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

15.2. streamの利用例

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

15.3. streamの作成

15.3.1. インデックスの作成

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

_images/stream1.png

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

_images/stream2.png

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

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

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

15.3.2. Streamの作成

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

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

_images/stream3.png

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

_images/stream4.png

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

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

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

_images/stream5.png

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

Manage Rules のボタンをクリックします。 クリックするとルールの管理画面が表示されます。

_images/stream6.png

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

_images/stream7.png

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

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

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

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

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

15.3.3. Outputの作成

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

_images/stream5.png

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

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

15.3.4. streamの開始と停止

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

_images/stream9.png

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

一覧へ