ウェブサイトを追加する
最終更新日: 25 年 2021 月 XNUMX 日LogicMonitorのRESTAPIを使用して、新しいpingチェックとWebチェックをLogicMonitorアカウントにプログラムで追加できます。
ウェブサイトを追加する
新しいpingまたはWebチェックを追加します
HTTPメソッド:POST
URI:/ service / services
リクエストパラメータ:新しいWebサイトの次のプロパティをPOSTできます
プロパティ |
Description |
必須? |
価値観 |
種類 |
名 | ウェブサイトの名前 | はい | サービス名は、数字、文字、および–および_記号に制限されています | String |
type | ウェブサイトの種類 | はい | ping | ウェブサービス | String |
内部です | ウェブサイトが内部にあるかどうか | いいえ。 | true | false。 デフォルトはfalseです。 | ブーリアン |
説明 | ウェブサイトの説明 | いいえ | この値はデフォルトで空白の文字列になります | String |
サービスフォルダ ID | Webサイトが存在するフォルダーのID | いいえ | この値のデフォルトは1です。 | 整数 |
停止監視 | この値がtrueの場合、Webサイトの監視は無効になります。 監視が無効になっている場合、Webサイトのアラートも無効になることに注意してください。 | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
無効にするアラート | この値がtrueの場合、Webサイトのアラートは無効になります。 Webサイトの監視が無効になっている場合、アラートはデフォルトで無効になることに注意してください。 | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
個別のSmAlertEnable | Webサイトが個々のテスト場所からのチェックに失敗した場合にアラートがトリガーされるかどうかを示します。 | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
個人アラートレベル | Webサイトが個々のテスト場所からのチェックに失敗した場合にトリガーするアラートのレベル | いいえ | 警告| エラー| クリティカル。 この値はデフォルトで警告します | String |
全体的なアラートレベル | Webサイトが指定されたチェック数に失敗した場合にトリガーされるアラートのレベル 遷移 によって指定されたテスト場所から グローバルSmAlertCond | いいえ | 警告| エラー| クリティカル。 この値はデフォルトで警告します | String |
ポーリング間隔 | サービスがチェックされる頻度(分単位)。 | いいえ | 1〜10分。 値のデフォルトは5です。 | 整数 |
遷移 | アラートがトリガーされる前に失敗しなければならないチェックの数 | いいえ | 1-10、30、60。この値のデフォルトは0です。 | 整数 |
テスト場所 | Webサイトが内部にない場合にサービスを監視する必要があるテスト場所、またはWebサイトが内部にある場合にWebサイトを監視する必要があるコレクター。 | いいえ | コレクターは次のように指定する必要があります:“ {\” collectorIds \”:[12,67]}”。 サイトモニターの場所は次のとおりです。
次のように、これらの場所を1,2,3つ以上指定できます:“ {\” smgIds \”:[XNUMX]}” デフォルト値は「{\” all \”:true}」です。 |
JSONオブジェクト |
グローバルSmAlertCond | チェックの数によって指定された場所の数 遷移 重大度のアラートをトリガーするには、で失敗する必要があります 全体的なアラートレベル. | いいえ |
デフォルト値は0です
|
整数 |
useDefaultLocationSetting | Webサイトのデフォルトの場所を使用する必要があるかどうか。 | いいえ | true | false。 デフォルトはfalse | ブーリアン |
useDefaultAlertSetting | Webサイトのデフォルト設定を使用するかどうか。 | いいえ | true | false。 デフォルトはfalse | ブーリアン |
サービスプロパティ | Webサイトに関連付けられているプロパティ | いいえ | – | JSONオブジェクト |
新しいPingサービスの場合、次の 追加の POSTプロパティが適用されます:
プロパティ |
Description |
必須? |
価値観 |
種類 |
カウント | リクエストで送信するパケットの数 | いいえ | この値のデフォルトは5です。 | 整数 |
host | ホスト名またはIP | はい | – | String |
パーセントPktsNotReceiveInTime | で指定された期間内に返される必要があるパケットの割合 タイムアウトMSPktsNotReceive pingチェックごとに。 | いいえ | デフォルトは80 | 整数 |
タイムアウトMSPktsNotReceive | で指定されたパケットの割合が指定された期間 パーセントPktsNotReceiveInTime pingチェックごとに返送する必要があります。 | いいえ | デフォルトは500 | 整数 |
新しいWebサービスの場合、次の 追加の POSTプロパティが適用されます:
プロパティ |
Description |
必須? |
価値観 |
種類 |
ステップ | XNUMXつ以上のステップで構成されるオブジェクト。各ステップに含まれるプロパティについては、以下の表を参照してください。 | はい | 詳細については、以下の表を参照してください | JSONオブジェクト |
SSLを無視 | チェックごとにSSLを無視するかどうか | いいえ | true | false。 デフォルトはfalse | ブーリアン |
pageLoadAlertTimeInMS | アラートのトリガーを回避するために、各ステップでページをロードする必要があるミリ秒単位の時間。 | いいえ | デフォルトは30000 | 整数 |
JSONオブジェクトの「ステップ」はXNUMXつ以上のステップで構成され、各ステップには次のプロパティがあります。
プロパティ |
Description |
必須 |
価値観 |
種類 |
HTTPヘッダー | WebサービスへのHTTPリクエストに含まれるヘッダー | いいえ | 有効なHTTPヘッダー。 例:「HTTPHeaders」:「Content-Type:application / json」。 この値はデフォルトで空の文字列になります | String |
ステータスコード | Webサービスに対して行われたHTTP要求に対して予期される応答状況コード。 複数のステータスコードはコンマで区切ることができます | いいえ | この値はデフォルトで空白の文字列になります | String |
followリダイレクト | この値がtrueの場合、WebサービスへのHTTPリクエストは、適切なリダイレクトに従います。 | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
マッチタイプ | 応答でキーワードを検索するために使用される解釈方法のタイプ | いいえ |
この値のデフォルトはプレーンです |
String |
キーワード | Webサービスに対して行われたHTTP要求への応答に存在する必要がある文字列キーワード | いいえ | この値はデフォルトで空白の文字列になります | String |
HTTP 本文 | WebサービスへのHTTPリクエストの本文のデータ | いいえ | この値はデフォルトで空の文字列になります | String |
HTTPメソッド | Webサービスへのリクエストで使用されるHTTPリクエストメソッド | いいえ | GET | HEAD | 役職。 この値のデフォルトはGETです。 | String |
postDataEditType | POSTデータの形式 | いいえ | 生| json | xml | x-www-form-urlencoded | String |
URL | ステップのURL。 これは完全なURL(つまりドメイン+パス)である必要があります | はい | – | String |
フルページロード | この値がtrueの場合、HTTPリクエストはすべてのページ要素が読み込まれるのを待ちます | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
認証が必要 | この値がtrueの場合、WebサービスへのHTTP要求には承認が必要です | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
認証 | requireAuth = trueの場合に必要な認証情報 | いいえ | このオブジェクトでは、次のパラメーターを指定する必要があります。
例:“ auth”:{“ type”:” common”、” userName”:” test”、” password”:” example”} |
JSONオブジェクト |
反転一致 | この値がtrueの場合、キーワードは 応答に存在する | いいえ | true | false。 この値のデフォルトはfalseです。 | ブーリアン |
タイムアウト | リクエストがタイムアウトするまでにページをロードする必要がある秒数 | いいえ | 1 | 5 | 15 | 30 | 60 | 120 | 180.この値のデフォルトは30です。 | 整数 |
HTTPバージョン | Webサービスへのリクエストで使用されるHTTPバージョン | いいえ | 1.0 | 1.1。 この値のデフォルトは1.1です。 | String |
スキーマ | URLに関連付けられたスキーマまたはプロトコル | いいえ | http | https。 この値のデフォルトはhttpです | String |
説明 | ステップに関連する説明 | いいえ | デフォルトは空白の文字列 | String |
path | ステップに関連付けられたパス。パスはドメインの後のURLコンポーネントです。 | いいえ | この値は、 URL | String |
enable | true | false。 ステップが有効かどうか | いいえ | デフォルトはtrue | ブーリアン |
これらのリソースプロパティの例については、を参照してください。 このページ.
例1:Pingサービスを追加する
次のPythonリクエストは、Pingサービスを追加します。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
#Account Info
AccessId ='ACCESS_ID'
AccessKey ='ACCESS_KEY'
Company = 'COMPANY_NAME'
#Request Info
httpVerb ='POST'
resourcePath = '/service/services'
queryParams = ''
data='{"name":"newPingService","type":"ping","stopMonitoring":false,"disableAlerting":false,"pollingInterval":3,"host":"www.google.com"}'
#Construct URL
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath + queryParams
#Get current time in milliseconds
epoch = str(int(time.time() * 1000))
#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath
#Construct signature
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}
#Make request
response = requests.post(url, data=data, headers=headers)
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
例2:Webサービスを追加する
次のPythonリクエストは、Webサービスを追加します。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
#Account Info
AccessId ='ACCESS_ID'
AccessKey ='ACCESS_KEY'
Company = 'COMPANY_NAME'
#Request Info
httpVerb ='POST'
resourcePath = '/service/services'
queryParams = ''
data='{"serviceFolderId":"1","type":"webservice","testLocation":"{\\"smgIds\\":[2, 3, 4]}","name":"ProdWebCheck","disableAlerting":true,"pollingInterval":5,"steps":[{"HTTPHeaders":"Content-Type:application/json","followRedirection":false,"keyword":"breaking","schema":"http","url":"www.google.com/#q=news","timeout":120},{"keyword":"california","url":"www.google.com/#q=states","invertMatch":true}]}'
#Construct URL
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath + queryParams
#Get current time in milliseconds
epoch = str(int(time.time() * 1000))
#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath
#Construct signature
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}
#Make request
response = requests.post(url, data=data, headers=headers)
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)