データソースインスタンスの詳細の更新

最終更新日: 10 年 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}

タイプ説明
deviceId整数(必須の) デバイス ID。
hdsId整数(必須の) デバイスのデータソース ID。
id整数(必須の) 更新するインスタンス ID。
opType文字列操作の種類を指定します。受け入れられる値は次のとおりです refresh (デフォルト)、 replace、および add.
isUNCInstanceブーリアンデバイスに対して UNC モニタリングが有効かどうかを示します。
stopMonitoringブーリアンインスタンスの監視が無効になっているかどうかを示します。
displayName文字列(必須の) インスタンスのエイリアスです。これはインスタンスのわかりやすい名前であり、デバイスとデータソースの組み合わせに固有である必要があります。
wildValue2文字列2 次元のアクティブディスカバリにのみ使用されます。使用すると、アクティブな検出の実行中に、トークン ##WILDVALUE## が ALIAS の値に置き換えられ、トークン ##WILDVALUEXNUMX## が XNUMX 番目の部分のエイリアスの値に置き換えられます。この値は、デバイス/データソース/WILDVALUE の組み合わせに固有である必要があります。
groupId整数データソース インスタンスに関連付けられたインスタンス グループ ID。
description文字列データソース インスタンスの説明。
disableAlertingブーリアンインスタンスのアラートが無効になっているかどうかを示します。
systemPropertiesJSON配列インスタンスに割り当てられるインスタンス レベルのシステム プロパティの名前と値を指定します。
autoPropertiesJSON配列インスタンスに割り当てられるインスタンス レベルの自動プロパティの名前と値を指定します。
customPropertiesJSON配列インスタンスに割り当てられるインスタンス レベルのカスタム プロパティの名前と値を指定します。
lockDescriptionブーリアンアクティブな検出が有効かどうか、およびインスタンスの説明が編集可能かどうかを示します。
wildValue文字列(必須の) インスタンスの変数部分。デバイスからデータをクエリするために使用されます。たとえば、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)
Pythonの3