初めに
最近,サーバにアクセスできないことが多いので監視をすることにしました.監視ソフトウェアは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]を選択します.
[App Name]はアプリケーション自体の名前です.[Pick a workspace to develop your app in:]でアプリケーションを適応させるworkspaceを選択します.
作成できたら先にアプリケーションの権限設定を行います.[OAuth & Permissions]を選択します.
[Add an OAuth Scope]からchat:write, im:write, groups:writeの3つを選択します.
権限の設定ができたら[Install App]からアプリのインストールをします.
インストール後に[Bot User OAuth Token]が生成されます.これを大事に保管しておいてください.後で使います.
その後Slackのアプリにアプリケーションが作成されたことを確認して
アプリケーションの設定からチャンネルにアプリの追加を行います.
アプリを配置したいチャンネルを選択し,[追加]を選択します.
これで準備完了です!
Zabbix側の作業
Slackに対して通知を行う設定ができたのであとはSlackで通知を送るだけです.
基本的にZabbixはメディアタイプの中にアラートを送るアプリケーションが複数入っています.[Slack]を選択します.
その後以下のような画面が表示されると思います.ここで設定値を入れ込むことでSlackに通知を送ることができます.
設定値を入れ込まないといけないのが以下の箇所です.
- 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]
[更新]を押せば完了です.
通知テスト
最後にアラートが通知されるかを確認します.
[メディアタイプ]の横にある[テスト]を選択
Slackのアプリを見てみましょう!
ちゃんと通知が来ていますね!
最後に
監視を行う際にアラートはシステムの管理を行う担当者に異常を教えてくれます.今後は実際の監視ででたデータを元にアラートを出すようにしてみます!