Previous Top Next
15. ログのカテゴライズと保存場所の変更方法
Graylogでは、ログに含まれるキーワードなどで、ログをカテゴライズすることができます。 Graylogでは、ログのカテゴライズの機能をstreamと呼びます。
15.1. streamとは
streamとは、Graylogが受け取ったメッセージを、リアルタイムにカテゴライズする仕組みです。 例えば、ログに含まれるプログラム名などとマッチングさせるルールを作り、マッチングしたログだけを Elasticsearchの特別なインデックスに保存することができます。

streamを利用することで、ログを保存するときに分類ができるようになります。 そのため、検索効率が上がります。
また検索効率だけでなく、streamの設定毎にアラートの設定を行うことや、別のシステムにログを 送信するなどの操作もできるようになります。
15.2. streamの利用例
- システムごとにログを分類する
- 異常を示すログだけを集めて、システム名やユーザ名などで分析を行う
- 特定の異常をカテゴライズしてアラートを送信する
15.3. streamの作成
15.3.1. インデックスの作成
まずstreamと紐づくElasticsearchのインデックスを新たに作成します。
メニューの indeces
リンクから管理画面に移動します。

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

インデックスの入力項目の意味は次の通りです。
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
リンクから管理画面に移動します。

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

入力項目の意味は次の通りです。
Title
: Streamのタイトルです。Description
: Streamの説明です。Index Set
: streamと紐付けるインデックスを選択します。Remove matches from 'All messages' stream
: チェックすると、このStreamにマッチするメッセージをAll messages
から削除します。
作成すると新しいStreamが表示されます。

次に、作成したStreamを使うためのルールを定義します。
Manage Rules
のボタンをクリックします。
クリックするとルールの管理画面が表示されます。

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

入力項目の意味は次の通りです。
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
のボタンをクリックします。

Outputは、以下の2つから選択して設定します。
STDOUT Output
: 標準出力に出力するOutputモジュールGELF Output
: TCP/UDPで別システムに接続してGELFフォーマットでログを出力するモジュール
15.3.4. streamの開始と停止
streamの設定が完了後、 Start Stream
のボタンをクリックします。

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