编写docker-compose.xml
version: "3.9"
services:
prometheus:
image: "prom/prometheus:v2.42.0"
networks:
- prometheus
restart: always
volumes:
- prometheus:/etc/prometheus
ports:
- "9090:9090"
depends_on:
- alertmanager
alertmanager:
image: "bitnami/alertmanager:0.25.0"
networks:
- prometheus
restart: always
volumes:
- alertmanager:/opt/bitnami/alertmanager/conf
ports:
- "9093:9093"
volumes:
prometheus:
alertmanager:
networks:
prometheus:
配置存储卷prometheus,alertmanager方便配置
测试启动一下
docker compose -f docker-compose.xml up -d
使用的是docker compose v2 Docker Compose,启动成功后会创建存储卷和网络
编辑配置文件
/home/docker/lib/docker/volumes/prometheus_prometheus/_data/prometheus.yml
global:
scrape_interval: 10s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 10s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager:9093
rule_files:
- "rules/*.yml"
scrape_configs:
- job_name: 'feng'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
scheme: "https"
static_configs:
- targets: ['feng.com']
配置prometheus规则文件
- 在当前目录创建rules文件夹
[root@localhost _data]# ls
console_libraries consoles prometheus.yml rules
- 在文件夹创建rule.yml
groups:
- name: feng-down
rules:
- alert: test-node-down
expr: up{instance="feng.com:443"} == 0
for: 5s
labels:
status: Warn
team: test
annotations:
description: "feng service is Down ! ! !"
summary: "测试服务停了,请留意!!!"
配置prometheus规则文件
/home/docker/lib/docker/volumes/prometheus_alertmanager/_data/config.yml
global:
resolve_timeout: 5m #解析的超时时间
smtp_smarthost: 'smtp.163.com:465' #邮箱smtp地址
smtp_from: 'feng@163.com' #来自哪个邮箱发出的
smtp_auth_username: 'feng@163.com' #邮箱的用户名
smtp_auth_password: '123456' #这里是邮箱的授权密码,不是登录密码
smtp_require_tls: false #是否启用tls
route:
group_by: ['feng']
group_wait: 3s
group_interval: 10s
repeat_interval: 3h
receiver: 'mail'
receivers:
- name: 'mail'
email_configs: #email的配置
- to: 'feng@163.com,666@qq.com' #报警接收人的邮件地址
send_resolved: true #发送恢复通知
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
重启docker compose服务
docker compose -f docker-compose.xml restart