データソースにインスタンスを追加する

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

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

注:すべてのAPI呼び出しと同様に、 認証が必要です.

HTTPメソッド:POST

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

どこ:

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

プロパティ

説明

必須?

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

リクエストの例

次のPythonスクリプトは、アカウントapi.logicmonitor.comのデバイス38のHTTP_Pageデータソースにインスタンス「google」を追加します。

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='YQQ75w6Mxx9zWIeAMq5H'
AccessKey ='f)!Z}%spR=6en+4^s2$t32r-3=NpdQ]2T{-deI)8'
Company = 'api'

#Request Info
httpVerb ='POST'
resourcePath = '/device/devices/38/devicedatasources/2214/instances'
data = '{"wildValue":"www.google.com","displayName":"google"}'

#Construct URL 
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath 

#Get current time in milliseconds
epoch = str(int(time.time() * 1000))

#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath

print requestVars

#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.post(url, data=data, headers=headers)

#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
Pythonの3

応答例

上記のスクリプトに関連する応答は次のようになります。

Response Status: 200
Response Body: {
  "status" : 200,
  "errmsg" : "OK",
  "data" : {
    "id" : 76780611,
    "groupId" : 2232,
    "groupName" : "@default",
    "name" : "HTTP_Page-google",
    "displayName" : "google",
    "description" : "",
    "lockDescription" : false,
    "deviceId" : 38,
    "deviceDisplayName" : "ip-172-31-36-125.us-west-2.compute.internal",
    "wildValue" : "www.google.com",
    "wildValue2" : "",
    "disableAlerting" : false,
    "stopMonitoring" : false,
    "alertStatus" : "none",
    "alertStatusPriority" : 100000,
    "sdtStatus" : "none-none-none",
    "alertDisableStatus" : "none-none-none",
    "alertingDisabledOn" : null,
    "groupsDisabledThisSource" : null,
    "sdtAt" : null,
    "dataSourceId" : 105,
    "deviceDataSourceId" : 2214
  }
}