How to configure Meraki cloud special agent monitoring?

Hi,

Is there a documented process that details how to setup and configure the Meraki cloud special agent for monitoring? I’ve been trying to figure this out by piecing together a handful of threads in the forums, but have not been successful to this point.

I’ve created a folder called “Meraki”, and within it is a host named “Meraki Cloud” with no IP. I’ve also created a Dynamic host management object called merak-cloud, with connection properties “piggyback data”, that creates hosts in the “Meraki”, deletes vanished hosts, and discover services during creation. When I run service discovery from the GUI or CLI, it completes successfully but no hosts are create, and our inventory is around 500 devices.

I’m running check_mk cloud 2.4.0p7, with cisco_meraki 1.4.9-20250624, and MerakiSDK 2.0.3-20250622 installed and enabled on the server.

Any assistance would be greatly appreciated. Thanks!

Here a very Basic HowTo:

Pretext

There are 2 versions of the Meraki agent

  • the built-in agent, shipped with Checkmk since 2.3(?)
  • and my extended version

This HowTo is about the extended agent. Some points from the HowTo can also be used for the built-in agent ( Prerequisites, Preparation [except for the Remove..), part of the agent Rules, Check the configuration (except cache files).

Prerequisites

  • Meraki API activated in Meraki Dashboard
  • Meraki API key from Meraki Dashboard
  • The Meraki Organization ID(s) (optional, if you have only one organization)
  • Checkmk Server must have access to the Meraki API (internet)

Preparation

  • Remove all rules releated to the built-in Merak Agent
  • Create a folder for your Meraki devices (optional)
  • In this folder
    • Create a folder for the Meraki Agent hosts (optional) → AgentFolder
    • Create a folder for each of your Meraki organizations → OrgFolder (optional)
    • in the AgentFolder create a Checkmk host for each of your Meraki organizations (AgentHosts)
      • no ip address
      • Checkmk agent / API integrations: Configured API integrations, no Checkmk agent
    • create one DCD rule for each of your Meraki organizations
      • Restrict source hosts to the AgentHost(s)
      • Create hosts in OrgFolder
    • Create a stored Password with the Meraki API key

Installation

Meraki Agent Rules

  • create one Meraki Agent Rule for each of your Meraki organizations
    • SetupCisco Meraki:
      • API Key the Meraki API key (Stored Password)
      • Organizations Meraki OrgID
      • Proxy if necessary
      • Exclude Sections here you can disable unnneded/unwanted sections → start slow
      • Meraki region configure if you have your devices in the Canada/China/India or US Gov. Cloud
      • ConditionsExplicit hosts AgentHost

Check the configuration

on the CLI:

cmk -D AgentHosts | grep Program
 Program: /omd/sites/site/local/lib/python3/cmk_addons/plugins/meraki/libexec/agent_cisco_meraki --pwstore=2@0@/omd/sites/build/var/check_mk/passwords_merged@meraki_bechtle Meraki'****************************************' --excluded-sections org-switch-ports-statuses --orgs 1234567

Here you should find the actual agent command generated by Checkmk. You can run this as site user to check if the agent can comunicate with the cloud.

The date the agent fetches from the Meraki cloud will be cached under

~/tmp/check_mk/agents/agent_cisco_meraki/<AgentHost>

To see if Checkmk generates piggyback data for your Meraki devices, you can use

cmk -vII AgentHosts

Note the latest version of this HowTo will be now available on my gitlab.

Cheers
Thomas

2 Likes

Hi Thomas,

This is exactly what I needed! After following these steps and pulling the inventory I was able to import all our Meraki resources. Now that the initial import is complete, is there a way to automatically group the resources by “meraki network” so the topology isn’t flat? I am looking at your NVDCT extension, but that looks to be more of a visualization tool then one for grouping the resources.

Thanks!

If you have the a non RAW edition of CMK, you can use the Use organization ID as host prefix option in the Meraki agent rule. This will prefix each host with the Meraki network ID (aka location). In CMK, you can replace this with a site-specific abbreviation (“Host name translation for piggybacked hosts”) and then have the DCD sort the hosts by this abbreviation in site-specific folders. Without the DCD, you must move the hosts to the correct folder yourself.

hope this helps a bit
Thomas

Hi @thl-cmk had a question on this. I got this all set up, and seeing switches in CMK now. But I’m only seeing services for device status and power supplies. I can see all the other plugins though so not sure why it’s not discovering them on the host. Thought I’d see if you had any insight.

cmk -L | grep meraki
cisco_meraki_org_appliance_performance      agent      (no man page present)
cisco_meraki_org_appliance_uplinks          agent      (no man page present)
cisco_meraki_org_appliance_vpns             agent      (no man page present)
cisco_meraki_org_cellular_uplinks           agent      (no man page present)
cisco_meraki_org_device_status              agent      Cisco Meraki: Device Status
cisco_meraki_org_device_status_ps           agent      Cisco Meraki devices: Power Supply
cisco_meraki_org_device_status_unknown_componentsagent      (no man page present)
cisco_meraki_org_licenses_overview          agent      Cisco Meraki: Licenses Overview
cisco_meraki_org_sensor_battery             agent      Cisco Meraki: Sensor Battery
cisco_meraki_org_sensor_humidity            agent      Cisco Meraki: Sensor Humidity
cisco_meraki_org_sensor_temperature         agent      Cisco Meraki: Sensor Temperature
cisco_meraki_org_switch_ports_statuses      agent      (no man page present)
cisco_meraki_org_wireless_device_status     agent      (no man page present)
cisco_meraki_org_wireless_ethernet_statuses agent      (no man page present)
cisco_meraki_organisations_api              agent      (no man page present)

@jpht2 can you show the output of

cmk -D AgentHosts | grep Program

from your system, where AgentHost is the name of the host to which the Meraki agent is attached.

Ah I am seeing this when I run that, looks like they’re being excluded?

–excluded-sections appliance-performance switch-ports-statuses wireless-device-status org-switch-ports-statuses