環境
- Mattermost 5.11.0
- Zabbix 4.2.4
手順
1. Incoming Webhook生成
Mattermostのメニューより Integrations > Incoming Webhook > Add Incoming Webhook
を選択。
Channelは通知したいチャンネルを選択し、それ以外は任意。
設定後に生成されるURLを控えておく。
2. Zabbixサーバに通知用スクリプトを設置
ここでは https://github.com/jirouette/zabbix-mattermost-alertscript を利用する。
/etc/zabbix/zabbix_server.conf
の AlertScriptsPath=
に設定されているパスの直下に、上記スクリプト mattermost.py を設置する。
内容は、以下のように一部書き換える。
- URL
- 手順1にて生成したURL
- ICON
- 通知時に表示したいiconのURL
また、パーミッションを以下のコマンドで変更する。
sudo chown root:root mattermost.py
sudo chmod 755 mattermost.py
変更後、以下のコマンドでMattermostに通知が飛ぶかを確認する。#alerts
は通知するChannelを指定する。
python mattermost.py '#alerts' PROBLEM 'Oh no! Something is wrong!'
3. Media Type 生成
Zabbixのコンソールより Administration > Media types > Create media type
を選択し、以下のように入力。
4. User 生成
Administration > Users
より、新規あるいは既存ユーザを選択し、Mediaへ以下の内容を追加する。
ただし、Send toには手順1にて設定したChannelを指定する。
以下、Mediaを設定したユーザ名を Admin
とする。
5. Action 追加
Configuration > Actions > Create action
より、以下の内容を追加。
Action
Operations
Default subjectは [Problem: {EVENT.NAME} | {HOST.NAME}](https://SERVER_NAME/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID})
と指定することで、アラート詳細へのリンクを張ることが可能。
Recovery operations
Default subjectはOperationsと同様。
6. 挙動確認
確実にアラートが発生するTriggerを追加、もしくは適当に yes > /dev/null
などを実行して負荷を上げ、アラートを発生させる。
Monitoring > Problems
にアラートが表示され、Actions columnに数字が表示されていればZabbix側の設定は成功している。
Mattermostに通知が飛んでいることを確認する。
補足 エラーメッセージ設定時に使用可能なマクロ
{EVENT.NAME}
や {HOST.NAME}
など、アラートに応じて内容を変化させるマクロが存在する。
マクロ一覧は以下を参照。
https://www.zabbix.com/documentation/4.2/manual/appendix/macros/supported_by_location