Come join our live training webinar every other Wednesday at 11am PST and hear LogicMonitor experts explain best practices and answer common questions. We understand these are uncertain times, and we are here to help!
You can use LogicMonitor’s REST API to programmatically add instances to datasources that don’t have Active Discovery enabled.
Note: As with all of our API calls, authentication is required.
HTTP Method: POST
URI: /device/devices/{deviceId}/devicedatasources/{deviceDatasourceId}/instances
Where:
Request Parameters: You can include the following parameters in your POST request:
The following Python script adds an instance ‘google’ to the HTTP_Page datasource for device 38 in account api.logicmonitor.com.
#!/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)
The response associated with the script above may look like this:
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 } }