Skip to content

Latest commit

 

History

History
144 lines (108 loc) · 5.77 KB

File metadata and controls

144 lines (108 loc) · 5.77 KB

monasca-notification Dockerfile

This image has a containerized version of the Monasca Notification Engine. For more information on the Monasca project, see the wiki.

Sources: monasca-notification · monasca-docker · Dockerfile

Tags

Images in this repository are tagged as follows:

  • latest: refers to the latest stable point release, e.g. 1.7.0
  • 1.0.0, 1.0, 1: standard semver tags based on git tags in the official repository.
  • newton, ocata, etc: named versions following OpenStack release names built from the tip of stable/RELEASENAME branches in the repository
  • master, master-DATESTAMP: unstable testing builds from the master branch, these may have features or enhancements not available in stable releases, but are not production-ready.

Note that features in this Dockerfile, particularly relating to running in Docker and Kubernetes environments, require code that has not yet been made available in a tagged release. Until this changes, only master images may be available and latest may point to master images.

Usage

The notification engine requires configured instances of MySQL, Kafka, Zookeeper, and the monasca-api. In environments resembling the official docker-compose or Kubernetes environments, this image requires little to no configuration and can be minimally run like so:

docker run monasca/notification:latest

However, without any notification plugins enabled (the default config), the engine will not be particularly useful. See below for instructions on enabling and configuring plugins.

Configuration

Variable Default Description
MYSQL_DB_HOST mysql MySQL hostname
MYSQL_DB_PORT 3306 MySQL port
MYSQL_DB_USERNAME notification MySQL username
MYSQL_DB_PASSWORD password MySQL password
MYSQL_DB_DATABASE mon MySQL database name
MYSQL_WAIT_RETRIES 24 # of tries to verify MySQL availability
MYSQL_WAIT_DELAY 5 # seconds between retry attempts
KAFKA_URI kafka:9092 If true, disable remote root login
KAFKA_WAIT_FOR_TOPICS defaults Comma-separated list of topic names to check
KAFKA_WAIT_RETRIES 24 # of tries to verify Kafka availability
KAFKA_WAIT_DELAY 5 # seconds between retry attempts
ZOOKEEPER_URL zookeeper:2181 Zookeeper URL
ALARM_PROCESSORS 2 # of alarm processing threads
NOTIFICATION_PROCESSORS 2 # of notification processing threads
RETRY_INTERVAL 30 Retry interval in seconds
RETRY_MAX_ATTEMPTS 5 Max number of notification retries
LOG_LEVEL WARN Python logging level, e.g. DEBUG, INFO, WARN
STATSD_HOST unset Monasca StatsD host for internal metrics
STATSD_PORT unset Monasca StatsD port for internal metrics
NF_PLUGINS unset See below

Notification Plugins

A list of notification plugins can be provided by setting NF_PLUGINS to a comma-separated list of plugin names, e.g. email,webhook,hipchat.

Email

Name: email

This plugin sends email notifications when an alarm is triggered.

Options:

  • NF_EMAIL_SERVER: SMTP server address, required, unset by default
  • NF_EMAIL_PORT: SMTP server port, default: 25
  • NF_EMAIL_USER: SMTP username, optional, unset by default
  • NF_EMAIL_PASSWORD, SMTP password, required only if NF_EMAIL_USER is set
  • NF_EMAIL_FROM_ADDR: "from" field for emails sent, e.g. "Name" <[email protected]>

Webhook

Name: webhook

This plugin calls a webhook when an alarm is triggered. Specific parameters, like the URL to load, are part of the notification rather than the notification plugin.

Options:

  • NF_WEBHOOK_TIMEOUT: timeout in seconds, default: 5

PagerDuty

Name: pagerduty

Creates a PagerDuty event for the given alarm.

Options:

  • NF_PAGERDUTY_TIMEOUT: timeout in seconds, default: 5
  • NF_PAGERDUTY_URL: PagerDuty Event API endpoint, defaults to official URL

HipChat

Name: hipchat

Notifies via a HipChat message to some room. Authentication and destination details are configured with the notification.

Options:

  • NF_HIPCHAT_TIMEOUT: timeout in seconds, default: 5
  • NF_HIPCHAT_SSL_CERTS: path to SSL certs, default: system certs
  • NF_HIPCHAT_INSECURE: if true, don't verify SSL
  • NF_HIPCHAT_PROXY: if set, use the given HTTP(S) proxy server to send notifications

Slack

Name: slack

Notifies via a Slack message.

Options:

  • NF_SLACK_TIMEOUT: timeout in seconds, default: 5
  • NF_SLACK_CERTS: path to SSL certs, default: system certs
  • NF_SLACK_INSECURE: if true, don't verify SSL
  • NF_SLACK_PROXY: if set, use the given HTTP(S) proxy server to send notifications