データソースインスタンスを更新する

最終更新日: 24 年 2021 月 XNUMX 日

LogicMonitorのRESTAPIを使用して、ActiveDiscoveryが有効になっていないデータソースのインスタンスをプログラムで更新できます。

注意:

  • すべてのAPI呼び出しと同様に、 認証が必要です.
  • HTTP標準と一致して、PUTリクエストから省略されたフィールドはデフォルト値に戻ります。

HTTPメソッド:PUT

URI:/ device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId}

どこ:

リクエストパラメータ: POSTリクエストに次のパラメータを含めることができます。

プロパティ

説明

必須?

グループID データソースインスタンスに関連付けられているインスタンスグループのID 有り 整数
displayName インスタンスエイリアス。 これはインスタンスの説明的な名前であり、デバイスとデータソースの組み合わせに対して一意である必要があります。 有り 文字列
説明 データソースインスタンスの説明 いいえ 文字列
ワイルドバリュー インスタンスの可変部分。デバイスからデータをクエリするために使用されます。 たとえば、SNMPOIDツリーの可変部分。 この値は、XNUMX次元のアクティブな検出が使用されていない限り、デバイスとデータソースの組み合わせに対して一意である必要があります。 有り 文字列
ワイルドバリュー2 2次元のアクティブな発見にのみ使用されます。 使用すると、Active Discoveryの実行中に、トークン## WILDVALUE ##がALIASの値に置き換えられ、トークン## WILDVALUEXNUMX ##がXNUMX番目の部分のエイリアスの値に置き換えられます。 この値は、デバイス/データソース/ WILDVALUEの組み合わせに対して一意である必要があります。 いいえ 文字列
無効にするアラート インスタンスのアラートが無効になっているかどうか いいえ。デフォルトはfalseです。 ブーリアン
停止監視 インスタンスの監視が無効になっているかどうか いいえ。デフォルトはfalseです。 ブーリアン

次のPythonスクリプトは、インスタンス144279093を更新し、アラートを無効にします。

#!/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 ='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
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)
Pythonの3