You can use New Relic's network monitoring agent to watch your Meraki environment.
Get started
Before you begin, make sure you have the New Relic, Docker, Meraki, and Network security prerequisites:
- A New Relic account.
- A New Relic .
- Docker installed in a Linux host.
- Ability to launch new containers via command line.
- Meraki Dashboard API key for authentication.
Network firewall rules
Direction | Source | Destination | Ports | Protocol | Required |
---|---|---|---|---|---|
Outbound | Docker host |
| 443 | TCP | ✓ |
Outbound | Docker host | New Relic Metric API
Endpoint:
| 443 | TCP | ✓ |
Outbound | Docker host | New Relic Event API
Endpoint:
| 443 | TCP | ✓ |
Outbound | Docker host | New Relic Log API
Endpoint:
| 443 | TCP | |
Outbound | Docker host | Meraki Dashboard API endpoint: | 443 (default) | TCP | ✓ |
Installation
In your existing configuration file for the SNMP agent, manually add the Meraki device object. Replace the $YOUR_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: "$YOUR_DASHBOARD_API_KEY"
Tip
This is a minimal example. Additional configuration options are available on the advanced configuration page.
Stop and remove the existing container:
$# 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
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 are assuming the default configuration file name of 'snmp-base.yaml'$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 \> nr1.snmp
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 $DASHBOARD_API_KEY
with your Meraki Dashboard API key:
Example using vim:
$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: "$DASHBOARD_API_KEY"trap: {}discovery: {}global: poll_time_sec: 300 timeout_ms: 30000
Tip
This is a minimal example. Additional configuration options are available on the Advanced Configuration page.
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'$docker run -d --name ktranslate-$CONTAINER_SERVICE --restart unless-stopped --pull=always -p 162:1620/udp \>-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
What's next
You can set up more agents to complement your Meraki environment data:
To get better visibility into how your network is used, set up network flow data monitoring.
To get insights into system messages from your devices, setup network syslog collection.