George Bica

Members
  • Content Count

    26
  • Joined

  • Last visited

Community Reputation

1 Neutral

About George Bica

  • Rank
    Community Whiz Kid
  • Birthday April 1

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. The instances don't get discovered so I cannot run a manual poll.
  2. @Brandon I have an older version of this datasource, and it's working. Waiting on the new one to be approved to test. Solr Collection Status is for SOLR 6.6. I am testing this on one instance and it;s throwing an error when I test the script "Failed to execute the script - 2"
  3. waiting to hear back from LM security on approval so this can be installed.
  4. @Brandon Thank you for all these contributions on behalf of all LM community, I will give them a g. We have a lot of SOLR instances and these may prove useful for analytics.
  5. We have the following SOLR datasources imported but they are not finding the instances. Solr JVM Stats Applies to: solr.port && solr.append Apache_SOLR_* (many) applies to: jmx.ports How do we make the Apache_SOLR_* datasources recognize SOLR instances? They seems to depend on the jmx.ports value, but 8983 is not correct.
  6. Where do we set the jmx.port property, in each device instance? and what should the value be? The standard SOLR port is 8983
  7. Where do we set the jmx.port property, in each device instance?
  8. @Michael Rodrigues I think what you provided is correct, not sure how this was before, maybe an older version of this datasource had it the other way around. I changed the "applies to" to vCenter instead of ESX hosts and hopefully this is the correct datasource. Thank you!
  9. I just realized I am not following my own post. What is the error message?
  10. Previous versions of VMware datasources had the ability to monitor disk space for VMs via vCenter. Looks like this ability has disappeared after LM fixed a datasource bug in January. We now have 100+ VMs that we monitor via vCenter but no alerts for their disk space. Is this something we are missing by accident, or has LM stripped this functionality on purpose?
  11. Updated version of the script. I think I will stop here # Usage via command line # # LogicMonitor-Add-SDTs.ps1 -maintenance_date "12/03/2018" -maintenance_time "01:00:00" -maintenance_length 30 -type "serviceGroupSDT" -id 14 # # Usage via CSV import: # $csv = Import-Csv file.csv # foreach ($line in $csv) { # LogicMonitor-Add-SDTs.ps1 -maintenance_date $line.date -maintenance_time $line.time -maintenance_length $line.length -type $line.type -id $line.id # } # # the CSV file needs to have the following header and content type # Date,Time,Length,Type,ID # Param( [Parameter(Mandatory=$True)] [string]$maintenance_date, [Parameter(Mandatory=$True)] [string]$maintenance_time, [Parameter(Mandatory=$True)] [int]$maintenance_length, [Parameter(Mandatory=$True)] [string]$type, [Parameter(Mandatory=$True)] [int]$id, [switch]$force = $false ) <# account info #> $accessId = 'IDHERE' $accessKey = 'KEYHERE' $company = 'api' # stdTYpe (integer) # 1 - one time, 2 - Weekly SDT, 3 - Monthly SDT, 4 - Daily SDT # we have to use "one time" style values because LM has no concept of day of month $stdTYpe = 1 # dataSourceId (integer) # 0 = ALL $dataSourceId = 0 <# request details #> $httpVerb = 'POST' $resourcePath = '/sdt/sdts' $startDate = (Get-Date -Date "$maintenance_date $maintenance_time").ToUniversalTime() $startDateepoch = [Math]::Round((New-TimeSpan -start (Get-Date -Date "1/1/1970") -end $startDate).TotalMilliseconds) $endDate = $startDate.AddMinutes($maintenance_length) $endDateepoch = [Math]::Round((New-TimeSpan -start (Get-Date -Date "1/1/1970") -end $endDate).TotalMilliseconds) # data switch ($type) { "DeviceGroupSDT" {$data = '{"sdtType":'+$stdTYpe+',"type":"'+ $type +'","deviceGroupId":'+ $Id +',"dataSourceId":'+ $dataSourceId +',"startDateTime":'+ $startDateepoch +',"endDateTime":'+ $endDateepoch +'}'} "ServiceGroupSDT" {$data = '{"sdtType":1,"type":"ServiceGroupSDT","serviceGroupId":14,"startDateTime":'+ $startDateepoch +',"endDateTime":'+ $endDateepoch +'}'} "CollectorSDT" {$data = '{"sdtType":'+$stdTYpe+',"type":"'+ $type +'","collectorId":'+ $Id +',"startDateTime":'+ $startDateepoch +',"endDateTime":'+ $endDateepoch +'}'} default {$data = ""} } <# Construct URL #> $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) <# Concatenate Request Details #> $requestVars = $httpVerb + $epoch + $data + $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)) $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 #> $response = Invoke-RestMethod -Uri $url -Method $httpVerb -Body $data -Header $headers <# Print status and body of response #> $status = $response.status $body = $response.data| ConvertTo-Json -Depth 5 # Write-Host "Query:$data" Write-Host "Status:$status" Write-Host "Response:$body"
  12. The working script <# account info #> $accessId = 'IDHERE' $accessKey = 'KEYHERE' $company = 'api' # stdTYpe (integer) # 1 - one time, 2 - Weekly SDT, 3 - Monthly SDT, 4 - Daily SDT # we have to use "one time" style values because LM has no concept of day of month $stdTYpe = 1 # type (string) # ServiceGroupSDT, DeviceGroupSDT, CollectorSDT $type = "DeviceGroupSDT" # deviceGroupId (string) # $deviceGroupId = 18 # dataSourceId (integer) # 0 = ALL $dataSourceId = 0 <# request details #> $httpVerb = 'POST' $resourcePath = '/sdt/sdts' # maintenance start $maintenancestart = "01/01/2018 01:00:00" #maintenance length (in minutes) $maintenancelength = 30 $startDate = (Get-Date -Date $maintenancestart).ToUniversalTime() $startDateepoch = [Math]::Round((New-TimeSpan -start (Get-Date -Date "1/1/1970") -end $startDate).TotalMilliseconds) $endDate = $startDate.AddMinutes($maintenancelength) $endDateepoch = [Math]::Round((New-TimeSpan -start (Get-Date -Date "1/1/1970") -end $endDate).TotalMilliseconds) # device group data $data = '{"sdtType":'+$stdTYpe+',"type":"'+ $type +'","deviceGroupId":'+ $deviceGroupId +',"dataSourceId":'+ $dataSourceId +',"startDateTime":'+ $startDateepoch +',"endDateTime":'+ $endDateepoch +'}' <# Construct URL #> $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) <# Concatenate Request Details #> $requestVars = $httpVerb + $epoch + $data + $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)) $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 #> $response = Invoke-RestMethod -Uri $url -Method $httpVerb -Body $data -Header $headers <# Print status and body of response #> $status = $response.status $body = $response.data| ConvertTo-Json -Depth 5 # Write-Host "Query:$response" Write-Host "Status:$status" Write-Host "Response:$body"
  13. Trying to schedule a new SDT for January 1, 2018 1:00 AM to 1:30 AM for a device group, but getting a Status:1007 and a blank response. <# account info #> $accessId = 'SHj6Hub8e63FUwkc5' $accessKey = 'xz37=(][{qb6ANLp}5$-S9Hvn6HV292P' $company = 'api' # stdTYpe (integer) # 1 - one time, 2 - Weekly SDT, 3 - Monthly SDT, 4 - Daily SDT # we have to use "one time" style values because LM has no concept of day of month $stdTYpe = 1 # type (string) # ServiceGroupSDT, DeviceGroupSDT, CollectorSDT $type = "DeviceGroupSDT" # deviceGroupId (string) # $deviceGroupId = 18 # dataSourceId (integer) # 0 = ALL $dataSourceId = 0 <# request details #> $httpVerb = 'POST' $resourcePath = '/sdt/sdts' #serviceGroupSDTs # data $data = '{"sdtType":'+$stdTYpe+',"type":"'+ $type +'","deviceGroupId":'+ $deviceGroupId +',"dataSourceId":'+ $dataSourceId +',"startDateTime":1514786400,"endDateTime":1514788200}' <# Construct URL #> $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) <# Concatenate Request Details #> $requestVars = $httpVerb + $epoch + $data + $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)) $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 #> $response = Invoke-RestMethod -Uri $url -Method $httpVerb -Body $data -Header $headers <# Print status and body of response #> $status = $response.status $body = $response.data| ConvertTo-Json -Depth 5 Write-Host "Status:$status" Write-Host "Response:$body"
  14. This does not apper to be valid, I am getting error on the code lookup
  15. Here is an example of a tag called "important". If a VM with that tag goes offline then LM should fire an alert.