在Docker环境中,使用Alertmanager将警报发送到Slack
本文中要做的事情
使用docker-compose启动Prometheus和alertmanager容器,并确认Slack接收到的警报。

环境
在Docker环境中,创建一个可以运行以下应用程序的容器:
– Prometheus版本:2.23.0
– alertmanager版本:0.21.0
环境配置
本文将使用docker-compose来构建Prometheus和alertmanager。首先,按照以下方式创建文件结构。
docker-compose.yaml
prometheus
-- prometheus.yaml
-- alert_rules.yaml
alertmanager
-- alertmanager.yaml
接下来,使用命令docker network create –subnet=172.19.0.0/19 prom_net来创建docker网络。在设置文件和docker网络构建完成后,使用以下的docker-compose.yaml来构建docker环境。
version: '2.2'
# define services
services:
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- ./prometheus:/etc/prometheus
command: "--config.file=/etc/prometheus/prometheus.yaml --storage.tsdb.retention.time=10m"
ports:
- 9090:9090
restart: "no"
alertmanager:
image: prom/alertmanager
container_name: alertmanager
volumes:
- ./alertmanager:/etc/alertmanager
command: "--config.file=/etc/alertmanager/alertmanager.yaml"
ports:
- 9093:9093
restart: "no"
# define network
networks:
default:
external:
name: prom_net
普羅米修斯的配置
Prometheus的配置文件如下。请在slack_api_url: ‘< Your channel on Slack >’处输入您创建的任意Slack的Webhook URL。
global:
slack_api_url: '< Your channel on Slack >'
route:
receiver: slack
routes:
- match:
receiver: 'slack'
receivers:
- name: slack
slack_configs:
- channel: '< Channel Name >'
text: '< Optional Text>'
以下是 Prometheus 针对 Metric 发送警报的配置。关于发送警报的条件,您可以选择任意适当的指标,来进行自定义的选择。
groups:
- name: prometheus_build
rules:
- alert: test
expr: prometheus_build_info == 1
for: 10s
labels:
severity: notice
annotations:
text: testsing alert
考试
最后,启动每个应用程序的容器,并确认由Prometheus和Slack发送的警报。顺便说一下,以下是由docker-compose组成的容器启动和停止命令。
docker-compose up
docker-compose down
普罗米修斯

松弛

感受
我使用Prometheus和alertmanager在Slack上确认了警告是否能够接收。未来,我希望能够将警报发送到Elasticsearch,并在Kibana上查看日志。在本文中,为了确认是否能够发送警报,我使用了Slack的频道。