Graylog – Pipelinesでアラートの除外項目を作成

Graylog – Pipelinesでアラートの除外項目を作成

はじめに

Graylogでアラートを飛ばしたいときに、この送信元やURLのときはアラートを飛ばさなくていいといった除外項目を使いたいときがあると思います。アラートの search query を使って除外していってもいいのですが、量が増えてくると1行で書くのは限界がきてしまいます。

そこで、Pipelines を使って 除外用の項目を作成することで、search queryがシンプルになります。

Pipelines(パイプライン)の概要

Pipelines は Stream から受け取ったデータを Stage ごとに処理をしていき、新しい項目(フィールド)を追加したり、削除したりリネームしたりすることができます。

extractorではできないような複雑な処理をすることができるメリットがあります。

まずは Pipelines を作り、その Pipelines の中に 複数の Stage を作っていきます。もちろん Stage は1つでも問題ありません。簡単な処理であれば1つだけでも十分です。

Pipelines の作成

[System / Pipelines] – [Pipelines] を開きます。

Title と Description を追加して [save] をクリックします。

[Edit Connections] をクリックします。

除外項目を追加したい Stream を選択し、 [Save] をクリックします。

Stage の概要

Stage は複数作成できますが、Stage Number の小さい順から順番に適用されていきます。

また、ひとつの Stage に複数の rules を設定することができます。

この場合、すべてのルールに一致した時に次の Stage に進むことができるか、または、ひとつのルールに一致した時に次の Stage に進むことができるかも設定できます。

今回作成する Stage の rules は次のようにしたいと思います。

まず、最初の Stage で exclusion という項目を作成し、値は false をセットします。

次の Stage で、条件に一致した場合は true をセットします。

Stage の作成

[Manage rules] をクリックします。

[Create Rule] をクリックします。

次のような rules を作成します。

rule "exclusion set false"
when
  true
then
  set_field("exclusion", "false");
end

この rules はどんな場合でも必ず exclusion という項目を作成して false がセットされます。

次に条件に一致した場合の rules を作成します。

rule "filter exclusion rule"
when
    ($message.Destination_Hostname == "www.google.co.jp")
then
    set_field("exclusion", "true");
end

これで2つの rules ができました。

Pipelines と rules の紐付け

[Manage pipelines] を開き、作成した Pipelines を開きます。

[Add new stage] をクリックします。

stage 0 に作成した1つめの rules を設定します。

stage 1 にもう一つの rules を設定してやります。

これで、設定は完了です。

これを応用していろんな処理を作成することができます。