Groovy スクリプトを使用した内部 Web チェックの実行

最終更新日: 19 年 2024 月 XNUMX 日

Groovy スクリプトを使用して内部 Web チェックを実行し、HTTP データを収集および処理することもできます。 Groovy スクリプトを使用して実行される少なくとも 1 つのステップを含む内部 Web チェックは、 ステップリクエスト スクリプトと ステップ応答 プロセッサー。ステップ リクエストは、サイトの認証トークンを収集するための GET リクエストを送信し、ステップ レスポンスがサイトへの認証を行う間にトークンを共有できます。

Groovy スクリプトを使用して内部 Web チェックを実行する利点の一部を以下に示します。

  • より柔軟で、動的トークンを使用したフォームベースの認証を使用するサイトに特に便利です。
  • ステップ間でコンテキスト (認証用の動的トークン) を共有できるため、ユニークです。 

内部 Web チェックを追加または編集するときに Groovy スクリプトを使用できます。以下に、Groovy スクリプトを使用して内部 Web チェックを作成する手順の詳細を示します。

  1. LogicMonitorで、次の場所に移動します ウェブサイト > (追加) +>選択 内部 Web チェック.
    内部 Web チェック モーダルを追加
  2. に Basic ウィザードのステップで、必要な詳細を入力します。
  3. 選択 次へ:設定.
  4. に 設定 ウィザードの手順で、次の手順を実行します。
    1.  デフォルトのルート URL セクション、選択 http:// or https:// Web サーバーの設定に応じてプロトコルを選択し、Web Check リクエストの送信先となる Web サイトのドメインを入力します。
    2.  ステップXNUMXのURLパス フィールドに、Web サイトでテストする必要がある最初のパスを入力します。 Web サイトのドメインに対する相対パスを入力します (例: /folder/page.htm).
    3. 現在地に最も近い スクリプト タブの下に リクエスト のセクションから無料でダウンロードできます。
    4. をオンにする リクエストに Groovy スクリプトを使用する スイッチ。
    5. 選択 設定からスクリプトを生成する これらの設定に基づいて LogicMonitor にリクエスト スクリプトを自動生成させます。
    6. 現在地に最も近い スクリプト タブの下に Response のセクションから無料でダウンロードできます。
    7. をオンにする 応答に Groovy スクリプトを使用する スイッチ。
    8. 選択 設定からスクリプトを生成する これらの設定に基づいて LogicMonitor に応答スクリプトを自動生成させます。
      Groovy スクリプト ページの設定
  5. 選択 次へ:チェックポイント.
  6. に チェックポイント ウィザードのステップで、小切手を送信するコレクターを指定します。
    この デフォルトの Web サイト設定を使用する トグルはデフォルトで選択されています。
    ご注意: ダイアログのこの領域からコレクターを表示および選択するには、ユーザー アカウントにコレクター表示権限が必要です。詳細については、「」を参照してください。 役割。
    内部 Web チェック チェックポイント ページ
  7. 選択 次へ: アラートのトリガー.
  8. に アラートのトリガー ウィザードのステップで、必要な詳細を入力します。
  9. 選択 終了

リクエストスクリプトの作成

リクエスト スクリプトは、Groovy API を使用して HTTP レスポンスを取得します。

リクエストGroovyスクリプトのAPIコマンド

次の表に、リクエストGroovyスクリプトで使用できるAPIコマンドを示します。

API 戻り型 Description デフォルト値(該当する場合)
setAuthType(AuthType authType)LMリクエスト認証タイプを設定する  
setUsername(String username)LMリクエスト認証ユーザー名を設定します  
setPassword(String password)LMリクエスト認証パスワードを設定する  
setDomain(String domain)LMリクエスト認証ドメインを設定します(NTLM認証の場合のみ) 
followRedirect(boolean)LMリクエストリダイレクトに従う必要があるかどうかを指定します
addHeader(文字列名、文字列値)LMリクエストHTTPヘッダーを追加します 
userHttp1_0()LMリクエストHTTP /1.0プロトコルバージョンを使用するかどうかを指定します×
userHttp1_1()LMリクエストHTTP /1.1プロトコルバージョンを使用するかどうかを指定します
needFullpageLoad()LMリクエストページ全体をロードする必要があるかどうかを指定します×
setContext(文字列名、オブジェクト値)LMHttpClientComment次のスクリプトのコンテキストを設定します 
getContext(文字列名)オブジェクト以前のスクリプトのコンテキストを取得します 
request(LMRequest)LMHttpClientCommentHTTPリクエストパラメータを設定します 
取得する()StatusCodeリクエストとリターンのステータスを取得します。  
get(URL)StatusCodeリクエストとリターンのステータスを取得します。  
頭()StatusCodeURLが存在するかどうかを確認します 
post(URL、PostDataType、String PostData)StatusCodeHTTPデータを投稿する 
setProxy(String hostname、int port、String schema)LMリクエストHTTPプロキシを設定します。 スキーマはHTTPまたはHTTPSのみにすることができます 
setProxy(String hostname、int port、String schema、String proxyUsername、String proxyPassword)LMリクエスト資格情報とともにHTTPプロキシを設定します。 

