Webサイトグループを更新する
最終更新日: 25 年 2021 月 XNUMX 日LogicMonitorのRESTAPIを使用すると、LogicMonitorWebサイトグループをプログラムで更新できます。
Webサイトグループを更新するには、次のXNUMXつの方法があります。
- PUT:PUTリクエストを使用すると、Webサイトグループ定義全体を置き換えることができます(およびプロセスのフィールドを更新できます)。 Webサイトグループの更新されたJSON定義を提供する場合は、PUTを使用してWebサイトグループを更新する必要があります。 REST標準と一致して、PUTリクエストで指定されていないプロパティはデフォルト値に戻ることに注意してください。
- PATCH:PATCHリクエストを使用すると、Webサイトグループの特定のフィールドのみを置き換えることができます。 WebサイトグループのJSON定義がなく、いくつかのフィールドのみを更新する場合は、PATCHを使用する必要があります。
PUT
ルートグループは更新できないことに注意してください。
HTTPメソッド:PUT
URI:/ service / groups / {id}
リクエストパラメータ:
Note: REST標準と一致して、PUTリクエストで指定されていないプロパティはデフォルト値に戻ります。
プロパティ |
説明 |
必須? |
価値観 |
種類 |
名 | ウェブサイトグループの名前 | はい | – | 文字列 |
説明 | ウェブサイトグループの説明 | いいえ | この値はデフォルトで空白の文字列になります | 文字列 |
停止監視 | この値がtrueの場合、Webサイトグループ内のWebサイトの監視は無効になります。 監視が無効になっている場合、アラートも無効になることに注意してください。 | いいえ | true | false。 この値のデフォルトはfalseです。 | ブーリアン |
無効にするアラート | この値がtrueの場合、グループ内のWebサイトのアラートは無効になります。 監視が無効になっている場合、アラートも無効になることに注意してください。 | いいえ | true | false。 この値のデフォルトはfalseです。 | ブーリアン |
親ID | 親グループのID。 parentId = 1の場合、グループはルートグループの下に存在します。 | いいえ | デフォルトは1 | 整数 |
サービスプロパティ | グループに設定されたプロパティ(継承されたプロパティは含まれません) | いいえ | “ serviceProperties”:[{“ name”:“ PropertyName1”、” value”:“ PropertyValue1”}、{“ name”:“ PropertyName2”、” value”:“ PropertyValue2”}] | JSONオブジェクト |
テスト場所 | グループ内のWebサイトが監視されている場所。 場所は次のとおりです。 | はい | 1:米国– LA 2:米国– DC 3:米国– SF 4:米国– DC 5:ヨーロッパ–ダブリン 6:アジア–シンガポール テスト場所:” {all:true}”は、サービスがすべてのチェックポイントの場所から監視されることを示します テスト場所:” {smgIds:[1,2,3]}”は、サービスがチェックポイントの場所1、2、および3から監視されることを示します。 |
JSONオブジェクト |
PUTの例:
次のリクエストは、ID9のWebサイトグループを更新します。
curl --user 'apiUser:example' -H "Content-Type: application/json" -d '{"name":"newServiceGroup","description":"testSites","disableAlerting":false,"testLocation":"{smgIds:[1,2,3,4,5]}"}' -X PUT "https://api.logicmonitor.com/santaba/rest/service/groups/9"</pre>
<p><strong>Response: </strong></p>
<pre class="programlisting">{
"status" : 200,
"errmsg" : "OK",
"data" : {
"id" : 16,
"name" : "newServiceGroup",
"description" : "testSites",
"disableAlerting" : false,
"stopMonitoring" : false,
"parentId" : 1,
"alertStatus" : "none",
"sdtStatus" : "none-none-none",
"alertDisableStatus" : "none-none-none",
"hasServicesDisabled" : false,
"numOfServices" : 0,
"userPermission" : "write",
"serviceProperties" : [ ],
"numOfDirectServices" : 0,
"testLocation" : "{smgIds:[1,2,3,4,5]}",
"fullPath" : "newServiceGroup",
"subGroups" : [ ]
}
PATCH
HTTPメソッド:PATCH
URI:/ service / groups / {id}
リクエストパラメータ:
すべてのPATCHリクエストには、クエリパラメータを含める必要があります パッチフィールド これは、更新する必要があるフィールドを示します。複数のフィールドはコンマで区切る必要があります。 フィールドがpatchFieldsパラメータで識別され、リクエストのペイロードに含まれている場合、その値は更新されます。 他のすべてのフィールド値は同じままです。 たとえば、サービスグループの名前を更新する場合、URI +クエリパラメータは/ santaba / rest / service / groups / {id}?patchFields = nameになります。 名前フィールドもリクエストペイロードに含める必要があります。
servicePropertiesオブジェクトのXNUMXつまたはいくつかのWebサイトグループプロパティを追加または更新するには、すべてではないことに注意してください。opTypeクエリパラメータを追加で使用する必要があります。 opTypeクエリパラメータは、追加または置換するように設定できます。 opType = add ペイロードに含まれるプロパティが追加されるが、既存のすべてのプロパティは同じままであることを示します。 opType = replace リクエストペイロードに含まれるプロパティがまだ存在しない場合は追加され、存在する場合は更新されますが、他のすべての既存のプロパティは同じままであることを示します。
パッチの例
次のPythonスクリプトは、他の値を変更せずに、Webサイトグループ21にプロパティを追加します。
#!/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/groups/21'
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)