データソースインスタンスの詳細の更新
最終更新日: 07 年 2024 月 XNUMX 日LogicMonitor REST API v3 を使用して、データソース インスタンスの詳細を更新できます。 API リクエストを行う前に、自分自身を認証する必要があります。
ご注意:
- REST 標準に従って、PUT リクエストで指定されていないプロパティはデフォルト値に戻ります。
- Active Discovery が有効になっていないデータソース インスタンスを更新できます。
URI: パッチ /device/devices/{deviceId}/devicedatasources/{hdsId}/instances/{id}
URI: 置く /device/devices/{deviceId}/devicedatasources/{hdsId}/instances/{id}
種類 | Description | |
deviceId | 整数 | (必須の) デバイス ID。 |
hdsId | 整数 | (必須の) デバイスのデータソース ID。 |
id | 整数 | (必須の) 更新するインスタンス ID。 |
opType | String | 操作の種類を指定します。受け入れられる値は次のとおりです refresh (デフォルト)、 replace 、および add . |
isUNCInstance | ブーリアン | デバイスに対して UNC モニタリングが有効かどうかを示します。 |
stopMonitoring | ブーリアン | インスタンスの監視が無効になっているかどうかを示します。 |
displayName | String | (必須の) インスタンスのエイリアスです。これはインスタンスのわかりやすい名前であり、デバイスとデータソースの組み合わせに固有である必要があります。 |
wildValue2 | String | 2 次元のアクティブディスカバリにのみ使用されます。使用すると、アクティブな検出の実行中に、トークン ##WILDVALUE## が ALIAS の値に置き換えられ、トークン ##WILDVALUEXNUMX## が XNUMX 番目の部分のエイリアスの値に置き換えられます。この値は、デバイス/データソース/WILDVALUE の組み合わせに固有である必要があります。 |
groupId | 整数 | データソース インスタンスに関連付けられたインスタンス グループ ID。 |
description | String | データソース インスタンスの説明。 |
disableAlerting | ブーリアン | インスタンスのアラートが無効になっているかどうかを示します。 |
systemProperties | JSON配列 | インスタンスに割り当てられるインスタンス レベルのシステム プロパティの名前と値を指定します。 |
autoProperties | JSON配列 | インスタンスに割り当てられるインスタンス レベルの自動プロパティの名前と値を指定します。 |
customProperties | JSON配列 | インスタンスに割り当てられるインスタンス レベルのカスタム プロパティの名前と値を指定します。 |
lockDescription | ブーリアン | アクティブな検出が有効かどうか、およびインスタンスの説明が編集可能かどうかを示します。 |
wildValue | String | (必須の) インスタンスの変数部分。デバイスからデータをクエリするために使用されます。たとえば、SNMP OID ツリーの変数部分です。 2 次元アクティブ検出が使用されない限り、この値はデバイスとデータソースの組み合わせに対して一意である必要があります。 |
次の Python スクリプトを実行して、インスタンス ID 144279093 を更新し、アラートを無効にします。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
import getpass
#Account Info: LogicMonitor recommends to NEVER hardcode the credentials. Instead, retrieve the values from a secure storage.
#Note: The below is provided for illustration purposes only.
AccessId = getpass.getpass("Enter your AccessId: ")
AccessKey = getpass.getpass("Enter your AccessKey: ")
Company = 'apiAccount'
#Request Info
httpVerb ='PUT'
resourcePath = '/device/devices/56/devicedatasources/3294/instances/144279093'
queryParams =''
data = '{"groupId":10354,"wildValue":"www.google.com","displayName":"apiInstancess","disableAlerting":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
digest = hmac.new(
AccessKey.encode('utf-8'),
msg=requestVars.encode('utf-8'),
digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(digest.encode('utf-8')).decode('utf-8')
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + str(signature) + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth,'X-Version':3}
#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)