:::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_grafanamkdir -p ./grafana-storage && chmod 777 -R ./grafana-storage
docker-compose.yml
version: "3.7"services:prom:image: prom/prometheuscontainer_name: promrestart: alwaysprivileged: trueenvironment:TZ: "Asia/Shanghai"ports:- "9090:9090"# 执行 docker cp prom:/etc/prometheus/prometheus.yml ./ 后打开volumes# volumes:# - ./prometheus.yml:/etc/prometheus/prometheus.ymlgrafana:image: grafana/grafanacontainer_name: grafanarestart: alwaysprivileged: trueenvironment:TZ: "Asia/Shanghai"GF_FEATURE_TOGGLES_ENABLE: "ngalert" # 此选项,开启alert 8特性,默认没开启# pending 为 webhook 提供图片渲染GF_RENDERING_SERVER_URL: http://renderer:8081/renderGF_RENDERING_CALLBACK_URL: http://grafana:3000/GF_LOG_FILTERS: rendering:debugports:# 3000 与 gitee 冲突,改用 3030- "3030:3000"volumes:- ./grafana-storage:/var/lib/grafana# 执行 docker cp grafana:/etc/grafana/grafana.ini ./ 后添加此行# - ./grafana.ini:/etc/grafana/grafana.inidepends_on:- prom- rendererrenderer:image: grafana/grafana-image-renderer:latestcontainer_name: rendererrestart: alwaysprivileged: trueenvironment: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.ymlsed -i "s/# - .\/prometheus.yml/- .\/prometheus.yml/g" docker-compose.ymlsed -i "s/# - .\/grafana.ini/- .\/grafana.ini/g" docker-compose.ymldocker-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