リクエストスクリプトコマンドの例

  • 次のGroovy構文は、基本認証を使用するサイトの内部Webチェックの最初のステップで使用されます。
    import com.logicmonitor.service.groovyapi.AuthType; import com.logicmonitor.service.groovyapi.LMRequest; LMRequest request = new LMRequest(); request.setAuthType(AuthType.BASIC)         .setUsername("username")         .setPassword("password")         .followRedirect(false)         .useHttp1_0()         .needFullpageLoad(true); String jsonData = "{\"name\": \"value\"}" return LMHttpClient.request(request)                     .post(JSON, jsonData);
  • setContext() 応答:
    StatusCode status = LMResponse.statusMatch(200);
    LMResponse.setContext("body", Response.getBody());
    return status;
  • getContext() 応答:
    return LMResponse.plainTextmatch(Response.getContext("exampletext"))
  • post(PostDataType、String PostData)応答:
    import static com.logicmonitor.service.groovyapi.StatusCode.*;
    import static com.logicmonitor.service.groovyapi.PostDataType.*;
    String jsonData = "{\"name\": \"value\"}";
    return LMHttpClient.post(JSON, jsonData);
  • request(LMRequest) 応答:
    import com.logicmonitor.service.groovyapi.AuthType;
    import com.logicmonitor.service.groovyapi.LMRequest;
    LMRequest request = new LMRequest();
    request.setAuthType(AuthType.BASIC)
            .setUsername("username")
            .setPassword("password")
            .followRedirect(false)
            .useHttp1_0()
            .needLoadFullPage(false);
    String jsonData = "{\"name\": \"value\"}"
    return LMHttpClient.request(request)
                        .post(JSON, jsonData);
    

応答スクリプトの作成

応答スクリプトは、要求スクリプトからの HTTP 応答を解析し、後処理メソッド (ステータスの確認、HTTP 応答本文の確認など) を適用します。

次の表に、リクエストGroovyスクリプトで使用できるAPI呼び出しを示します。

APIコマンド 戻り型 Description
getStatus()整数HTTPステータスコードを返す
getReasonPhase()StringHTTP理由フェーズに戻る
getProtocolVersion()StringHTTPプロトコルバージョンを返す
getHeaders()マップ(文字列、リスト[文字列]) すべてのヘッダーを返す
getHeader(文字列名)リスト名前付きのヘッダー値を返します。 ヘッダーが存在しない場合、「null」応答が返されます。 名前では大文字と小文字が区別されることに注意してください
getBody()StringHTTP応答本文を返す
statusMatch(intが期待されます)StatusCodeステータスが期待どおりかどうかを確認します。 その場合、これはSTATUS_OKを返します。 それ以外の場合は、STATUS_STATUS_MISMATCHを返します
regexMatch(文字列パターン)StatusCode正規表現パターンがHTTP応答本文と一致するかどうかを確認します。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します
globMatch(文字列パターン)StatusCode正規表現パターンがHTTP応答本文と一致するかどうかを確認します。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します
plainTextMatch(文字列パターン)StatusCodeHTTP応答本文にプレーンテキストが含まれているかどうかを確認します。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します
jsonMatch(文字列パス、文字列expectValue)StatusCodeパスのJSON結果が期待値と一致するかどうかを確認します。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します
PathMatch(文字列パス、文字列expectValue)StatusCode文字列のパスが期待値と一致するかどうかを確認してください。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します
keyValueMatch(文字列キー、文字列expectValue)StatusCode返されたキー/値が期待値と一致するかどうかを確認します。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します
setContext(文字列名、オブジェクト値)ボイドスクリプトの次の段階のコンテキストを設定します
getContext(String)オブジェクト前のスクリプトステージで設定されたコンテキストを返します

応答スクリプトの例

サイトの応答ステータスが「302」であることを確認する場合は、次のリクエストを使用してください。

import com.logicmonitor.service.groovyapi.LMRequest;
LMRequest request = new LMRequest();
return LMHttpClient.request(request.followRedirect(false)
                        .get());

応答スクリプトは次のように記述します。

return LMResponse.statusMatch(302);

ステータスコード

Code Description
ステータス_OK1データ収集は期待どおりに機能しました
STATUS_MISMATCH11HTTP応答ステータスが一致しません
STATUS_CONTENTS_MISMATCH12HTTPリクエストが予期されたHTTPレスポンス本文を返しませんでした

完全なサンプルスクリプト

以下は、メッセージング サービスの可用性を確認するために使用される完全な 2 ステップのスクリプトです。この特定のスクリプトは、内部 Web チェックのステップ 1 と 2 の間で共有される動的トークンを使用します。 セットコンテキスト と getContext サイトへの認証を行うためのコマンド。後処理メソッドは、HTTP レスポンス内の「ようこそ」の存在を探して、サイトが利用可能であることを確認します。

Webチェックページ用スクリプト
応答スクリプトWebチェック
Groovyスクリプトの例
記事上で