Zabbix + Reactio 連携
概要
Reactio の無料化によりその機能が解放され、様々な監視・アラートツールとの連携が可能になりました。
これを機に Zabbix + Reactio 連携したのでまとめました。
環境
- Zabbix 3.0
 - CentOS Linux release 7.2.1511 (Core)
 
Zabbix 3.0 がインストールされ起動されていることを前提とします。
Zabbix 管理画面で Host 設定
※既に設定されている場合はスキップしてください。
Configuration > Hosts > create
- Host name: Project1
 
Reactio プロジェクト作成
プロジェクト毎にインシデントを管理します。
https://<Organization ID>.reactio.jp/settings/project
Zabbix 管理画面で設定している Host 名を Project 名とします。
Reactio API 発行
プロジェクト作成ページと同ページ内にある API 項目の 「+」ボタンクリックし API KEY 発行します。
zabbix-reactio インストール
1  | $ cd /usr/lib/zabbix/alertscripts  | 
Zabbix DB 情報 と Reactio で作成した Project と 発行した API KEY を設定ファイルに設定
1  | $ cd /usr/lib/zabbix/alertscripts/zabbix-reactio  | 
- db_info に DB 情報設定
 <Organization ID>設定- Project = API KEY 設定
 
1  | [db_info]  | 
DB カラム追加
- Zabbix alerts テーブルに Reactio Incident ID カラムを追加します。
 
1  | $ cd /usr/lib/zabbix/alertscripts/zabbix-reactio  | 
Reacito では全てのインシデントは ID で管理されています。
Zabbix で障害アラート通知時に Reactio インシデント作成 API をコールし インシデント ID を保存します。このインシデント ID は Zabbix で障害回復アラート通知時に Reatio インシデントステータス更新 API をコールする際に利用します。
Zabbix Media types: Reactio 作成
Administration > Media types Create media type ボタンクリック
以下値を入力し Add ボタンクリック
| Item | Value | 
|---|---|
| Name | Reactio | 
| Type | Script | 
| Script name | zabbix-reactio/reactio.php | 
| Script Parameters 1 | {ALERT.SUBJECT} | 
| Script Parameters 2 | {ALERT.MESSAGE} | 
Zabbix Users: Reactio 作成
Administration > Users Create media type ボタンクリック
- Reactio ユーザ作成
 
- Media タブをクリックし Media 情報入力
 
- Permission タブをクリックし Zabbix Super Admin 選択
 
- Add ボタン クリックし一覧に表示されることを確認
 
Zabbix Actions: Reactio Notification 作成
Configuration > Actions Create ボタンクリック
- Action タブ選択し Action 情報入力
 
| Item | Value | 
|---|---|
| Name | Reactio Notification | 
| Default subject | PROBLEM alert - {TRIGGER.NAME} is {TRIGGER.STATUS} | 
| Default message | HOST: {HOST.NAME} TRIGGER_NAME: {TRIGGER.NAME} TRIGGER_STATUS: {TRIGGER.STATUS} TRIGGER_SEVERITY: {TRIGGER.SEVERITY} DATETIME: {DATE} / {TIME} ITEM_ID: {ITEM.ID1} ITEM_NAME: {ITEM.NAME1} ITEM_KEY: {ITEM.KEY1} ITEM_VALUE: {ITEM.VALUE1} EVENT_ID: {EVENT.ID} TRIGGER_URL: {TRIGGER.URL}  | 
| Recovery message | チェック | 
| Recovery subject | RECOVERY alert - {TRIGGER.NAME} is {TRIGGER.STATUS} | 
| Recovery message | HOST: {HOST.NAME} TRIGGER_NAME: {TRIGGER.NAME} TRIGGER_STATUS: {TRIGGER.STATUS} TRIGGER_SEVERITY: {TRIGGER.SEVERITY} DATETIME: {DATE} / {TIME} ITEM_ID: {ITEM.ID1} ITEM_NAME: {ITEM.NAME1} ITEM_KEY: {ITEM.KEY1} ITEM_VALUE: {ITEM.VALUE1} EVENT_ID: {EVENT.ID} TRIGGER_URL: {TRIGGER.URL}  | 
| Enabled | チェック | 
以下項目から判断して Reactio API を叩いてます。
- subject の PROBLEM/RECOVERY
 - HOST: {HOST.NAME}
 - EVENT_ID: {EVENT.ID}
 
メッセージを整形する場合でも、 上記項目は残しておくようにしてください。
- Operations タブ選択し Operations 情報入力
 
以上 Zabbix で Reactio 連携設定完了しました。
実行結果
- インシデント作成できた!
 - 作成したインシデントのステータスが更新された!
 
今後
当方、運用し始めです。
障害レベルによってメッセージを変更したりと今後更新検討致します。
是非以下も合わせて Zabbix-Slack 連携もご利用ください。
以上
ご清聴ありがとうございました。
Zabbix + Reactio 連携
https://kenzo0107.github.io/2016/07/13/2016-07-14-zabbix-reactio/
