Forum Discussion
Kerry_DeVilbiss
7 years agoEmployee
Hi @pperreault,
We don't have an OVA for collector deployment, however, you could use a script to make API calls and automate the installation into a couple of clicks... here's an example in PowerShell:
<# LogicMonitor REST API Collector Documentation: https://www.logicmonitor.com/support/rest-api-developers-guide/collectors/ #> <# LogicMonitor Account Information - Requires Administrator Role Permissions #> $accessId = 'CHANGE_TO_LOGICMONITOR_ACCESS_ID' $accessKey = 'CHANGE_TO_LOGICMONITOR_ACCESS_KEY' $company = 'LOGICMONITOR_ACCOUNT_NAME' #--------------- API CALL #1 - Add Collector to LogicMonitor Account -------------------# <# API and URL request details #> $httpVerb = 'POST' $resourcePath = '/setting/collectors' $url = 'https://' + $company + '.logicmonitor.com/santaba/rest' + $resourcePath <# Get current time in milliseconds #> $epoch = [Math]::Round((New-TimeSpan -start (Get-Date -Date "1/1/1970") -end (Get-Date).ToUniversalTime()).TotalMilliseconds) <# Parent Group hashtable definition #> $parentHash = @{ description = "$env:COMPUTERNAME" } <# Convert Parent Hashtable to JSON #> $parentGroup = $parentHash | ConvertTo-Json <# Concatenate General Request Details #> $requestVars_00 = $httpVerb + $epoch + $parentGroup + $resourcePath <# Construct Signature #> $hmac = New-Object System.Security.Cryptography.HMACSHA256 $hmac.Key = [Text.Encoding]::UTF8.GetBytes($accessKey) $signatureBytes = $hmac.ComputeHash([Text.Encoding]::UTF8.GetBytes($requestVars_00)) $signatureHex = [System.BitConverter]::ToString($signatureBytes) -replace '-' $signature = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($signatureHex.ToLower())) <# Construct Headers #> $auth = 'LMv1 ' + $accessId + ':' + $signature + ':' + $epoch $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Authorization",$auth) $headers.Add("Content-Type",'application/json') <# Make Request to add collector#> $response = Invoke-RestMethod -Uri $url -Method $httpVerb -Body $parentGroup -Header $headers <# Capture ID number of newly added collector #> $collectorID = $response.data.id #--------------- API CALL #2 - Download Collector to local temp directory -------------------# <# Collector request details #> $platform = 'Win64' <# API request details #> $httpVerb_01 = 'GET' $resourcePath_01 = '/setting/collectors/' + $collectorID + '/installers/' + $platform <# Construct URL #> $url_01 = 'https://' + $company + '.logicmonitor.com/santaba/rest' + $resourcePath_01 <# Get current time in milliseconds #> $epoch_01 = [Math]::Round((New-TimeSpan -start (Get-Date -Date "1/1/1970") -end (Get-Date).ToUniversalTime()).TotalMilliseconds) <# Concatenate Request Details #> $requestVars_01 = $httpVerb_01 + $epoch_01 + $resourcePath_01 <# Construct Signature #> $hmac_01 = New-Object System.Security.Cryptography.HMACSHA256 $hmac_01.Key = [Text.Encoding]::UTF8.GetBytes($accessKey) $signatureBytes_01 = $hmac_01.ComputeHash([Text.Encoding]::UTF8.GetBytes($requestVars_01)) $signatureHex_01 = [System.BitConverter]::ToString($signatureBytes_01) -replace '-' $signature_01 = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($signatureHex_01.ToLower())) <# Construct Headers #> $auth_01 = 'LMv1 ' + $accessId + ':' + $signature_01 + ':' + $epoch_01 $headers_01 = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers_01.Add("Authorization",$auth_01) $headers_01.Add("Content-Type",'application/json') <# See if we have a place to keep our download #> if(!(Test-Path -Path c:\temp )){ New-Item -ItemType directory -Path c:\temp } <# Make Request and Download Executable #> Invoke-RestMethod -Uri $url_01 -Method Get -Header $headers_01 -OutFile c:\temp\LogicMonitorSetup.exe #--------------- Install Collector -------------------# c:\temp\LogicMonitorSetup.exe /q <# LogicMonitor Collector command line parameters: /q: Quiet /d:""(Optional) This is the path to install the collector into. It defaults to /Program Files/LogicMonitor/Collector / /a:(Optional) This is the account the windows service will run as. Defaults to LocalSystem. /p: (Required if /a is given) This is the password to use that corresponds to the user account specified. Note: If you do not specify the collector to run as a privileged user it will install and run as local system. Local system may not have sufficient permissions to monitor other windows hosts remotely. #>
Related Content
- 10 months ago
- 2 months ago
- 2 years ago