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
-
A microservices cluster must be setup. Refer to Microservice Cluster Setup.
-
Apache Pulsar must be installed. Refer to Apache Pulsar microservice.
-
The following core microservices must be installed:
-
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