REST API監視

REST API監視はAPIの応答を定期的に確認し、その応答で指定した属性値が、所定のXPathや属性名に見つからない場合、アラートを発します。
IPv4/IPv6のデュアルスタック インフラも、Site24x7で監視できます。

REST API監視のパフォーマンスメトリックの詳細は、こちらのページをご確認ください。

目次

REST API監視の追加

REST API監視の追加手順は次のとおりです。

  1. Site24x7にログインします。
  2. [管理]→[インベントリー]→[監視の追加]をクリックします。
  3. [REST API]を選択します。
  4. REST API監視追加画面で、次の情報を指定します。
    • 表示名:監視名を入力します。
    • エンドポイントURL:監視するREST APIエンドポイントURLを入力します。
    • チェック間隔
      監視する間隔(通常、最短1分から最大1日)をドロップダウンから選択します。
      ※ENTERPRISEまたはELITEプランをご利用の場合は、最短10秒を設定できます。

      1分未満のチェック間隔を設定する場合、間隔によって消費するライセンス数が異なります。

      • 30秒:2ベーシック監視ライセンスを消費します
      • 15秒(オンプレミスポーラーからの監視のみ):4ベーシック監視ライセンスを消費します
      • 10秒(オンプレミスポーラーからの監視のみ):6ベーシック監視ライセンスを消費します
    • 接続タイムアウト:対象のサーバーとの接続に設ける時間を指定します。
    • IPv6設定:IPv6有効のWebサイトを監視するには、監視の作成または編集中にトグルボタンで[はい]を選択してください。
      Site24x7では要件に応じて、IPv4とIPv6に対応したインフラを監視します。デフォルトで有効となるプロトコルは、IPv4です。監視のフォームで選択すれば、IPv6インフラも監視できます。
      IPv6を監視フォームで有効にすると、IPv4の監視は無効化されます。
      IPv4とIPv6の双方に対応したサイトを監視する場合は、それぞれ別の監視の設定が必要です。
    • 監視ロケーション:Webサイトの監視元となるロケーションのプロファイルを、ドロップダウンで選択してください。
      詳細は、ロケーションプロファイルを参照ください。
    • 監視グループ:該当する監視グループをドロップダウンから選択すると、複数の監視グループに関連付け可能です。これにより、監視を論理グループにできます。
      監視群に対して、1つの監視グループを作成するには、監視グループを確認してください。
    • 次の監視に依存:監視をドロップダウンから選択し、依存リソースに指定します。依存リソースのステータスがダウンであれば、監視へのアラートは抑止されます。
      依存リソースを設定し、それに基づいてアラートを抑止できます。
      詳細は、監視レベルでのアラーム抑止を参照ください。
      依存リソースに何も設定していない場合、通常設定と同様に、アラートが発生します。この場合、監視には依存リソースがないことになるため、アラート抑止は行われません。
      1つの監視を、異なる監視グループにある複数の依存リソースに関連付けることも可能です。
      通常のステータス確認で、これら依存リソースが1つでもダウンと特定されると、その監視のアラートは自動的に抑止されます。ただし、監視レベルでの依存性設定は、常に、 監視グループレベルでの依存性設定を優先します。
  5. HTTPの設定

    HTTPの設定には、次の情報を指定してください。

    • HTTPメソッド:サイト接続時のメソッドを、post、get、put、delete、patchから指定します。
      post、put、patchのメソッドについては、bodyタイプも設定してください。
    • WebDAV API監視
      WebDAVは、HTTP Webサーバーを通してドキュメントの編集、共有、コピー、移動を行えるようにするプロトコルです。
      現在Site24x7では、WebDAVで用いられる次のHTTPメソッドをサポートしています。

        • PROPFIND
        • PROPPATCH
        • MKCOL
        • COPY
        • MOVE
        • LOCK
        • UNLOCK

      上記メソッドを使用して、次の操作を行えます。

      カレンダーAPI監視:

      CalDAVはWebDAVのカレンダー拡張を行ったもので、リモートサーバー上のカレンダー関係情報のアクセスや管理を行えます。CalDAVではiCalendar形式が使用されています。
      CalDAVを使用して、各機器のカレンダーイベントの取得、新規イベントのスケジュール、リマインダー設定などのデータを同期できます。

      例として、Google CalendarおよびApple Calendarは、それらサービスにCalDAVアクセスを提供しています。

      Contact API監視:

      CardDavはWebDAVにvCard拡張を行ったもので、Webサーバー上のデータにアクセスすることができるアドレス帳クライアントやサーバープロトコルを指します。データにはvCard形式が使用されています。
      CardDAVを使用して、リモートサーバー間で個人情報の取得、保存、管理を行えます。

      例として、Google ContactsおよびiCloud ContactsではCardDAVを使用しています。

      postメソッドでは、URLアクセス時にパラメーターを送出します。postメソッドでは、フォーム、テキスト、XML、JSON形式での送信をサポートしています。
      getメソッドでは、HTML応答全体を取得し設定したキーワードの存在確認に利用できます。
    • パラメータータイプ:GraphQLクエリをエンドポイントに送信したい場合は[GraphQL]を選択します。
    • GraphQLクエリ:GraphQLクエリを入力し、APIサービスに基づくGraphQLからの応答として特定の項目を取得します。
    • GraphQL変数:JSON形式のGraphQLクエリで参照される変数の値を入力します。
      POSTメソッドを選択している場合、リクエストボディにGraphQLクエリおよびGraphQL変数を指定してください。GETメソッドの場合、GraphQLクエリとGraphQL変数はURLパラメーターを通して送信されます。
    • HTTP要求ヘッダー:デフォルトのHTTP要求ヘッダーを編集する場合は、ヘッダー名とヘッダー値をここで設定します。
    • ユーザーエージェント:ブラウザーのカスタムユーザーエージェントを設定し、要求とHTTPヘッダーの送出に利用します。
    • 認証方法:エンドポイントで設定されているの認証を設定します。
      • Basic/NTLM:Basic/NTLMベース認証を設定します。Windows NTLMは、Windows OS上のシステムで利用できる認証プロトコルです。
        [認証情報]項目で、Basic/NTLM認証を要するURLの、ユーザー名とパスワードを指定します。
      • Kerberos/Negotiate
        Kerberos認証を使用しているリソースを監視する場合はこの項目を選択してください。リストからKerberos認証を設定した認証情報ストアを選択します。
        • Kerberos認証はオンプレミスポーラーロケーションでのみサポートしています。
        • Kerberos認証の認証情報ストアについての詳細はこちらのページをご確認ください。
      • OAuth:OAuthフレームワークによるセキュリティを構成しているリソースを監視する場合は、[OAuth]を選択後、ドロップダウンから[プロバイダー]を選択します。[+]からプロバイダーを新規追加できます。
        プロバイダーの作成方法手順はこちらのページをご確認ください。
      • Webトークン:認証サーバーにSite24x7を登録し、Webトークンを使用して対象を監視します。
        Webトークンについての詳細はこちらのページをご確認ください。
      • AWSシグネチャー:Site24x7と事前に連携されているAWSアカウントをドロップダウンから選択します。
        HMACを使用してAPIリクエストを確認し、AWS APIゲートウェイにホストされているAPIを認証します。
        AWSアカウントの連携方法についてはこちらのページをご確認ください。

        AWSシグネチャー認証の詳細はこちらのページをご確認ください。
    • クライアント証明書:クライアント証明書認証を要する監視対象の場合、クライアント証明書をアップロードしてください(PKCS#12形式)。
    • 権威ネームサーバーへのクエリ:トグルボタンで、ドメイン名解決に権威DNSサーバーを使用するかを指定します。
    • 許可されたHTTPステータスコード:HTTPステータスコードをカンマで区切って入力し、それらを成功レスポンスとして設定します。個別での指定と、コロンでの範囲での指定が可能です。
      詳細はこちらのページ(英語版)をご確認ください。
    • SSLプロトコル:TLS/SSLプロトコルのバージョン(TLSv1.3、TLSv1.2、TLSv1.1、TLSv1、SSLv3がサポートされています)の数を指定し、SSLハンドシェイクを検証します。自動モードを使用して、自動検知とネゴシエーションを有効化します。
      SSLプロトコル検証はHTTPSドメインにのみ行われます。
      実際のバージョンと異なるSSLプロトコルバージョンが指定されている場合、監視は失敗します。
    • HTTPプロトコル:アプリケーション層プロトコルのバージョン(HTTP/1.1またはHTTP/2)を選択し、それをネゴシエーションに使用します。
    • ALPNの有効化:ALPNを有効化し、アプリケーションプロトコルにのみ、TLSハンドシェイクの一部で送信し、ラウンドトリップ時間の削減を行います。デフォルトでこの項目は[はい]に設定されています。
      オンプレミスポーラーではこのオプションは使用できません。

    コンテンツチェック

    コンテンツチェックの情報を指定してください。

    • 応答フォーマットに [テキスト]を選択した場合
      • 存在するべき文字列:指定キーワードがHTMLになければ、アラートします。チェックボックスでキーワードを指定し、スライダーボタンでアラートの種類を選択してください。
      • あってはならない文字列:指定キーワードがHTMLにあれば、アラートします。チェックボックスでキーワードを指定し、スライダーボタンで、アラートの種類選択してください。
        入力欄にキーワードを指定する際に、次の条件があります。
        • 文字列やキーワードが1つであれば、ダブルコーテーションで囲むか否かは任意です(例:HTML)。
        • 2つの文字列で1キーワードとなっている場合、空白をあけて全体をダブルコーテーションで囲みます(例:"HTML response")。
        • キーワードを複数指定する場合は、それぞれを空白で区切りダブルコーテーションで囲ってください("monitor" "HTML")。
      • 大文字・小文字を区別:トグルボタンで、この項目を区別するかを選択します。
      • マッチする正規表現:Webコンテンツの特定パターンにマッチする際にアラートするという設定を行います。
        たとえば、^[a-z0-9_-]{3,15}$という表現にマッチする場合、Webコンテンツには、aからzまでのアルファベット、0から9までの数字、アンダースコア、ハイフンが含まれることとなります。 このパターンにマッチしない場合、Webサイトは指定した正規表現「^[a-z0-9_-]{3,15}$」にあわないものとして、アラート対象になります。
    • 応答フォーマットに[XML]を選択した場合
      • XPath表現:XPath表現を指定し、XPath表現のアサーションを評価します。複数のXML表現アサーションを追加するには、[+]をクリックしてください。
      • XPath重要度:XPath表現のアサーション失敗時のアラート重要度を[ダウン]または[トラブル]から選択します。
    • 応答フォーマットに[JSON]を選択した場合
      • JSONPath表現:JSONPath表現を指定し、JSON Path表現のアサーションを評価します。複数のJSON Path表現アサーションを追加するには、[+]をクリックしてください。
        アサーションが処理されると、JSONアサーション内の指定した値が、JSON応答内の実際の値と比較されテストされます。
        テスト事項は次のとおりです。
        • 実際の値が空か
        • 実際の値が空ではないか
        • 実際の値が対象の値と同じか
        • 実際の値が対象の値以上か
        • 実際の値が対象の値以下か
        • 実際の値に対象の値が含まれるか
        • 対象の値が実際の値に含まれていないか

      上記画像で用いられる主なJSONPath表現とその説明は次のとおりです。

      JSONPath表現 説明 ステータス
      $.address.city 'address'プロパティに直接の子である'city'プロパティの値を選択します。 ステータスがアップであれば、'city'は'address'の直接の子の値です。

      $.address.country

      'address'プロパティの直接の子である'country'プロパティの値を選択します。

      ステータスがダウンの場合、'address'の子に'country'が存在しません。

      $..type 入力JSON内の'type'プロパティをすべて選択します。

      ステータスがアップの場合、JSON応答に'type'が子として存在します。

      $.address.length()

      'address'プロパティの長さを選択します。

      ステータスがアップの場合、'address'がJSON応答内に存在します。

      $..* すべてのプロパティとその値を選択します。

      ステータスがアップの場合、複数のプロパティがJSON応答に存在します。
      応答内にプロパティがない場合は、障害として判別されます。

      $.phoneNumbers[1] 'phoneNumbers'アレイから2番目の値を選択します。 ステータスがアップの場合、'phoneNumber'に2以上の子エンティティが存在します。
      $.phoneNumbers[?(@.number)] 'phoneNumbers'プロパティ内に'number'プロパティが存在する際に'phoneNumbers'プロパティを選択します。 'phoneNumber'に少なくとも1'number'プロパティが存在する際にアップとなります。
      $.phoneNumbers[?(@.type ==\"iPhone\")] 'type'がiPhoneである'phoneNumbers'プロパティを選択します。 'phoneNumber'に少なくとも1つのiPhoneタイプのプロパティタイプが存在する場合にアップとなります。
      $[?(@.age > 20)]

      'age'が20を超過しているJSONオブジェクトを選択します。

      'age'が20を超過している際にアップとなります。
    • JSONPath重要度:JSONPath表現のアサーション失敗時のアラート重要度を[ダウン]または[トラブル]から選択します。
    • JSONスキーマチェック:JSONスキーマはWebサービスのJSONエンドポイントを検証するための文字列です。
      スキーマでHTTP応答データをテストするには[はい]を選択して、テキスト項目にJSONスキーマ検証のアサーションを入力します。[はい]を選択後にテキスト項目が空欄の場合にも、監視ステータスに影響なくデータ収集が行われます。
    • JSONスキーマ重要度:アラートの重要度を[ダウン]または[トラブル]から選択します。
      JSONスキーマ検証の失敗時に、この設定に応じてアラートが発生します。
      設定したJSONスキーマに対してAPI応答が検証される際の、テストユースケースは次のとおりです。
      • 値が指定したタイプ(例:integer, stringなど)であるか
      • API JSON応答がプロパティを構成しているか
      • JSON応答内に指定したキーが存在するか
      • 誤ったHTTP応答(HTMLまたはXML)がJSONスキーマを検証していないか
    • HTTP応答ヘッダー:HTTPリクエストに対する応答ヘッダーと値を入力し、HTTPヘッダーが存在するか、値がまた応答とマッチするかを確認します。
      応答ヘッダーチェックの設定時に、次の条件に基づいて値を設定してください。
      • 複数ヘッダーを追加でき、その各ヘッダーに値を指定できます。
      • 文字列やキーワードが1つであれば、ダブルコーテーションで囲むか否かは任意です(例:keep-aliveまたは"keep-alive")。
      • キーワードを複数指定する場合は、それぞれを空白で区切りダブルコーテーションで囲ってください(例:"gzip" "br")。
      • ヘッダー値では正規表現検証をサポートしています。正規表現パターンは"${<regex>}"の形式で指定してください。
        例:${\d{4}}が指定されている場合、ヘッダー名に設定されているヘッダー値で、4桁の数値を検索します。
    • HTTP応答ヘッダー重大度:検証に失敗した際の発生するアラートの重大度を[ダウン]または[トラブル]から選択します。

    設定プロファイル

    次の設定プロファイルの情報を指定してください。

    • しきい値と可用性:しきい値プロファイルをドロップダウンから選ぶか、デフォルトのしきい値設定を選択してください。リソースが設定値を超えると、通知が行われます。
      しきい値と可用性のプロファイル作成には、こちらのページをご確認ください。
    • タグ:タグを監視に関連付けて、監視の管理を行いやすくします。
      タグの作成方法は、こちらのページをご確認ください。
    • IT自動化テンプレート:監視でステータスや属性の変化があった時に実行するアクションを選択します。ステータス変更の際は設定したアクションが実行され、対象ユーザーグループにアラートを発します。
      IT自動化テンプレートの作成方法は、こちらのページをご確認ください。

    アラート設定

    次のアラート設定の情報を指定してください。

    • ユーザーアラートグループ:障害時にアラートを通知するユーザーグループを選択します。
      ユーザーアラートグループの作成方法は、こちらのページをご確認ください。
    • オンコールスケジュール:オンコールスケジュールを使用して、アラートの通知先を特定のシフト時間に応じて変更できます。
      オンコールスケジュールについての詳細は、こちらのページをご確認ください。
    • 通知プロファイル:通知プロファイルをドロップダウンから選択します。
      通知プロファイルにより、障害発生時は、いつ誰に通知するかを設定できます。
      通知プロファイルの新規作成方法は、こちらのページをご確認ください。
    ユーザーグループが関連付けられている場合、オンコールシフトに関係なくアラートが受信されます。
    • サードパーティ連携:サードパーティのサービスを設定し、監視を関連付けてください。アラートが関連サービスへプッシュされ、インシデント管理を促進します。
      詳細はこちらのページをご確認ください。
  6. 上記設定完了後、[保存]をクリックしてください。
    監視の設定が終わると、ドメインをスキャンし、ディープディスカバリーを行います。
    ディープディスカバリーの詳細は、こちらのページをご確認ください。

トラブルシュートのヒント