Update a Collector

Last updated on 06 December, 2020


With LogicMonitor’s REST API you can programmatically update the Collectors in your account. As with all of our API resources, authentication is required.

Request Information

HTTP Method: PUT
(consistent with REST standards, any properties not specified in a PUT request will revert back to their default values)

URI: /setting/collectors/{id}

Request Parameters: You can include the following parameters in your PUT request.

Property Description Type
descriptionThe Collector’s descriptionString
backupAgentIdThe Id of the failover Collector configured for this CollectorInteger
enableFailBackWhether or not automatic failback is enabled for the CollectorBoolean
resendIvalThe interval, in minutes, after which alert notifications for the Collector will be resentInteger
suppressAlertClearWhether alert clear notifications are suppressed for the CollectorBoolean
escalatingChainIdThe Id of the escalation chain associated with this CollectorInteger
collectorGroupIdThe Id of the group the Collector is inInteger
collectorGroupNameThe name of the group the Collector is inString
enableFailOverOnCollectorDeviceWhether or not the device the Collector is installed on is enabled for fail overBoolean


The following Python script updates Collector 223.

#!/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 = '/setting/collectors/223'
queryParams = ''
data = '{"description":"prodCollector1","escalatingChainId":20,"collectorGroupId":4,"backupAgentId":85}'

#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()

# 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
In This Article