Alertmanagerπ£
Alertmanager Overviewπ£
Alertmanager is the frontend used for sending and managing alerts for a prometheus-stack installation. Out of the box this package installs a single replica of both prometheus and alertmanager which are pre-configured to sync. Alerts are evaluated and generated within Prometheus and then posted to the REST API for Alertmanager to manage based on itβs configuration.
Upstream documentation can be rather sparse about exactly whatβs required to configure Alertmanager and whatβs recommended. This doc will go over setting up SMTP & webhook alerts destined for email inboxes and Mattermost (or slack) installations.
SMTP Alert Configurationπ£
It is recommended to keep the default βnullβ receiver as that is where you can route non-important alerts like the built in Watchdog alert which only exists to show the end-user that the communication between Prometheus & Alertmanager is working as expected. Here is a link to the full list of options available for the email_config
section within alertmanager.
alertmanager:
config:
global:
resolve_timeout: 5m
route:
# Keeping the default of 'job' but 'alertname' is also used often
group_by: ['namespace']
group_wait: 30s
group_interval: 5m
# repeat_interval upped from default of 12h
repeat_interval: 24h
# receiver updated from 'null' to 'smtp-email' so it becomes the default
receiver: 'smtp-email'
routes:
- matchers:
alertname: "InfoInhibitor|Watchdog"
receiver: 'null'
receivers:
- name: 'null'
# Adding a new receiver below the default 'null' receiver
- name: 'smtp-email'
email_configs:
- to: `it@example.org, ops.example.org`
from: no-reply@example.org
smarthost: smtp.office365.org:587
auth_username:
auth_identity:
auth_password:
require_tls: true
send_resolved: true
templates:
- '/etc/alertmanager/config/*.tmpl'
Chat Webhook Alert Configurationπ£
Alertmanager contains built in support for a few chat apps: slack, telegram & wechat. The included slack configuration can be used to send to Mattermost Incoming Webhooks within an installation. Just like the example above weβll want to keep the existing receiver and route for the βnullβ receiver so that the built in Watchdog alert isnβt sent to your new receiver. Here is a link to the full list of options available for the slack_config
section within alertmanager, however to send to a mattermost incoming webhook, only the value show below is needed.
alertmanager:
config:
global:
resolve_timeout: 5m
route:
# Keeping the default of 'job' but 'alertname' is also used often
group_by: ["job"]
group_wait: 30s
group_interval: 5m
# repeat_interval upped from default of 12h
repeat_interval: 24h
# receiver updated from 'null' to 'mattermost' so it becomes the default
receiver: "mattermost"
routes:
- match:
alertname: Watchdog
receiver: "null"
receivers:
- name: "null"
# Adding a new receiver below the default 'null' receiver
- name: "mattermost"
slack_configs:
- api_url: https://chat.domain.url/hooks/AAAAAAAAAAAAAAA
templates:
- "/etc/alertmanager/config/*.tmpl"