ウェブサイトを更新する
最終更新日: 29 年 2022 月 XNUMX 日LogicMonitorのRESTAPIを使用して、LogicMonitorアカウントのWebサイトをプログラムで更新できます。
すべてのAPI呼び出しと同様に、 認証が必要です.
Webサイトを更新する方法はXNUMXつあります。
- PUT:PUTリクエストを使用すると、Webサイト定義全体を置き換える(およびプロセスのフィールドを更新する)ことができます。 Webサイトの更新されたJSON定義を提供する場合は、PUTを使用してWebサイトを更新する必要があります。 REST標準と一致して、PUTリクエストで指定されていないプロパティはデフォルト値に戻ることに注意してください。
- PATCH:PATCHリクエストを使用すると、Webサイトの特定のフィールドのみを置き換えることができます。 WebサイトのJSON定義がなく、いくつかのフィールドのみを更新する場合は、PATCHを使用する必要があります。
PUT
HTTPメソッド:PUT
URI:/ service / services / {id}
リクエストパラメータ:
プロパティ |
Description |
必須? |
価値観 |
種類 |
名 | ウェブサイトの名前 | はい | サービス名は、数字、文字、および–および_記号に制限されています | String |
type | ウェブサイトの種類 | はい | ping | ウェブサービス | String |
内部です | ウェブサイトが内部にあるかどうか | いいえ | true | false。 デフォルトはfalse | ブーリアン |
host | スキームなしでサービスがチェックしているURL(例:http、https) | はい | – | String |
説明 | ウェブサイトの説明 | いいえ | この値はデフォルトで空白の文字列になります | String |
サービスフォルダ ID | Webサイトが存在するフォルダーのID | いいえ | この値のデフォルトは1です。 | 整数 |
停止監視 | この値がtrueの場合、Webサイトの監視は無効になります。 監視が無効になっている場合、Webサイトのアラートも無効になることに注意してください。 | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
無効にするアラート | この値がtrueの場合、Webサイトのアラートは無効になります。 Webサイトの監視が無効になっている場合、アラートはデフォルトで無効になることに注意してください。 | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
個別のSmAlertEnable | Webサイトが個々のテスト場所からのチェックに失敗した場合にアラートがトリガーされるかどうかを示します。 | いいえ | true | false。 この値のデフォルトはfalseです | ブーリアン |
個人アラートレベル | サービスが個々のテスト場所からのチェックに失敗した場合にトリガーするアラートのレベル | いいえ | 警告| エラー| クリティカル。 この値はデフォルトで警告します | String |
全体的なアラートレベル | Webサイトが指定されたチェック数に失敗した場合にトリガーされるアラートのレベル 遷移 によって指定されたテスト場所から グローバルSmAlertCond | いいえ | 警告| エラー| クリティカル。 この値はデフォルトで警告します | String |
ポーリング間隔 | Webサイトがチェックされる頻度(分単位)。 | いいえ | 1〜10分。 値のデフォルトは5です。 | 整数 |
クリアトランジション | アラートがクリアされる前に満たす必要があるチェックの数 | いいえ | この値のデフォルトは0です。 | 整数 |
遷移 | アラートがトリガーされる前に失敗しなければならないチェックの数 | いいえ | 1-10、30、60。この値のデフォルトは0です。 | 整数 |
テスト場所 | Webサイトが内部にない場合は監視するテスト場所、またはWebサイトが内部にある場合は監視する必要があるコレクター。 | いいえ | 「{collectorIds:[12,89]}」のようにコレクターを指定できます。 非内部サービスの場所は次のとおりです。
次のように、これらの場所を1,2,3つ以上指定できます:“ {smgIds:[XNUMX]}” デフォルト値は「{all:true}」です |
JSONオブジェクト |
グローバルSmAlertCond | チェックの数によって指定された場所の数 遷移 重大度のアラートをトリガーするには、で失敗する必要があります 全体的なアラートレベル. | いいえ |
デフォルト値は0です
|
整数 |
pingサービスの場合、次のように指定できます 追加の PUTリクエストのプロパティ:
プロパティ |
Description |
必須? |
価値観 |
種類 |
カウント | リクエストで送信するパケットの数 | いいえ | この値のデフォルトは5です。 | 整数 |
新しいWebサービスの場合、次の 追加の プロパティが適用されます:
プロパティ |
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 | ブーリアン |
これらのWebサイトのリソースプロパティの例については、を参照してください。 このページ.
PUTの例:ウェブサイトを更新する
次のPythonリクエストはサービス104を更新します。
#!/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 ='PUT'
resourcePath = '/service/services/104'
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.put(url, data=data, headers=headers)
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
PATCH
HTTPメソッド:PATCH
URI:/ service / services / {id}
リクエストパラメータ:
すべてのPATCHリクエストには、クエリパラメータを含める必要があります パッチフィールド これは、更新する必要があるフィールドを示します。複数のフィールドはコンマで区切る必要があります。 フィールドがpatchFieldsパラメータで識別され、リクエストのペイロードに含まれている場合、その値は更新されます。 他のすべてのフィールド値は同じままです。 たとえば、Webサイトの名前を更新する場合、URI +クエリパラメーターは/ santaba / rest / service / services / {id}?patchFields = nameになります。 名前フィールドもリクエストペイロードに含める必要があります。
PATCHで更新できるフィールドは次のとおりです。
- 名
- 説明
- サービスフォルダ ID
- 停止監視
- 無効にするアラート
- 個別のSmAlertEnable
- 個人アラートレベル
- 全体的なアラートレベル
- ポーリング間隔
- 遷移
- グローバルSmAlertCond
- テスト場所
- サービスプロパティ
servicePropertiesオブジェクトのXNUMXつまたはいくつかのサービスプロパティを追加または更新するには、すべてではないことに注意してください。opTypeクエリパラメータを追加で使用する必要があります。 opTypeクエリパラメータは、追加または置換するように設定できます。 opType = add ペイロードに含まれるプロパティが追加されるが、既存のすべてのプロパティは同じままであることを示します。 opType = replace リクエストペイロードに含まれるプロパティがまだ存在しない場合は追加され、存在する場合は更新されますが、他のすべての既存のプロパティは同じままであることを示します。
パッチの例:Webサイトを更新する
次のPythonスクリプトは、PATCHを介してWebサイト11を更新し、XNUMXつのプロパティのみを追加します。 他のすべてのフィールドは同じままです。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'
#Request Info
httpVerb ='PATCH'
resourcePath = '/service/services/11'
queryParams ='?patchFields=serviceProperties&opType=add'
data = '{"serviceProperties":[{"name":"project","value":"demo"}]}'
#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.patch(url, data=data, headers=headers)
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)