cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post
Level 8

Feature Request - Meraki Device Statuses

Meraki recently updated their REST API to include device statuses for determining if a device is offline/online. I've learned through opening a case and speaking with technical support, this new call is not implemented in NPM/NMS yet. Per supports instructions, I'm submitting a Feature Request to hopefully have this new call implemented in a future update.

This is an example of the new API call:

HTTP REQUEST

GET /organizations/[organizationId]/deviceStatuses

PARAMETERS

None

SAMPLE REQUEST

curl -L -H 'X-Cisco-Meraki-API-Key: ' -X GET -H 'Content-Type: application/json' 'https://api.meraki.com/api/v0/organizations/[organizationId]/dev

I've confirmed this GET request works in Postman and here is an example of the results:

GET https://dashboard.meraki.com/api/v0/organizations/{{organizationId}}/deviceStatuses

Sample output:

[

{

"name": "***************",

"serial": "***************",

"mac": "***************",

"networkId": "**************",

"status": "offline",

"lanIp": "***************"

}

Tags (1)
3 Replies
Level 13

I agree this would be very a good addition to SolarWinds, as a workaround I use a sam component that simply counts the number of offline nodes and message to tell me what is offline..good to know that maraki has now included this in the API..

pastedImage_26.png

$AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'

[System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols

$merakiAPI = "https://dashboard.meraki.com/api/v0"   

$headers = @{

    "X-Cisco-Meraki-API-Key" = "xxx"

     "Content-Type" = "application/json"

}

$uriStem =  "/organizations/xxx/deviceStatuses"

$uri =  "$($merakiAPI)$($uriStem)"   

#Write-Host "GET - $($uri)" 

$response = Invoke-RestMethod -Method Get -Uri $uri -Headers $headers 

$filter = $response | Where {$_.status -notlike 'online'}  ## and ($_.name -like '*MX1*' -or $_.name -like '*MX2*')}

$count = $response | Where {$_.status -notlike 'online' } | measure  ##and ($_.name -like '*MX1*' -or $_.name -like '*MX2*')}

$return = $count.Count

write-Host "Statistic.Down:" $return

write-Host "Message.Down:" $filter

0 Kudos
Level 19

That is a very well-written feature request! The best way to get it in front of the right product managers would be to repost it over here: Network Performance Monitor Feature Requests

Thank you tdanner, I've submitted it there as well.

0 Kudos