GraylogからSlackにアラートを通知させる

Graylogでログを監視して、Slackにアラートを通知させるにはこちらのSlackへの通知プラグインを導入すればよい。
インストール方法は簡単。こちらからパッケージかjarファイルをダウンロードしてきて、所定の場所(graylog.confに「plugin_dir」で指定されているディレクトリ)に配置してやればよい。

とりあえず、今回はCentOS 7なので、rpmパッケージをインストールしてやる。

rpm -ihv https://github.com/Graylog2/graylog-plugin-slack/releases/download/2.2.1/graylog-plugin-slack-2.2.1-1.noarch.rpm

インストール後、Graylogのサービス再起動を実施する。

systemctl restart graylog-server

サービス再起動が完了したら、こちらからSlackのWebHookの設定を行っておく。
これについては詳細は省く。

1.Streamの新規作成

WebHookの設定(投稿用URLや投稿チャンネル、表示するユーザ名など)を設定したら、Graylogの設定画面を開き、「Streams」から「Create Stream」をクリックする。
Title、Descriptionの入力を行い、新規Streamを作成する。

2.ルール作成

Streamの作成をしたら、アラートのルールを定める。
「Edit rules」をクリックし、まずどのInputから来るログを対象とするか選択する。

次に、「Add stream rule」をクリックし、対象となるフィールドやマッチさせるタイプ、キーワードを指定する。
(ここでは、テストのためにとりあえずValueを「error」にしている。マッチしない場合にアラートを出させることもできるようだけど、ちょっと面倒なのでやらない。)

ルールが追加できたら、「I'm done」で登録する。

3.アウトプットの設定

Streamの「Manage Outputs」をクリックし、次の画面で「Slack Output」を選択して「Launch new output」をクリックする。

OutputのタイトルやWebHookの投稿URL、チャンネルなどを入力してSaveする。

4.Slackにアラートを投げる

一通り設定が終わったら、Streamsのトップ画面から対象のstreamを起動させる。

streamが起動したら、loggerなどで対象のキーワードを持つログをはかせてみよう。

[root@BS-PUB-CENT7-02 ~]# logger error

確かに、Slackにちゃんとアラートが上がってきた。
今回は簡単な設定しかしていないが、いろいろと細かく設定もできるみたいなので、実運用でも問題なく使えそうだ。