This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

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' 'api.meraki.com/.../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": "***************"

}

  • 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.

  • 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