• /
  • EnglishEspañolFrançais日本語한국어Português
  • Log inStart now

Set up Meraki Dashboard API monitoring

|View as Markdown

You can use New Relic's network monitoring agent to watch your Meraki environment.

A screenshot showing the meraki dashboard UI in New Relic

Get started

Before you begin, make sure you have the New Relic, Docker, Podman, Meraki, and Network security prerequisites:

Network firewall rules

Direction

Source

Destination

Ports

Protocol

Required

Outbound

Container host

ktranslate image on Docker Hub, Quay.io, or your company's internal repository.

443

TCP

✓

Outbound

Container host

New Relic Metric API Endpoint: https://metric-api.newrelic.com

443

TCP

✓

Outbound

Container host

New Relic Event API Endpoint: https://insights-collector.newrelic.com

443

TCP

✓

Outbound

Container host

New Relic Log API Endpoint: https://log-api.newrelic.com

443

TCP

Outbound

Container host

Meraki Dashboard API endpoint: https://api.meraki.com/api/v1/

443 (default)

TCP

✓

Installation

You can add Meraki Dashboard API monitoring to an existing SNMP container, or deploy it in a dedicated container and keep it separate from your other SNMP devices. Select the option below that best matches your use case:

  1. In your existing configuration file for the SNMP agent, manually add the Meraki device object. Replace $MERAKI_DASHBOARD_API_KEY with your Meraki Dashboard API key:

    devices:
    meraki_cloud_controller:
    device_name: meraki_cloud_controller
    device_ip: snmp.meraki.com
    provider: meraki-cloud-controller
    ext:
    ext_only: true
    meraki_config:
    api_key: "$MERAKI_DASHBOARD_API_KEY"

    Tip

    This is a basic example. You can find additional configuration options in our advanced configuration doc.

  2. Stop and remove the existing container:

    bash
    $
    # Find your current container
    $
    docker ps -a
    $
    $
    # Forcibly stop and delete the target container (you may also use the container ID here in place of the name)
    $
    docker rm -f $CONTAINER_NAME
  3. Start a fresh container with the updated configuration file. Replace $CONTAINER_SERVICE with a unique name for the container and substitute$YOUR_NR_LICENSE_KEY and $YOUR_NR_ACCOUNT_ID with your values. In this example, it's assumed the default configuration file has the name snmp-base.yaml:

    bash
    $
    docker run -d --name ktranslate-$CONTAINER_SERVICE \
    >
    --restart unless-stopped --pull=always -p 162:1620/udp \
    >
    -v `pwd`/snmp-base.yaml:/snmp-base.yaml \
    >
    -e NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY \
    >
    kentik/ktranslate:v2 \
    >
    -snmp /snmp-base.yaml \
    >
    -nr_account_id=$YOUR_NR_ACCOUNT_ID \
    >
    -metrics=jchf \
    >
    -tee_logs=true \
    >
    -service_name=$CONTAINER_SERVICE \
    >
    -snmp_discovery_on_start=true \
    >
    -snmp_discovery_min=180 \
    >
    nr1.snmp
  1. On a Linux host with Docker installed, use the text editor of your choice to create the configuration file you'll use to run the container. Replace $MERAKI_DASHBOARD_API_KEY with your Meraki Dashboard API key.

    Example using vim:

    bash
    $
    sudo vim meraki-base.yaml

    File contents:

    devices:
    meraki_cloud_controller:
    device_name: meraki_cloud_controller
    device_ip: snmp.meraki.com
    provider: meraki-cloud-controller
    ext:
    ext_only: true
    meraki_config:
    api_key: "$MERAKI_DASHBOARD_API_KEY"
    trap: {}
    discovery: {}
    global:
    poll_time_sec: 300
    timeout_ms: 30000

    Tip

    This is a basic example. You can find additional configuration options in our advanced configuration doc.

    Update file permissions to allow Docker to make changes as needed:

    bash
    $
    chown 1000:1000 meraki-base.yaml
  2. Start the network monitoring agent to poll the Meraki Dashboard API. Replace $CONTAINER_SERVICE with a unique name for the container and substitute $YOUR_NR_LICENSE_KEY and $YOUR_NR_ACCOUNT_ID with your values. In this example, we've saved our configuration file as 'meraki-base.yaml':

    bash
    $
    docker run -d --name ktranslate-$CONTAINER_SERVICE \
    >
    --restart unless-stopped --pull=always --net=host \
    >
    -v `pwd`/meraki-base.yaml:/snmp-base.yaml \
    >
    -e NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY \
    >
    kentik/ktranslate:v2 \
    >
    -snmp /snmp-base.yaml \
    >
    -nr_account_id=$YOUR_NR_ACCOUNT_ID \
    >
    -metrics=jchf \
    >
    -tee_logs=true \
    >
    -service_name=$CONTAINER_SERVICE \
    >
    nr1.snmp
  1. In your existing configuration file for the SNMP agent, manually add the Meraki device object. Replace $MERAKI_DASHBOARD_API_KEY with your Meraki Dashboard API key:

    devices:
    meraki_cloud_controller:
    device_name: meraki_cloud_controller
    device_ip: snmp.meraki.com
    provider: meraki-cloud-controller
    ext:
    ext_only: true
    meraki_config:
    api_key: "$MERAKI_DASHBOARD_API_KEY"

    Tip

    This is a basic example. You can find additional configuration options in our advanced configuration doc.

  2. Stop and remove the existing container:

    bash
    $
    # Find your current container
    $
    podman ps -a
    $
    $
    # Forcibly stop and delete the target container (you may also use the container ID here in place of the name)
    $
    podman rm -f $CONTAINER_NAME
  3. Start a fresh container with the updated configuration file. Replace $CONTAINER_SERVICE with a unique name for the container and substitute$YOUR_NR_LICENSE_KEY and $YOUR_NR_ACCOUNT_ID with your values. In this example, we're assuming the default configuration file name of snmp-base.yaml:

    bash
    $
    podman run -d --name ktranslate-$CONTAINER_SERVICE \
    >
    --userns=keep-id --restart unless-stopped --pull=always --net=host \
    >
    -v `pwd`/snmp-base.yaml:/snmp-base.yaml \
    >
    -e NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY \
    >
    kentik/ktranslate:v2 \
    >
    -snmp /snmp-base.yaml \
    >
    -nr_account_id=$YOUR_NR_ACCOUNT_ID \
    >
    -metrics=jchf \
    >
    -tee_logs=true \
    >
    -service_name=$CONTAINER_SERVICE \
    >
    -snmp_discovery_on_start=true \
    >
    -snmp_discovery_min=180 \
    >
    nr1.snmp

    Important

    If you haven't already created an iptables rule to handle packet redirection for trap messages, you will need to do so with the command:

    bash
    $
    sudo iptables -t nat -A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 1620
  1. On a Linux host with Podman installed, use the text editor of your choice to create the configuration file you'll use to run the container. Replace $MERAKI_DASHBOARD_API_KEY with your Meraki Dashboard API key.

    Example using vim:

    bash
    $
    sudo vim meraki-base.yaml

    File contents:

    devices:
    meraki_cloud_controller:
    device_name: meraki_cloud_controller
    device_ip: snmp.meraki.com
    provider: meraki-cloud-controller
    ext:
    ext_only: true
    meraki_config:
    api_key: "$MERAKI_DASHBOARD_API_KEY"
    trap: {}
    discovery: {}
    global:
    poll_time_sec: 300
    timeout_ms: 30000

    Tip

    This is a basic example. You can find additional configuration options in our advanced configuration doc.

    Update file permissions to allow Podman to make changes as needed:

    bash
    $
    chown 1000:1000 meraki-base.yaml
  2. Start the network monitoring agent to poll the Meraki Dashboard API. Replace $CONTAINER_SERVICE with a unique name for the container and substitute $YOUR_NR_LICENSE_KEY and $YOUR_NR_ACCOUNT_ID with your values. In this example, we have saved our configuration file as 'meraki-base.yaml':

    bash
    $
    podman run -d --name ktranslate-$CONTAINER_SERVICE \
    >
    --userns=keep-id --restart unless-stopped --pull=always --net=host \
    >
    -v `pwd`/snmp-base.yaml:/snmp-base.yaml \
    >
    -e NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY \
    >
    kentik/ktranslate:v2 \
    >
    -snmp /snmp-base.yaml \
    >
    -nr_account_id=$YOUR_NR_ACCOUNT_ID \
    >
    -metrics=jchf \
    >
    -tee_logs=true \
    >
    -service_name=$CONTAINER_SERVICE \
    >
    nr1.snmp

    Important

    If you haven't already created an iptables rule to handle packet redirection for trap messages, you will need to do so with the command:

    bash
    $
    sudo iptables -t nat -A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 1620

What's next

You can set up more agents to complement your Meraki environment data:


Did this doc help with your installation?

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.