在Mac上启动Prometheus和Alert Manager,并发送通知到Slack
以下是我试用该文章时的工作备忘录。
将由 Prometheus 监控产生的警报发布到 Slack。
我认为看一下上面的资料会更详细。
另外,本例为在撰写文章时使用最新版本的Intel Mac进行确认。
让普罗米修斯动起来
从以下位置找到并复制Mac(darwin)版本的二进制文件的URL。
下载
wget https://github.com/prometheus/prometheus/releases/download/v2.33.2/prometheus-2.33.2.darwin-amd64.tar.gz
tar -zxvf prometheus-2.33.2.darwin-amd64.tar.gz
cd prometheus-2.33.2.darwin-amd64
将prometheus.yml进行如下编辑
global: # (1)
scrape_interval: 15s
evaluation_interval: 15s
alerting: # (2)
alertmanagers:
- static_configs:
- targets:
- localhost:9093
rule_files: # (3)
- rules.yml
scrape_configs: # (4)
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
另外,在同一目录下创建一个名为 rules.yml 的文件。
groups:
- name: test
rules:
- alert: DeadMansSwitch # アラート名
expr: vector(1)
for: 1m
labels:
severity: __severity__
annotations:
summary: テストアラート
description: このアラートは常に発生します
在上述情况下,由于vector(1),会不断触发警报。
执行下面的命令启动Prometheus。
./prometheus
如果没有问题,你可以通过 Mac 访问 http://localhost:9090 来查看表达式浏览器。

设置Slack的传入Webhook。
通过查看以下内容进行设置。
使用 Slack 的 Incoming Webhook
将设置完成后,会显示curl命令的执行示例,将其复制并验证是否可以进行Post操作。
如果Post成功,请记下执行curl时的URL(类似于https://hooks.slack.com/services/xxxxxx)。
启动Alert Manager
下载相应的Mac操作系统的二进制文件(darwin)并运行。
找到以下的URL以获取二进制文件,然后复制粘贴。
下载
wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.darwin-amd64.tar.gz
tar -zxvf alertmanager-0.23.0.darwin-amd64.tar.gz
cd alertmanager-0.23.0.darwin-amd64
接下来,编辑alertmanager.yml文件。这次我们将发布到Slack的#general频道上。在slack_api_url中,填写之前记录的WebHook URL。
global:
slack_api_url: 'https://hooks.slack.com/services/xxxxxx'
route:
receiver: 'slack-notifications' # (1)
receivers:
- name: 'slack-notifications' # (2)
slack_configs:
- channel: ''
title: "title"
text: "body"
请运行以下命令以启动 Alert Manager。
./alertmanager
由于这次警报频繁发生,所以一旦稍有发现就会发送通知到 Slack。

访问 http://localhost:9093,并在 Alert Manager 的Web页面上可以看到以下内容,确认收到了警报通知。

此外,通过在屏幕上方选择Prometheus侧的“Alert”,也可以确认情况。
