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