一. 报警机制
在 prometheus 中定义你的监控规则,即配置一个触发器,某个值超过了设置的阈值就触发告警, prometheus 会推送当前的告警规则到 alertmanager,alertmanager 收到了会进行一系列的流程处理,然后发送到接收人手里。
Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,例如邮件、微信、钉钉、Slack 等常用沟通工具,而且很容易做到告警信息进行去重,降噪,分组等,是一款很好用的告警通知系统。
下文告警对象为钉钉机器人,lertManager+Webhook的安装及配置,均采用docker方式。
二.启动并配置 Prometheus
1.docker启动Prometheus
docker run -d \
--restart always \
--name prometheus \
-p 9090:9090 \
-v /opt/prometheus/rules:/usr/local/prometheus/rules \
-v /opt/prometheus/groups:/usr/local/prometheus/groups \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus:main \
--config.file=/etc/prometheus/prometheus.yml
# prometheus配置文件prometheus.yml 挂载
# 挂载文件夹: rules规则告警信息,groups监控信息
Prometheus 默认配置文件 prometheus.yml
在容器内路径为 /etc/prometheus/prometheus.yml.
包含警告 和监控配置信息
# cat prometheus.yml
global:
scrape_interval: 10s
evaluation_interval: 10s
# 警报管理器配置
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.1.140:9093
rule_files: #加载规则一次,并根据全局evaluation_interval定期对其进行评估
- "/usr/local/prometheus/rules/*.yml"
# 监控管理器配置
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['192.168.1.140:9090']
labels:
instance: prometheus
- job_name: linux
file_sd_configs: #自动加载方式
- files: ['/usr/local/prometheus/groups/nodegroups/*.json']
ps:监控配置没有使用默认静态配置方式static_configs 缺点:每次配置都需要重启 Prometheus 服务;如需要分批次添加很多 No