Solarwinds Platform 2022.3 integration with Meraki SD-WAN

Hello THWACK members!

I recently installed the Solarwinds Platform 2022.3 RC2 to test out the API integration with Meraki (MX especially).

Following the steps from Monitor SD-WAN for Meraki organizations with Hybrid Cloud Observability takes me to the Network Sonar discovery wizard filled in with names/IPs of the Meraki devices, but the IPs there are from WAN interfaces of Meraki MX, which often are not reachable (due to NAT, but also because we don't allow SNMP on WAN interface). Additionally the validation fails because the names of Meraki are not resolvable via DNS.

Can someone advise how this Meraki monitoring is supposed to work? Why do we need SNMP discovery (according to the guide mentioned above) if this was supposed to be API?

Thanks for your inputs!

/edit 20220908/

As this looks to be missing feature I created a Feature Request here: https://thwack.solarwinds.com/product-forums/hybrid-cloud-observability/i/feature-requests/enhanced-meraki-sd-wan-integration-via-api-compared-to-2022-3-rc2.

Please vote up and add comments on other features for Meraki API integration you consider missing but useful.

/edit/

/edit 20221020/

As this is valid also for 2022.3 GA I updated the subject.

/edit/

  • Hello,

    You can fill yourself a network discovery task with good IPs (yes you need to enable snmp on these devices)

  • Thanks for the reply!

    To test it I did add some devices via LAN IP, it does integrate then with Meraki API polling, but only to some extent. For example, the information about Warm Spare (and everything related to it) is not available, because Warm Spare has no active LAN IP, so it cannot be added to nodes.

    Can anyone advise if there is any plan to have this Meraki integration more via API than via SNMP? With the way it is currently, it's not as useful as it could be.

  • It seems this Meraki API needs more development to be useful, because presently it is very limited in scope. We were hoping the integration with SW HCO would be able to replace the Meraki console, but this is not the case.

  • Another point I found not working correctly in 2022.3 is that for some models of Meraki MX (e.g. MX67, MX85, MX100, MX450) the integration of WAN Uplink and Interface does not work correctly (the icon in the WAN Uplink view remains gray and you cannot drill down to the Interface). It is also visible in the table in the database (no value).

    I have a support case opened for this. I will update here with the results.

  • I am having the same issue, only install 2022.3 last week. Do you have any updated as yet?

  • After looking into this with support we found some settings in the Advanced Configuration, in section Orchestrators.Meraki. I modified the below listed settings with values as shown:

    CdpLldpInterfacesMappingJson

    {
        "MX64": {
            "wan0": "wan1",
            "port1": "lan1",
            "port2": "lan2",
            "port3": "lan3",
            "port4": "lan4",
            "wan1": "lan4"
        },
        "MX64W": {
            "wan0": "wan1",
            "port1": "lan1",
            "port2": "lan2",
            "port3": "lan3",
            "port4": "lan4",
            "wan1": "lan4"
        },
        "MX67": {
            "wan0": "port1",
            "wan1": "port2",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5"
        },
        "MX67C": {
            "wan0": "port1",
            "wan1": "port2",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5"
        },
        "MX67W": {
            "wan0": "port1",
            "wan1": "port2",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5"
        },
        "MX68": {
            "wan0": "port1",
            "wan1": "port2",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10",
            "port11": "port11",
            "port12": "port12"
        },
        "MX68C": {
            "wan0": "port1",
            "wan1": "port2",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10",
            "port11": "port11",
            "port12": "port12"
        },
        "MX68CW": {
            "wan0": "port1",
            "wan1": "port2",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10",
            "port11": "port11",
            "port12": "port12"
        },
        "MX84": {
            "wan0": "port1",
            "wan1": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10",
            "port11": "port11",
            "port12": "port12"
        },
        "MX85": {
            "wan0": "port1",
            "wan1": "port2",
            "wan0": "port3",
            "wan1": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10",
            "port11": "port11",
            "port12": "port12",
            "port13": "port13"
        },
        "MX100": {
            "wan0": "port1",
            "wan1": "port2",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10",
            "port11": "port11"
        },
        "MX105": {
            "wan0": "port1",
            "wan1": "port2",
            "wan0": "port3",
            "wan1": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10"
        },
        "MX450": {
            "wan0": "port1",
            "wan1": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5",
            "port6": "port6",
            "port7": "port7",
            "port8": "port8",
            "port9": "port9",
            "port10": "port10",
            "port11": "port11",
            "port12": "port12",
            "port13": "port13",
            "port14": "port14",
            "port15": "port15",
            "port16": "port16",
            "port17": "port17",
            "port18": "port18",
            "port19": "port19",
            "port20": "port20",
            "port21": "port21",
            "port22": "port22",
            "port23": "port23",
            "port24": "port24",
            "port25": "port25",
            "port26": "port26"
        },
        "Z3": {
            "wan0": "port1",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5"
        },
        "Z3C": {
            "wan0": "port1",
            "port2": "port2",
            "port3": "port3",
            "port4": "port4",
            "port5": "port5"
        },
        "VMX-L": {
            "wan0": "port1"
        }
    }


    DeviceWanPortsCountByModelJson

    {
        "MX64": 1,
        "MX64W": 1,
        "MX67": 1,
        "MX67W": 1,
        "MX67C": 1,
        "MX68": 2,
        "MX68W": 2,
        "MX68CW": 2,
        "MX75": 3,
        "MX84": 2,
        "MX85": 4,
        "MX95": 4,
        "MX100": 1,
        "MX105": 4,
        "MX250": 2,
        "MX450": 2,
        "Z3": 1,
        "Z3C": 1,
        "VMX-M": 2
    }
    


    UplinksInterfacesMappingJson

    {
    "MX64": {
    "wan1": "wan1",
    "wan2": "lan4"
    },
    "MX67": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX67C": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX67W": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX68": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX68C": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX68CW": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX84": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX85": {
    "wan1": "port1",
    "wan2": "port2",
    "wan1": "port3",
    "wan2": "port4"
    },
    "MX100": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "MX105": {
    "wan1": "port1",
    "wan2": "port2",
    "wan1": "port3",
    "wan2": "port4"
    },
    "MX450": {
    "wan1": "port1",
    "wan2": "port2"
    },
    "VMX-M": {
    "wan1": "wan0",
    "wan2": "wan1"
    }
    }

    Note that this cover the models I have in my network and I'm still testing things, so it's not 100% guaranteed to work until/unless confirmed by SolarWinds Support (or implemented in the next release).

  • @maciej.sandecki did you get any feedback on your feature request? and is the advanced configuration for Meraki that you did, is that in the Meraki Cloud? Pls advise.

  •  the only response for the FR I got was in the comments, from . The advanced configuration was done in SolarWinds (Access the Advanced Configuration settings in the Orion Web Console (solarwinds.com)).

  • The Edge devices are monitored via SNMP, not via API.  Only the Orchestrator is monitored via the API and we can get a list of Edge devices via the API, which is what we pass into the discovery engine to monitor via SNMP.

  • I understand this is how it is working now, but for the reasons I highlighted in my initial post (Meraki MX behind a NAT, SNMP available via LAN only), ability to add Meraki MX as a node only when it's reachable via SNMP is not enough.

    I think it would be better if we had the option to add Meraki MX as a node with monitoring coming via API via dashboard + enrichment via SNMP. This would provide visibility for all Meraki MXs, all spares, uplinks and some additional information for devices reachable via SNMP.