投稿者:森

こんにちは。私どものAIOps担当では、システム運用を効率化・高度化するため、機械学習の技術を採用した「AIOps」・アプリケーションパフォーマンス管理の「APM」といった製品の、ご提案から構築・導入後の支援まで担当しています。
AIOps担当からは、APM製品である IBM Observability by Instana(以下、Instana) を、ほぼ隔月でご紹介してまいりました。今回の第5回で、2021年度のInstanaご紹介は最後となります。

第5回目では、Instanaの他システムとの連携について、ServiceNowを例にご紹介したいと思います。

  • Instanaで検知したイベント・インシデント(障害情報など)を他システムに連携する。
  • ⇒ Instanaで検出した障害に対して、連携先のシステムで障害の対応状況を管理する場合など。
  • Instanaで収集した各種性能情報を活用する。
  • ⇒ Instanaで収集した各種情報を、他システムへ連携し活用する。例えば障害の予兆検出機能のデータとして活用するなど。

    過去の連載については、以下リンクからご覧いただけます。
    第1弾:APMで監視を高度化。IBM Observability by Instana とは
    ⇒Instanaの特徴・機能についてご紹介
    第2弾:IBM Observability by Instanaの導入と自動構成
    ⇒エージェントの導入と、サーバ間・アプリケーション間の依存関係の検出のご紹介
    第3弾:IBM Observability by Instanaによる障害の検出と分析
    ⇒障害の検出から通知・分析のための機能のご紹介
    第4弾:IBM Observability by Instanaの収集メトリクス
    ⇒Instanaが収集する各種性能情報(メトリクス)のご紹介

    イベント・インシデント(障害情報など)を他システムに連携

    「第3弾:IBM Observability by Instanaによる障害の検出と分析」の連載でご紹介しておりますが、Instana はイベント・インシデントを通知する方式として、Eメールや各種チャットツールへの連携と併せて、Webhookによる通知をサポートしています。Webhook による受信をサポートしている監視ツールとは連携可能となり、ServiceNow も Webhook による受信をサポートしています。下図は Instana からのWebhookを受信処理するユーザーを、ServiceNow上に設定しています。

    Instana_snow04.png

    Instana から ServiceNow へ通知を連携することで、Instana が検出したアプリケーションやサーバの障害をきっかけに、以下のような管理も可能となります。

  • インシデント・イベントの対応を管理
  • ⇒ インシデント・イベントの対応者の通知だけでなく、対応状況の管理が可能。
  • ワークフロー機能との連携
  • ⇒ 障害対応に伴うシステムへの設定変更などを、ワークフロー化することが可能。
  • 障害対応の自動化
  • ⇒ IT Operations Managementの機能により、障害対応を自動化することが可能。
    Instana_snow01.png
    インシデント・イベントを連携することにより、Instana はアプリケーションやサーバの監視・障害検出の機能や、障害発生時には複数の情報から障害を解析する機能を提供する一方で、ServiceNowの特長である、障害対応の履歴管理や柔軟なワークフローの定義の機能を活用することができます。

    収集した各種性能情報を活用

    Instanaでは収集した性能情報(メトリックデータ)を、他のシステムへ連携して活用することも可能です。
    性能情報を連携する方法ですが、Instanaでは各種APIを公開しているため、連携先のシステムからInstana APIを呼び出し、Instanaに保存されているデータを取得する形になります。
    InstanaがAPIで提供する機能は、下記のドキュメントに詳しく記載されています。
    https://instana.github.io/openapi/

    簡単にご紹介するだけでも、以下のような情報が連携可能です。

  • インフラストラクチャのメトリックデータ
  •  ⇒ CPU・メモリといったサーバ等の性能情報
  • アプリケーション(各種ソフトウェア)のメトリックデータ
  •  ⇒ 各種ソフトウェア(DBであれば参照・書き込みなど)の性能情報
  • Webサイトのメトリックデータ
  •  ⇒ Webサイトのアクセス数やエラー発生するなどの情報

    「第4弾:IBM Observability by Instanaの収集メトリクス」の連載でご紹介している、各種メトリックデータが連携可能と考えて頂いてよいでしょう。
    余談ではありますが、Instana APIでは各種データの取得だけではなく、Instanaの設定(ユーザ・グループの管理など)を行うAPI、サーバに導入したAgentの設定を変更するAPIも用意されています。
    Ansibleなどの構成管理ツールとInstana APIを連携して、設定の自動化なども行えると思います。

    Instanaで収集しているWebサイトのメトリックデータを連携し、ServiceNowでデータ分析を行うケースを例にしてみます。

    ServiceNow が標準で連携をサポートするソフトウェア(Zabbixなど)では、コネクターとよばれる連携機能が標準提供されていますが、残念ながらInstana は標準で連携をサポートするソフトウェアには含まれません。ただし、JavaScriptでカスタムコネクターを作成することが可能なため、JavaScriptのスキルがありInstana APIの仕様を理解できれば連携そのものは難しくありません。下図は Instana API を定期的に呼び出し、データを連携するためのカスタムコネクターを、ServiceNow上に設定しています。

    Instana_snow05.png

    カスタムコネクターのJavaScriptは、MIDサーバと呼ばれるクラウドサービスであるServiceNowと、ServiceNowによる監視対象のサーバ・ネットワークの中継サーバ上で実行されます。

    Instana_snow02.png
    InstanaのAPIは収集した情報をそのまま取り出すだけでなく、データを加工して取り出すことも可能です。Instanaのメトリックデータは基本的に1秒間隔で取得されていますが、外部のシステムへ連携するデータは5分間隔の平均値/最大値/最小値で取得するといったことも可能です。

    ServiceNowには「Operational Intelligence」という、収集したデータを機械学習に基づき分析し、将来の値の予測や異常値を検出する機能があります。
    https://docs.servicenow.com/bundle/paris-it-operations-management/page/product/event-management/concept/operational-intelligence-overview.html
    他社製品では予兆検知やAIによる異常検知とも呼ばれる機能になります。

    今回は Instana が取得している、Webサイトの表示にかかった時間(onLoadTime)のデータを連携し、予兆検知してみました。 Instana_snow03.png 青色の折れ線グラフが Instana から取得している Webサイトの表示にかかった時間(onLoadTime)のデータ、虹色の折れ線グラフが Operational Intelligence により、正常・異常の判定(例外スコア)になります。このデータを取得した検証環境ではWebサイトへのアクセス数が少なく、データのサンプル数の絶対量が少ないため少し歪なグラフとなってはいますが、Webサイトの表示にかかった時間が「ゼロ」である部分や、通常より時間がかかっている部分を異常として検知していることが見て取れます。

    今回の例では、Webサイトの表示にかかった時間(onLoadTime)のデータのみを用いていますが、先にあげたように Instana が取得している各種メトリックデータをAPIから読み込むことが可能となっているため、Webサイトに関するデータだけでなく、各種アプリケーションやサーバ機器の性能情報を連携し、複数のデータを用いた予兆検出といったようなことも可能となります。

    まとめ

    過去の連載ではInstana が従来のインフラ監視とは違って、サービス利用者の体験(UX)やサービスの品質に関する性能情報を取得したり監視ができる、という特長をご紹介してきました。一方で、発生した障害の対応状況の管理、障害対応の自動化、構成管理・変更管理・ワークフローといった面では、他の製品に一日の長があります。
    また新たに Instana(APM) を導入してアプリケーションやサービスの品質を監視しようと取り組まれる場合でも、システム監視や障害管理・構成管理は既存の監視システムやIT資産管理システムで運用中ということもあるかと思います。
    そういったケースでも、Instana(APM)を追加導入いただき既存のシステムと連携することで、お互いの機能を補完したり取得したデータを活用いただけることをご紹介しました。

    最後に5回の連載をお読みいただきありがとうございました。AIOps担当ではAPM製品であるInstanaだけでなく、運用の高度化・自動化を実現するための各種製品を取り扱っております。またの機会にAIOpsを実現するための製品をご紹介できればと考えております。