Netapp Poller

Overview

The Unified Assurance Netapp Poller microservice is a microservice designed to poll metrics from the Netapp ONTAP REST API.

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. Metric-sink or alternative sink must be installed. Refer to Metric Sink microservice.

Setup

su - assure1
export NAMESPACE=a1-zone1-pri
export WEBFQDN=<Primary Presentation Web FQDN> 

Secret

The Netapp Poller is expecting to read a secret file which contains the password for the API, and is stored as a BASE64 obfuscated text file. The secret name has to be netapp-secret, and within that secret you can store multiple password files with different custom names. By default, the poller will be looking for a netapp.secret file. You can specify which secret file is read by setting the from-file variable. To create a default secret for the Netapp Poller, create a plain text file on the system called netapp.secret and place the BASE64 encoded API password there.

Run the following command as the assure1 user to create a default Netapp secret:

a1k create secret generic netapp-secret --from-file=netapp.secret -n $NAMESPACE

If you wish to create another secret with a different password for another instance, create a BASE64 encoded password file with a custom name (i.e custom.secret) and run the same command as assure1 user replacing the file name:

a1k create secret generic netapp-secret --from-file=custom.secret -n $NAMESPACE

Polling

The Netapp Poller supports polling of multiple Netapp instances. You can specify the polling target during installation by setting the TARGET_HOST and TARGET_USER variables and a SECRET variable if it's different than the default (netapp.secret). To install the microservice with the default settings against a single instance, add the default secret (netapp.secret) following the steps from the previous point, and run the following command as assure1 user.

Note:

A secret is not passed here, by default it will look for netapp.secret file.

a1helm install netapp-poller assure1/netapp-poller -n $NAMESPACE --set global.imageRegistry=$WEBFQDN --set configData.TARGET_HOST=$HOST --set configData.TARGET_USER=$USER

Where variables are:

If you wish to add pollers for additional instances, add a secret for each new instance with a different name than default, then install the microservice instance with the new values. Please note that if you want to use more than one instance of the microservice, it is a good practice to name it manually during installation for easier tracking. Otherwise, the microservice name will be appended with a random hash suffix. Below is an example of installing additional poller where $HOST_INSTANCE_0 and $USER_INSTANCE_0 should hold credentials for that target instance.

Note:

The SECRET variable is specified here to point to our custom secret for the new instance.

a1helm install netapp-poller-custom-instance-0 assure1/netapp-poller -n $NAMESPACE --set global.imageRegistry=$WEBFQDN --set configData.TARGET_HOST=$HOST_INSTANCE_0 --set configData.TARGET_USER=$USER_INSTANCE_0 --set configData.SECRET=custom.secret

Default Configuration

Name Value Possible Values Notes
LOG_LEVEL INFO FATAL, ERROR, WARN, INFO, DEBUG Logging level used by application.
STREAM_OUTPUT persistent://assure1/metric/sink Text, 255 characters Allows redirecting stream output to different topic.
TARGET_USER Text, 255 characters Netapp API User.
TARGET_HOST Text, 255 characters Netapp API address.
SECRET_NAME netapp.secret Text, 255 characters Name of the secret to read from.
POLL_INTERVAL_S 300 Integer Polling interval in seconds.
METRICS_V5_MODE false true, false Enables legacy compatibility mode (Metrics will be visible in v5 UI).
DEVICE_ZONE_ID 1 Text, 255 characters The poller will only poll devices that are in the specific zone.
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.

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