TECH PLAY

JavaScript

イベント

マガジン

技術ブログ

こんにちは!SCSKの新沼です。 今回は、ZabbixとServiceNowの連携の検証として、Zabbixの障害通知をServiceNowのインシデントとして自動起票・クローズ連携する方法をご紹介します。 1. 検証の概要 今回の検証では、以下の2点をゴールとして実装・確認を行いました。 Zabbixで障害発生時に、Webhookで、ServiceNowにインシデントが自動起票される Zabbixで障害クローズ時に、Webhookで、ServiceNowの対象インシデントのステータスを解決済みに更新する 検証環境のアーキテクチャ セキュリティ要件を考慮し、セキュアな環境をAWS上で再現しています。 Zabbixサーバ:  AWS EC2上に構築し、外部からの直接アクセスが不可なプライベートサブネットに配置 通信経路: Zabbixからのアウトバウンド通信は、NAT Gatewayを経由してServiceNowへ送信 2. Zabbix → ServiceNow連携の仕組み Zabbixの標準機能である「Webhook(メディアタイプ)」を使用します。 Zabbixがアラートを検知すると、JavaScriptで記述されたWebhookスクリプトが実行され、ServiceNowのREST APIに対してJSON形式でPOSTリクエストを送信する仕組みです。 回復時も同様に、起票時と同じインシデントIDをキーにして、ServiceNow側のステータスを自動更新(解決済みに変更)します。 3. 実装手順(Zabbix側の設定) ServiceNow側でAPI接続用のユーザーが作成されている前提で、Zabbix側の設定を進めます。 Step1: メディアタイプ(Webhook)の設定 Zabbixの [通知] > [メディアタイプ] から、ServiceNow連携用のWebhookを作成します。 ※Zabbix7.0には、ServiceNowのメディアタイプが標準で用意されているため、本検証ではそちらを利用します。 主要なパラメータ設定: snow_url :  https://<あなたのSNOWインスタンス>.service-now.com/ snow_user : API接続用ユーザー名 snow_password : API接続用パスワード   【POINT】クローズ連携(ステータス変更)を実現するには Zabbix標準のWebhookテンプレートを使用するだけでインシデントの「自動起票」は簡単に実現できます。 しかし、障害回復時にServiceNowのステータスを正しく「解決済み」へ変更・更新するためには、 ご利用のServiceNow環境(必須項目やステータス定義等)に合わせたスクリプトのカスタマイズ が必要です。 弊社では、この連携スクリプトのカスタマイズやエラー回避のノウハウを蓄積しております。「既存環境でクローズ連携がうまくいかない」「新規チケットが発行されてしまう」とお困りの方は、ぜひSCSKまでお問い合わせください。 Step2: ユーザーへのメディア割り当て 通知を実行するZabbixユーザーに対し、作成したServiceNowのメディアを割り当てます。 本検証では、「Admin」ユーザーに対して、先ほど作成したServiceNowのメディアを割り当てます。 ・[ユーザー]>[ユーザー]から、「Admin」ユーザーを選択して、[メディア]タブを選択。 ・[追加]から、タイプを先ほど作成したServiceNowを選択して、送信先にServiceNowインスタンスのURLを入力。 ・[有効]にチェックをいれて、[追加]をクリック。 ・ 最後に、[更新]を忘れずにクリック。 Step3: アクションの設定 障害発生時と回復時に、対象ユーザーに対してWebhookを発行するための「アクション」を設定します。 「実行内容(障害発生時)」と「復旧時の実行内容(障害回復時)」の両方に、ServiceNowへの通知処理を組み込むのがポイントです。 ・[通知]>[アクション]>[トリガーアクション]で、[アクションの作成]をクリック。 ・[アクション]タブで、アクション名と、実行条件を入力。 ※実行条件は、本検証では、設定しない。 ・[実行内容]タブで、[実行内容]の追加をクリック。 ・[ユーザーに送信]にAdminを選択、[送信のメディアタイプ]に、ServiceNowを選択して、[追加]をクリック。 ・[復旧時の実行内容]の追加で、「障害通知送信済みのユーザーすべてにメッセージを送信」を選択して[追加]をクリック。 ・最後に一番下の[追加]をクリック。 4. 実際の動作確認 設定が完了したので、実際に疑似障害を発生させて連携の動きを確認します。 ① Zabbixで障害検知 → ServiceNow起票 検証用ホストのサーバをダウンさせて、Zabbix側でアラートを発生させます。 この時、障害画面の右側の3つのタグの真ん中に、インシデント番号が発行されます。 Zabbixの障害画面からServiceNowに確認しにいきます。 先ほど発行されたインシデント番号を、ServiceNow側で検索してみると、、、 無事にインシデントが自動起票されました。 ② Zabbixで障害回復 → ServiceNowクローズ(解決済み) 続いて、サーバを起動させて、Zabbix側の障害を回復させます。Zabbix側ではステータスが「解決済」になります。 この回復アクションをトリガーにして再度Webhookが送信され、ServiceNow側のインシデントも連動して更新されます。 Zabbixのステータス変更に合わせて、ServiceNowのインシデントも自動でクローズされました。 ※前述の通り、このようにServiceNow側でクローズへのステータス更新を正常に行うには、環境に合わせたスクリプトのカスタマイズが必要になります。 おわりに Webhook機能を利用することで、ZabbixからServiceNowへのインシデント起票が簡単に実装できることによって、マルチなサービスを活用した監視運用が可能になります。 次回は、「Zabbix×ServiceNow検証② -MIDサーバを配置してSNOW→Zabbixへのセキュアな通信-」です。 外部通信が不可な状態の環境に対して、ServiceNowからZabbixへの通信を「MIDサーバ」を用いて実現する方法をご紹介します。                                                                 弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。 ★SCSK Plus サポート for Zabbix★ SCSK Plus サポート for Zabbix 世界で最も人気のあるオープンソース統合監視ツール「Zabbix」の導入構築から運用保守までSCSKが強力にサポートします。 www.scsk.jp ★YouTubeに、SCSK Zabbixチャンネルを開設しました!★ SCSK Zabbixチャンネル SCSK Zabbixチャンネルでは、Zabbixのトレンドや実際の導入事例を動画で解説。明日から使える実践的な操作ナレッジも提供しており、監視業務の効率化に役立つヒントが満載です。 最新のトピックについては、リンクの弊社HPもしくはXアカ... www.youtube.com ★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★ https://x.com/SCSK_Zabbix x.com
1. はじめに 今回は、MCP 初心者が MCP サーバを試してみて考えたこと・気づいたことを紹介しようと思います。 MCP は概要だけ知っていたものの今まで使ったことがなかったのですが、GitHub Copilot(筆者は VS Code で利用)の Agent モードを活用すれば簡単に環境を作って試せるのではないかと思いつきました。 そこで、馴染みのないツールの MCP サーバでも手軽に試すことができたら良いなと思い、初めて触る Playwright を用いて UI/UX レビュー&修正のサイクルを自動化させてみました。 なお、この試みの中で私は1行もコードやプロンプトは
1. はじめに 突然ですが、VS Codeの拡張機能を作ったことはあるでしょうか。 今まで私は、何か難しそうだという理由から、全く作ろうと考えていませんでしたが、生成AIの進歩によってお手軽に作れることを知って、最近いくつか試しに作っています。 今回は、「VS Code の Webview でどこまで動くのか?」 という疑問から、VS Code 拡張機能の描画性能について着目し、ごく簡単にではありますが、Web ブラウザの場合との比較検証をテトリスを動かすことで実施してみました。 また、VS Code標準のUIではなく、描画の自由度がより高いWebview[1]を使うことにしました。

動画

書籍