2015-02-09 20:30:49 +00:00
|
|
|
# Alertmanager
|
2013-07-16 15:09:56 +00:00
|
|
|
|
2015-05-10 18:47:11 +00:00
|
|
|
Prometheus Alertmanager
|
|
|
|
|
|
|
|
**WARNING: The Alertmanager is still very experimental and early in its
|
|
|
|
development and design. More than any other Prometheus component, it will still
|
|
|
|
undergo frequent breaking changes, including ones that will affect its
|
|
|
|
architecture as a whole. While we do plan on making it mature and stable
|
|
|
|
eventually, use it at your own risk for now.**
|
2015-01-29 16:38:05 +00:00
|
|
|
|
2015-02-09 20:30:49 +00:00
|
|
|
Alertmanager receives alerts generated by Prometheus and takes care of the
|
|
|
|
following aspects:
|
|
|
|
|
|
|
|
* manual silencing of specific alerts
|
|
|
|
* inhibiting alerts based on alert dependencies
|
|
|
|
* aggregating alerts by labelset
|
|
|
|
* handling notification repeats
|
2015-07-29 18:51:33 +00:00
|
|
|
* sending alert notifications via external services:
|
|
|
|
* email
|
|
|
|
* generic web hook
|
|
|
|
* [Amazon SNS](http://aws.amazon.com/sns/)
|
|
|
|
* [Flowdock](https://www.flowdock.com/)
|
|
|
|
* [HipChat](http://www.hipchat.com/)
|
|
|
|
* [OpsGenie](https://www.opsgenie.com/)
|
|
|
|
* [PagerDuty](http://www.pagerduty.com/)
|
|
|
|
* [Pushover](https://www.pushover.net/)
|
|
|
|
* [Slack](http://www.slack.com/)
|
2015-07-27 01:18:17 +00:00
|
|
|
|
|
|
|
Note: Amazon SNS notifications depend on your Amazon credentials being configured as described [here](https://github.com/aws/aws-sdk-go).
|
2015-02-09 20:30:49 +00:00
|
|
|
|
|
|
|
See [config/fixtures/sample.conf.input](config/fixtures/sample.conf.input) for
|
|
|
|
an example config. The full configuration schema including a documentation for
|
|
|
|
all possible options can be found in
|
|
|
|
[config/config.proto](config/config.proto). Alertmanager automatically reloads
|
|
|
|
the configuration when it changes, so restarts are not required for
|
|
|
|
configuration updates.
|
|
|
|
|
|
|
|
## Building and running
|
|
|
|
|
|
|
|
make
|
2015-05-23 20:34:45 +00:00
|
|
|
./alertmanager -config.file=/path/to/alertmanager.conf
|
2015-02-09 20:30:49 +00:00
|
|
|
|
|
|
|
## Configuring Prometheus to send alerts
|
|
|
|
|
|
|
|
To make Prometheus send alerts to your Alertmanager, set the `alertmanager.url`
|
|
|
|
command-line flag on the server:
|
|
|
|
|
|
|
|
./prometheus -alertmanager.url=http://<alertmanager-host>:<port> <...other flags...>
|
|
|
|
|
|
|
|
Prometheus only pushes firing alerts to Alertmanager. Alertmanager expects to
|
|
|
|
receive regular pushes of firing alerts from Prometheus. Alerts which are not
|
|
|
|
refreshed for a period of `-alerts.min-refresh-period` (5 minutes by
|
|
|
|
default) are expired.
|
|
|
|
|
|
|
|
Alertmanager only shows alerts which are currently firing and pushed to
|
|
|
|
Alertmanager.
|
|
|
|
|
|
|
|
## Running tests
|
|
|
|
|
2015-10-24 20:13:47 +00:00
|
|
|
[![Build Status](https://travis-ci.org/prometheus/alertmanager.svg?branch=master)](https://travis-ci.org/prometheus/alertmanager)
|
2015-04-17 22:21:54 +00:00
|
|
|
|
2015-02-09 20:30:49 +00:00
|
|
|
make test
|
|
|
|
|
|
|
|
## Caveats and roadmap
|
|
|
|
|
|
|
|
Alertmanager is still in an experimental state. Some of the known caveats which
|
|
|
|
are going to be addressed in the future:
|
|
|
|
|
|
|
|
* Alertmanager is run as a single instance and does not provide high
|
|
|
|
availability yet. We plan on clustering multiple replicated Alertmanager
|
|
|
|
instances to ensure reliability in the future.
|
|
|
|
* Relatedly, silence information is currently only persisted locally in a file
|
|
|
|
and lost if you lose the machine your Alertmanager is running on.
|
|
|
|
* Alert aggregation needs to become more flexible. Currently alerts are
|
|
|
|
aggregated based on their full labelsets. In the future, we want to allow
|
|
|
|
grouping alerts based on a subset thereof (for example, grouping all alerts
|
|
|
|
with one alert name and from the same job together).
|
|
|
|
* For alert dependencies, we want to support time delays: if alert A inhibits
|
|
|
|
alert B due to a dependency and B begins firing before A, wait for a
|
|
|
|
configurable amount of time for A to start firing as well before sending
|
|
|
|
notifications for B. This is not yet supported.
|
|
|
|
* Alertmanager has not been tested or optimized for high alert loads yet.
|
2015-06-07 14:47:20 +00:00
|
|
|
|
|
|
|
## Using Docker
|
|
|
|
|
|
|
|
You can deploy the Alertmanager using the [prom/alertmanager](https://registry.hub.docker.com/u/prom/alertmanager/) Docker image.
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker pull prom/alertmanager
|
|
|
|
|
|
|
|
docker run -d -p 9093:9093 -v $PWD/alertmanager.conf:/alertmanager.conf \
|
|
|
|
prom/alertmanager -config.file=/alertmanager.conf
|
|
|
|
```
|