【Zabbix × ServiceNow検証②】MIDサーバを利用してServiceNowからZabbixの障害をクローズする方法

お疲れ様です。SCSKの新沼です。

今回は、前回に続いてZabbixとServiceNowの連携について検証したいと思います。
前回のブログ(ZabbixからServiceNowへの自動起票編)をまだ読んでいない方は、ぜひこちらからご覧ください!
【Zabbix × ServiceNow検証①】Zabbixの障害通知をServiceNowのインシデントとして自動起票・クローズ連携する方法

前回の検証では、Zabbixで検知したアラートをServiceNowのインシデントとして自動起票させる「情報の集約」を実現しました。しかし、実際の運用現場では、情報の通知だけでなく、「ServiceNow側で対応を終えたら、自動的にZabbixのアラートも消えてほしい」という、双方向の同期が求められます。

今回は、ネットワーク的な制約をクリアしつつ、この「双方向連携」をどう実現したか、詳しく解説していきます。


1. 検証の概要

前回のブログでは、Zabbix → ServiceNowへの連携として、以下2点を実装いたしました。

  • Zabbixで障害発生時に、WebhookでServiceNowにインシデントが自動起票される
  • Zabbixで障害クローズ時に、WebhookでServiceNowの対象インシデントのステータスを「解決済み」に更新する

今回の検証目的は、MIDサーバを利用して、ServiceNow → Zabbixのセキュアな通信(逆方向の連携)を実装することです。

ゴールとしては、以下の動作を実装・確認しました。

  • ServiceNowでインシデントを「解決済み」にした際、自動的にZabbix APIを実行して対象の障害をクローズ(確認済みに)する

これにより、運用担当者が複数の画面を行き来することなく、ServiceNow側の操作のみで監視情報の管理を完結できる仕組みを目指します。


2. 検証環境のアーキテクチャ

本検証では、ZabbixサーバはAWS上のプライベートサブネット内に配置されており、セキュリティの観点からインターネット(外部)からの直接的な通信はすべて遮断されています。一方、クラウドサービスであるServiceNowから見ると、この閉域環境にあるZabbixは「住所はわかるが、たどり着けない場所」にあります。

ここで活躍するのが、ServiceNowが提供するMIDサーバ(Management, Instrumentation, and Discovery Server)です。

構成図の通り、MIDサーバをZabbixと同じプライベートサブネット内に配置します。このMIDサーバは、自分からServiceNowに対して「何か命令はありますか?」と定期的に確認に行く(ポーリングを行う)という挙動をします。つまり、通信の起点は常に内部(プライベート側)からとなるため、ファイアウォールのインバウンド設定を緩和することなく、セキュアにServiceNowからの指示を受け取ることが可能になるのです。


3. 実装内容

それでは、実装内容を解説します。本検証では、ServiceNowの「Flow Designer」や「RESTメッセージ」といった標準機能を最大限に活用し、MIDサーバを経由させるための作り込みを行いました。

① MIDサーバのセットアップと検証

まずは、AWSのプライベートサブネット内にMIDサーバ用のLinuxインスタンスを用意しました。
MIDサーバのインストールは、ServiceNowのコンソールから「MIDサーバー」>「ダウンロード」でダウンロードしてください。
インストール方法の詳細は、「MIDサーバー」>「インストール方法について」をご参照ください。

  • JREのインストール: MIDサーバの稼働にはJava環境が必要なため、適切なバージョンのOpenJDKをセットアップします。
  • インストーラーの実行: ServiceNowインスタンスからダウンロードしたMIDサーバ用ファイルを解凍し、接続先URLや認証情報を設定します。
  • バリデーション: ServiceNowの管理画面から、MIDサーバが「Up」の状態になり、さらに「Validated(承認済み)」となるまで確認します。この状態になって初めて、ServiceNowからのリクエストを代行できるようになります。

② RESTメッセージの定義(Zabbix APIの設定)

