Zabbix通知(Slack)

## 初めに
最近，サーバにアクセスできないことが多いので監視をすることにしました．監視ソフトウェアはZabbixを選択してみました．理由はUIで設定ができるので楽だと思ったからです．Slackに通知する作業で意外と苦戦したのでここに載せておきます．

## 構築
構築したZabbixでSlackにアラートを出します．なおZabbixサーバはKubernetes上に構築します．構築は以下の記事を参考に行いました．
https://blog.tsuchinokometal.com/2021/zabbix_k8s/



今後の作業はSlack側とZabbix側に分かれます．

## Slack側の作業

Slack側の作業ではSlackのアプリケーションを新たに作成し，アラートを通知できるようにします．

ますは以下のリンクにアクセスしましょう！
https://api.slack.com/apps

アクセスできたら[Create New App]を選択します．
![スクリーンショット 2023-11-24 16.52.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/b011fe82-abf5-8186-1592-a3806feb1561.png)

そこから[From scratch]を選択
![スクリーンショット 2023-11-24 16.51.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/7b7b9854-2fed-6b14-c4f3-df45e3d02ecd.png)


[App Name]はアプリケーション自体の名前です．[Pick a workspace to develop your app in:]でアプリケーションを適応させるworkspaceを選択します．
![スクリーンショット 2023-11-24 16.57.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/9addbb96-9bc1-1166-3ae6-d616d1c345f2.png)

作成できたら先にアプリケーションの権限設定を行います．[OAuth & Permissions]を選択します．
![スクリーンショット 2023-11-24 17.02.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/193e9ef2-6a01-8c54-6809-7d1fa38c91fc.png)

[Add an OAuth Scope]からchat:write, im:write, groups:writeの3つを選択します．

![スクリーンショット 2023-11-24 17.04.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/feea78df-0dbd-da37-74c3-3ac24b007d0e.png)

権限の設定ができたら[Install App]からアプリのインストールをします．
![スクリーンショット 2023-11-24 17.14.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/a3e6180f-aea4-5b98-d29b-200752304d61.png)

そうしたら許可をして完成です．
![スクリーンショット 2023-11-24 17.16.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/79e39be3-bc1f-43ad-c9ef-1d8e778d70af.png)

インストール後に[Bot User OAuth Token]が生成されます．これを大事に保管しておいてください．後で使います．

![スクリーンショット 2023-11-24 17.18.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/64b7392a-4299-87fe-5bc8-2e00c037ddbb.png)


その後Slackのアプリにアプリケーションが作成されたことを確認して
![スクリーンショット 2023-11-24 17.28.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/673be3d4-209d-7e9b-4b55-6008f9ca6868.png)

アプリケーションの設定からチャンネルにアプリの追加を行います．
![スクリーンショット 2023-11-24 17.30.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/10d57344-fe68-ed0a-891b-6af3240f0c84.png)

アプリを配置したいチャンネルを選択し，[追加]を選択します．
![スクリーンショット 2023-11-24 17.32.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/2f91135b-7591-4ae7-d52c-280fd8a5f6cd.png)

これで準備完了です！



## Zabbix側の作業

Slackに対して通知を行う設定ができたのであとはSlackで通知を送るだけです．


基本的にZabbixはメディアタイプの中にアラートを送るアプリケーションが複数入っています．[Slack]を選択します．
![スクリーンショット 2023-11-24 17.41.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/08ca3d54-f99e-31e7-a911-9f14ed70404f.png)


その後以下のような画面が表示されると思います．ここで設定値を入れ込むことでSlackに通知を送ることができます．
![スクリーンショット 2023-11-24 17.43.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/e6af90c7-42eb-91ab-0162-d33e8ed7854e.png)

設定値を入れ込まないといけないのが以下の箇所です．
- bot_token: [先ほどSlackで取得したトークン(xoxb)から始まる．]
- channel: [送りたいチャンネル名]
- event_id: [1]
- event_nseverity: [1]
- event_source: [1]
- event_update_status: [1]
- event_value: [1]
- trigger_id: [1]
- zabbix_url: [zabbixサーバのURL]

[更新]を押せば完了です．


## 通知テスト

最後にアラートが通知されるかを確認します．

[メディアタイプ]の横にある[テスト]を選択

以下の画面が出ると思うので[テスト]を選択します．
![スクリーンショット 2023-11-24 17.56.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/7063a0be-b1c7-9b0a-5a62-491554eb19eb.png)


Slackのアプリを見てみましょう！


![スクリーンショット 2023-11-24 17.58.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747698/b9d74a78-1559-cd2f-55b2-5012538fc57c.png)

ちゃんと通知が来ていますね！


## 最後に
監視を行う際にアラートはシステムの管理を行う担当者に異常を教えてくれます．今後は実際の監視ででたデータを元にアラートを出すようにしてみます！