Groovy スクリプトを使用した内部 Web チェックの実行
最終更新日: 19 年 2024 月 XNUMX 日Groovy スクリプトを使用して内部 Web チェックを実行し、HTTP データを収集および処理することもできます。 Groovy スクリプトを使用して実行される少なくとも 1 つのステップを含む内部 Web チェックは、 ステップリクエスト スクリプトと ステップ応答 プロセッサー。ステップ リクエストは、サイトの認証トークンを収集するための GET リクエストを送信し、ステップ レスポンスがサイトへの認証を行う間にトークンを共有できます。
Groovy スクリプトを使用して内部 Web チェックを実行する利点の一部を以下に示します。
- より柔軟で、動的トークンを使用したフォームベースの認証を使用するサイトに特に便利です。
- ステップ間でコンテキスト (認証用の動的トークン) を共有できるため、ユニークです。
内部 Web チェックを追加または編集するときに Groovy スクリプトを使用できます。以下に、Groovy スクリプトを使用して内部 Web チェックを作成する手順の詳細を示します。
- LogicMonitorで、次の場所に移動します ウェブサイト > (追加) +>選択 内部 Web チェック.
- に Basic ウィザードのステップで、必要な詳細を入力します。
- 選択 次へ:設定.
- に 設定 ウィザードの手順で、次の手順を実行します。
- デフォルトのルート URL セクション、選択 http:// or https:// Web サーバーの設定に応じてプロトコルを選択し、Web Check リクエストの送信先となる Web サイトのドメインを入力します。
- ステップXNUMXのURLパス フィールドに、Web サイトでテストする必要がある最初のパスを入力します。 Web サイトのドメインに対する相対パスを入力します (例:
/folder/page.htm
). - 現在地に最も近い スクリプト タブの下に リクエスト のセクションから無料でダウンロードできます。
- をオンにする リクエストに Groovy スクリプトを使用する スイッチ。
- 選択 設定からスクリプトを生成する これらの設定に基づいて LogicMonitor にリクエスト スクリプトを自動生成させます。
- 現在地に最も近い スクリプト タブの下に Response のセクションから無料でダウンロードできます。
- をオンにする 応答に Groovy スクリプトを使用する スイッチ。
- 選択 設定からスクリプトを生成する これらの設定に基づいて LogicMonitor に応答スクリプトを自動生成させます。
- 選択 次へ:チェックポイント.
- に チェックポイント ウィザードのステップで、小切手を送信するコレクターを指定します。
この デフォルトの Web サイト設定を使用する トグルはデフォルトで選択されています。
ご注意: ダイアログのこの領域からコレクターを表示および選択するには、ユーザー アカウントにコレクター表示権限が必要です。詳細については、「」を参照してください。 役割。 - 選択 次へ: アラートのトリガー.
- に アラートのトリガー ウィザードのステップで、必要な詳細を入力します。
- 選択 終了.
リクエストスクリプトの作成
リクエスト スクリプトは、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) | LMHttpClientComment | HTTPリクエストパラメータを設定します | |
取得する() | StatusCode | リクエストとリターンのステータスを取得します。 | |
get(URL) | StatusCode | リクエストとリターンのステータスを取得します。 | |
頭() | StatusCode | URLが存在するかどうかを確認します | |
post(URL、PostDataType、String PostData) | StatusCode | HTTPデータを投稿する | |
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() | String | HTTP理由フェーズに戻る |
getProtocolVersion() | String | HTTPプロトコルバージョンを返す |
getHeaders() | マップ(文字列、リスト[文字列]) | すべてのヘッダーを返す |
getHeader(文字列名) | リスト | 名前付きのヘッダー値を返します。 ヘッダーが存在しない場合、「null」応答が返されます。 名前では大文字と小文字が区別されることに注意してください |
getBody() | String | HTTP応答本文を返す |
statusMatch(intが期待されます) | StatusCode | ステータスが期待どおりかどうかを確認します。 その場合、これはSTATUS_OKを返します。 それ以外の場合は、STATUS_STATUS_MISMATCHを返します |
regexMatch(文字列パターン) | StatusCode | 正規表現パターンがHTTP応答本文と一致するかどうかを確認します。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します |
globMatch(文字列パターン) | StatusCode | 正規表現パターンがHTTP応答本文と一致するかどうかを確認します。 失敗した場合は、STATUS_CONTENTS_MISMATCHを返します |
plainTextMatch(文字列パターン) | StatusCode | HTTP応答本文にプレーンテキストが含まれているかどうかを確認します。 失敗した場合は、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 |
ステータス_OK | 1 | データ収集は期待どおりに機能しました |
STATUS_MISMATCH | 11 | HTTP応答ステータスが一致しません |
STATUS_CONTENTS_MISMATCH | 12 | HTTPリクエストが予期されたHTTPレスポンス本文を返しませんでした |
完全なサンプルスクリプト
以下は、メッセージング サービスの可用性を確認するために使用される完全な 2 ステップのスクリプトです。この特定のスクリプトは、内部 Web チェックのステップ 1 と 2 の間で共有される動的トークンを使用します。 セットコンテキスト と getContext サイトへの認証を行うためのコマンド。後処理メソッドは、HTTP レスポンス内の「ようこそ」の存在を探して、サイトが利用可能であることを確認します。