ServiceNowからZabbix API(JSON-RPC)を呼び出すためのテンプレートを作成します。

  • エンドポイント: http://<Zabbixサーバ内部IP>/zabbix/api_jsonrpc.php を設定します。
  • メソッド: 今回は障害をクローズ(確認済み)にするため、event.acknowledge メソッドを使用します。
  • MIDサーバの指定: RESTメッセージ設定内の「MID Server」項目で、先ほど構築したMIDサーバを指定します。

③ Zabbix API実行用のペイロード(JSON)設計

ZabbixのAPIに渡すJSONデータには、以下の情報が含まれるようパラメータ化しました。

  • eventids: どの障害を閉じるか(前回、ServiceNow起票時にレコードに保存しておいたEvent IDを使用)
  • action: 6(「確認」および「障害のクローズ」を意味するフラグ)
  • message: 「ServiceNow側で解決されたため自動クローズ」といったコメント

④ Flow Designer による自動化ロジックの構築

「インシデントが解決されたらAPIを実行」という動きを、ServiceNowのノーコード/ローコード開発機能である Flow Designer で実装しました。

  1. Trigger: インシデント(incident)テーブルの「状態(State)」が「解決済み(Resolved)」に変わったとき。
  2. Action: 先ほど作成したRESTメッセージを呼び出す。
  3. Data Mapping: インシデントレコード内に保持されている「Zabbix Event ID」をAPIの引数として渡すように紐付けます。

 

実装の詳細はSCSKまで

本記事では概要をご紹介していますが、実際の環境構築においては、RESTメッセージの詳細なパラメータ設計や、Flow Designerでのエラーハンドリング、さらにはセキュアな認証情報の管理など、一筋縄ではいかない「特別な設定」が数多く存在します。
弊社には、数多くの検証と実案件で培ったServiceNow実装のノウハウが豊富にございます。

  • 「自社の閉域環境でも同様の自動化を実現したい」
  • 「詳細な設定手順やベストプラクティスを知りたい」

このような課題をお持ちの方は、ぜひお気軽にSCSKまでご相談ください。


4. 実際の動作確認

設定が完了したので、実際に期待通りの動作をするか確認しました。
Zabbix側でのメディアタイプ等の設定は、冒頭にある前回ブログをご参照ください。

 

1. Zabbixで障害を確認

Zabbixで、障害を確認して、インシデント番号を記録して、ServiceNowで検索します。

2. ServiceNowでインシデントを「解決済み」に変更

Zabbixからのアラートにより起票された、調査中のインシデントを開きます。 対応が完了した想定で、ステータスを「解決済み」に変更し、「解決情報」にメモを入力して保存します。

この瞬間、裏側ではMIDサーバを介してZabbixへのAPIリクエストが投げられます。

3. Zabbix側の障害が自動でクローズされていることを確認

Zabbixのダッシュボードを確認します。

画像のように、プライベートネットワーク内にあるZabbixに対し、インターネット越しのServiceNowから一切の直接アクセスを許さず、クローズ連携が成功しました!


おわりに

全2回にわたり、ZabbixとServiceNowの双方向連携について検証してきました。

今回のMIDサーバを活用した手法は、Zabbixに限らず、オンプレミスや閉域クラウド環境にあるあらゆるシステムとServiceNowをセキュアに繋ぐための手法です。

監視情報の同期を自動化することで、オペレーターが複数の画面を操作する手間が省けるだけでなく、人的なクローズ漏れやステータスの不一致といった「運用上のノイズ」を最小限に抑えることが可能です。

最後までお読みいただき、ありがとうございました。

 

                                                             

弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。

★SCSK Plus サポート for Zabbix★

SCSK Plus サポート for Zabbix
世界で最も人気のあるオープンソース統合監視ツール「Zabbix」の導入構築から運用保守までSCSKが強力にサポートします。

★YouTubeに、SCSK Zabbixチャンネルを開設しました!★

SCSK Zabbixチャンネル
SCSK Zabbixチャンネルでは、Zabbixのトレンドや実際の導入事例を動画で解説。明日から使える実践的な操作ナレッジも提供しており、監視業務の効率化に役立つヒントが満載です。 最新のトピックについては、リンクの弊社HPもしくはXアカ...

★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★

https://x.com/SCSK_Zabbix
×
タイトルとURLをコピーしました