Zabbixには情報を伝えるメディアとしてmailの他にslack、Rocket.Chat、Redmineとかも使える.
ここでは Zabbix から slack を経由して利用者に通視させるようにしてみたいと思う
参照先
https://www.zabbix.com/integrations/slack
様
https://qiita.com/Higemal/items/f0bc18bf66e54628b22a
様
ブラウザでslackにログインして、https://api.slack.com/apps
にアクセスします
下記画面になりますが、ここで「Create an App」をクリックします

「Create an app」画面が表示され、ここの「From scratch」をクリックします

次に表示された「Name app & choose workspace」にて
「App Name」にはBot名、ここでは「zabbix_bot」と定義
「Pick a workspace to develop your app in:」はプルダウンで選べる参加しているslackのワークスペース名を指定します. 「Create App」を押下します.
「abc.slack.com」の「abc」に該当する部分

次に作ったAPI画面に移り、左メニューの「OAuth & Permissions」リンクをクリックします

右側には「OAuth & Permissions」の設定項目が表示されます。それを下段にスクロールします

下段にスクロールして「Scopes」セクションにて「Bot Token Scopes」欄にある「Add on OAuth Scope」ボタンを押下します.

リストが現れるが、ここで「chat:write」「im:write」「groups:write」の三つを選びます. 「Add on OAuth Scope」をクリックして表示されたメニューから1つ選び、それを三回行います

選び終えたら、上段側へスクロールして、「OAuth Tokens for Youe Workspace」セクションにある「Install to Workspace」ボタンを押下します.

画面が変わって確認ページが表示されます. ここで「許可する」をクリックします.

この段階でSlack画面の左メニューに「App」フォルダが用意されます.

Slackの画面内で「+チャンネルを追加する」をクリックして、メニューから「新しいチャンネルを作成する」を選ぶ

現れた「チェンネルを作成する」で名前は「zabbix」、説明は「zabbixからのお知らせ」とかにして「作成」を押下します

作成する「#zabbix」チャンネルへの参加ユーザを決めるのですが、zabbixの利用者あるいは全員を追加します.

Slackの画面でチャンネルが増えました. 次に、このチャンネルとAppを繋げます. 作った「# zabbix」を選択して、右クリックから「チャンネル詳細を開く」を選択します

開いた「# zabbix」から「インテグレーション」タグを選択して、「App」欄から「アプリを追加する」を選びます

画面が変更して「# zabbix にアプリを追加する」画面から「ワークスペース内で(1)」の「zabbix_bot」の左にある「追加」ボタンを押下します

これで slack 側の設定は完了みたい.
slackのチャンネルはワークスペースを作った本人が削除、名称変更できる
設定箇所は [管理]->[メディアタイプ] で、「Slack」をクリックします

メディアタイプの名前を「Slack」から「Slack-zabbix-bot」にして、画面下部の「複製」ボタンを押下します

その後に画面下部の「追加」ボタンを押下します.
これでメディアタイプに「Slack-zabbix-bot」が追加されました. 既存の「Slack」項目をテンプレートとして汚した良くないので

この新しく作ったメディアタイプ「Slack-zabbix-bot」を設定します.
必要なのは「bot_token」の値. この値は slack APIサイトから得られます.
skackにログインしたままhttps://api.slack.com/apps
にアクセスします
すると先ほど作ったAppの「zabbix_bot」がある. これをクリックします.

メニューが「zabbix-bot」Appに移り、左メニューから「OAuth & Permissions」を選択します. そうするとその左側に
必要なTokenが表示されます. これをコピーします.

zabbixの画面に戻り、先ほどコピーしたTokenを「zabbix_bot」に記載して、画面下部の「更新」ボタンを押下します

メディアタイプのリストに戻り、作った「Slack-zabbix-bot」のテストを行ってみます. 欄の右側「テスト」をクリックして
bot_tokenは「メディアタイプ」で定義した値が入りますが、その他「channel」はslack内でのチャンネルで定義した「zabbix」で、
あと「event_id」を「1」に、「event_source」も「1」に、そして「zabbix_url」を「http://zabbix/zabbix/」として「テスト」を押下します

すると、slackの「# zabbix」チャンネルに下図のような表示が入ります

一応これで連携はできたと.
どうも「bot_token」だけではダメなようで、規定値として
event_idの{EVENT.ID}を「1」へ
event_sourceの{EVENT.SOURCE}も「1」へ
zabbix_urlの{$ZABBIX.URL}を「http://zabbix/zabbix/」
event_nseverity/{EVENT.NSEVERITY}を1
event_tags/{EVENT.TAGSJSON}を1
event_update_status/{EVENT.UPDATE.STATUS}を1
event_value/{EVENT.VALUE}を1
trigger_id/{TRIGGER.ID}を1
に変更
Zabbix/sample1の想定のようにAdminのみしかいないとして、[管理]->[ユーザ]にてAdminの「メディア」を修正します.
既存の内容は削除して、新に追加でタイプは「Slack-zabbix-bot」、連絡先はslackのチャンネルのようなので「zabbix」とします

[設定]->[アクション]->[トリガーアクション]で定義していた「テストアクション」を修正して実行内容で
メディアを「Slack-zabbix-bot」に変更した.

結果トリガーアクションは下記のようになった

その上で監視対象のノードをshutdownしてみた.
こんな感じでメッセージが届く

文章のフォーマットは[管理]->[メディアタイプ]の「Slack-zabbix-bot」内「メッセージテンプレート」で変更可能っぽい