:::info 视频演示 https://www.bilibili.com/video/BV1Xh411b7dM/ :::
架构
- Prometheus Server 用于定时抓取数据指标(metrics)、存储时间序列数据(TSDB)
- Jobs/exporte 收集被监控端数据并暴露指标给Prometheus
- Pushgateway 监控端的数据会用push的方式主动传给此组件,随后被Prometheus 服务定时pull此组件数据即可
- Alertmanager 报警组件,可以通过邮箱、微信等方式
- Web UI 用于多样的UI展示,一般为Grafana
- 还有一些例如配置自动发现目标的小组件和后端存储组件
部署
创建 grafana 存储目录
# 因为grafana用户会在这个目录写入文件,直接设置777权限
mkdir ./prom_grafana && cd prom_grafana
mkdir -p ./grafana-storage && chmod 777 -R ./grafana-storage
docker-compose.yml
version: "3.7"
services:
prom:
image: prom/prometheus
container_name: prom
restart: always
privileged: true
environment:
TZ: "Asia/Shanghai"
ports:
- "9090:9090"
# 执行 docker cp prom:/etc/prometheus/prometheus.yml ./ 后打开volumes
# volumes:
# - ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
container_name: grafana
restart: always
privileged: true
environment:
TZ: "Asia/Shanghai"
GF_FEATURE_TOGGLES_ENABLE: "ngalert" # 此选项,开启alert 8特性,默认没开启
# pending 为 webhook 提供图片渲染
GF_RENDERING_SERVER_URL: http://renderer:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
GF_LOG_FILTERS: rendering:debug
ports:
# 3000 与 gitee 冲突,改用 3030
- "3030:3000"
volumes:
- ./grafana-storage:/var/lib/grafana
# 执行 docker cp grafana:/etc/grafana/grafana.ini ./ 后添加此行
# - ./grafana.ini:/etc/grafana/grafana.ini
depends_on:
- prom
- renderer
renderer:
image: grafana/grafana-image-renderer:latest
container_name: renderer
restart: always
privileged: true
environment:
TZ: "Asia/Shanghai"
networks:
default:
external:
name: jcbnet
修改 docker-compose
docker-compose up -d
# 启动完成后,做如下操作,实现配置持久化
docker cp prom:/etc/prometheus/prometheus.yml ./
docker cp grafana:/etc/grafana/grafana.ini ./
sed -i "s/# volumes/volumes/g" docker-compose.yml
sed -i "s/# - .\/prometheus.yml/- .\/prometheus.yml/g" docker-compose.yml
sed -i "s/# - .\/grafana.ini/- .\/grafana.ini/g" docker-compose.yml
docker-compose up -d
修改 promethues.yml
# scrape_configs: 添加 grafana 支持
- job_name: 'grafana'
static_configs:
- targets: ['grafana:3000']
配置生效
docker restart prom
prometheus
界面
grafana
添加 promethues 源
http://${IP}:3000 默认密码: admin/admin