Cisco Meraki Poller

Overview

The Cisco Meraki Poller microservice is created to poll topology, metric and event data from Cisco Meraki via the API using an API Key. It collects data at regular intervals, normalizes it and writes it to topics from which graph-sink, metric-sink and event-sink will ingest the data. Cisco Meraki has an API rate limited to 5 calls per second per organization. Topology is polled every 24 hours, metrics are polled every 15 minutes and events are polled every 5 minutes.

Prerequisites

  1. A microservices cluster must be setup. Refer to Microservice Cluster Setup.

  2. Apache Pulsar must be installed. Refer to Apache Pulsar microservice.

  3. The following core microservices must be installed:

  4. Meraki API URL and API Key to fetch data from.

Secret

A kubernetes secret should be created to pass the API token. The API token must be passed as base64 encoded string.

```  
su - assure1
export NAMESPACE=a1-zone1-pri
a1k create secret generic meraki-api-key-secret --from-literal=meraki-api-keys=<apiKey> -n $NAMESPACE 

```

Note: Both secret name and secret file name can be overridden by changing the config values and creating the secret appropriately.

Setup

su - assure1
export NAMESPACE=a1-zone1-pri
export WEBFQDN=<Primary Presentation Web FQDN> 
a1helm install cisco-meraki-poller assure1/cisco-meraki-poller -n $NAMESPACE --set global.imageRegistry=$WEBFQDN

Default Configuration

Name Value Possible Values Notes
LOG_LEVEL INFO FATAL, ERROR, WARN, INFO, DEBUG Logging level used by application.
PULSAR_STREAM pulsar+ssl://pulsar-broker.a1-messaging.svc.cluster.local Text, 255 characters Apache Pulsar topic path. Topic at end of path may be any text value.
STREAM_OUTPUT_METRIC persistent://assure1/metric/sink Text, 255 characters Metric sink topic path.
STREAM_OUTPUT_GRAPH persistent://assure1/graph/sink Text, 255 characters Graph sink topic path.
STREAM_OUTPUT_EVENT persistent://assure1/event/sink Text, 255 characters Event sink topic path.
STREAM_INPUT "https://api.meraki.com/api/" Text, 255 characters Meraki API URL.
METRIC_POLLING_INTERVAL "15" Integer Time in minutes between polls of the metrics data.
EVENT_POLLING_INTERVAL "300" Integer Time in seconds between polls of the event data.
TOPOLOGY_TIMER "00:00" Text in Hours:Minutes format Time in Hours : Minutes to poll topology data.
REDUNDANCY_POLL_PERIOD 5 Integer How often the secondary service checks to see if the primary is online, in seconds.
REDUNDANCY_FAILOVER_THRESHOLD 4 Integer The number of failed polls before the secondary becomes the active application.
REDUNDANCY_FALLBACK_THRESHOLD 1 Integer The number of successful polls before the secondary goes back to sleep.
SECRET_NAME_OVERRIDE "" Text, 255 characters Custom secret name if required
SECRET_FILE_OVERRIDE "" Text, 255 characters Custom secret filename if required

Configurations can be changed by passing the values to the a1helm install prefixed with the configData parent key.

Example of setting the log level to DEBUG

a1helm install ... --set configData.LOG_LEVEL=DEBUG

Example of enabling redundancy

Redundancy will not be enabled by default. To enable this functionality, pass the following to the install command:

a1helm install ... --set redundancy.enabled=true