この記事はSRA Advent Calendar 2019の19日目の記事です。
良いネタがあったので投稿することにしました。
2019年10月7日に Zabbix 4.4 がリリースされました。
https://www.zabbix.com/whats_new_4_4
4.4 では Zabbix Agent 2 の登場や TimescaleDB の正式サポートなど
様々な機能追加がありました。
4.4 に関する新規機能等のリリース情報は検索していただけたら、
沢山出てくると思うのでぜひ検索してみてください。
今回は 4.4 から新しくメディアタイプに追加された、
「webhook」を使った Redmine との連携について紹介していきたいと思います。
webhook
まず最初に webhook とは何かを簡単に説明すると、
何かのイベント発生時に指定した URL に Post リクエストを送信する仕組みのことです。
(本当に簡潔すぎてごめんなさい)
今まで Zabbix で障害検知後に Slack や Redmine に通知を送るには少し手間が必要でしたが、
今回メディアタイプに webhook が追加されたことによって、それらへの通知がより簡単になりました。
設定手順
OS : CentOS 7.7
Zabbix 4.4.1 (Server, Agent 共に)
Redmine API を有効可
[管理] → [設定] → [API] の 「RESTによるWebサービスを有効にする」
にチェックを入れる。
次にZabbix 側の設定をします。
チケット登録用のメディアを作ります。
tracker id を 確認する際は
xxx.xxx.xxx.xxx/redmine/trackers.xml
で確認することができます。
API アクセスキーは個人設定の右側で確認することができます。
ちなみに Include event menu entry にチェックを入れておくと
障害のイベントメニューから指定した URL にリンクできるようになります。
チケットを登録したら Zabbix 側には endpoint タグ と ticket_id タグが付きます。
endpoint タグは Redmine が、ticket_id タグには Redmine 側で自動採番された id が設定されます。
最後にアクションの実行内容にメディアに先ほど作成した「Redmine create ticket」を、
復旧時の実行内容に「Redmine resolve ticket」を指定します。
実際に動かしてみる
障害を発生させます。
そうすると Redmine 側にチケットを登録
障害を手動クローズします。
チケットに復旧時の内容が記載され、チケットがクローズ(解決)します。
以上が Zabbix 4.4 と Redmine の連携手順の紹介となります。