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 連携もご利用ください。
以上
ご清聴ありがとうございました。