データソースインスタンスを更新する
最終更新日: 24 年 2021 月 XNUMX 日LogicMonitorのRESTAPIを使用して、ActiveDiscoveryが有効になっていないデータソースのインスタンスをプログラムで更新できます。
注意:
- すべてのAPI呼び出しと同様に、 認証が必要です.
- HTTP標準と一致して、PUTリクエストから省略されたフィールドはデフォルト値に戻ります。
HTTPメソッド:PUT
URI:/ device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId}
どこ:
- {deviceId}は、GETリクエストから取得できるデバイスIDです。 デバイスリソース
- {deviceDatasourceId}は、デバイスデータソースIDであり、GETリクエストから デバイスデータソースリソース
- {instanceId}はインスタンスIDです
リクエストパラメータ: 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)