:::info 视频演示 https://www.bilibili.com/video/BV1Xh411b7dM/ :::

架构

image.png

  • Prometheus Server 用于定时抓取数据指标(metrics)、存储时间序列数据(TSDB)
  • Jobs/exporte 收集被监控端数据并暴露指标给Prometheus
  • Pushgateway 监控端的数据会用push的方式主动传给此组件,随后被Prometheus 服务定时pull此组件数据即可
  • Alertmanager 报警组件,可以通过邮箱、微信等方式
  • Web UI 用于多样的UI展示,一般为Grafana
  • 还有一些例如配置自动发现目标的小组件和后端存储组件

    部署

    创建 grafana 存储目录

    1. # 因为grafana用户会在这个目录写入文件,直接设置777权限
    2. mkdir ./prom_grafana && cd prom_grafana
    3. mkdir -p ./grafana-storage && chmod 777 -R ./grafana-storage

    docker-compose.yml

    1. version: "3.7"
    2. services:
    3. prom:
    4. image: prom/prometheus
    5. container_name: prom
    6. restart: always
    7. privileged: true
    8. environment:
    9. TZ: "Asia/Shanghai"
    10. ports:
    11. - "9090:9090"
    12. # 执行 docker cp prom:/etc/prometheus/prometheus.yml ./ 后打开volumes
    13. # volumes:
    14. # - ./prometheus.yml:/etc/prometheus/prometheus.yml
    15. grafana:
    16. image: grafana/grafana
    17. container_name: grafana
    18. restart: always
    19. privileged: true
    20. environment:
    21. TZ: "Asia/Shanghai"
    22. GF_FEATURE_TOGGLES_ENABLE: "ngalert" # 此选项,开启alert 8特性,默认没开启
    23. # pending 为 webhook 提供图片渲染
    24. GF_RENDERING_SERVER_URL: http://renderer:8081/render
    25. GF_RENDERING_CALLBACK_URL: http://grafana:3000/
    26. GF_LOG_FILTERS: rendering:debug
    27. ports:
    28. # 3000 与 gitee 冲突,改用 3030
    29. - "3030:3000"
    30. volumes:
    31. - ./grafana-storage:/var/lib/grafana
    32. # 执行 docker cp grafana:/etc/grafana/grafana.ini ./ 后添加此行
    33. # - ./grafana.ini:/etc/grafana/grafana.ini
    34. depends_on:
    35. - prom
    36. - renderer
    37. renderer:
    38. image: grafana/grafana-image-renderer:latest
    39. container_name: renderer
    40. restart: always
    41. privileged: true
    42. environment:
    43. TZ: "Asia/Shanghai"
    44. networks:
    45. default:
    46. external:
    47. name: jcbnet

    修改 docker-compose

    1. docker-compose up -d
    2. # 启动完成后,做如下操作,实现配置持久化
    3. docker cp prom:/etc/prometheus/prometheus.yml ./
    4. docker cp grafana:/etc/grafana/grafana.ini ./
    5. sed -i "s/# volumes/volumes/g" docker-compose.yml
    6. sed -i "s/# - .\/prometheus.yml/- .\/prometheus.yml/g" docker-compose.yml
    7. sed -i "s/# - .\/grafana.ini/- .\/grafana.ini/g" docker-compose.yml
    8. docker-compose up -d

    修改 promethues.yml

    1. # scrape_configs: 添加 grafana 支持
    2. - job_name: 'grafana'
    3. static_configs:
    4. - targets: ['grafana:3000']

    配置生效

    1. docker restart prom

    prometheus

    界面

    http://${IP}:9090

image.png

grafana

添加 promethues 源

http://${IP}:3000 默认密码: admin/admin

image.pngimage.pngimage.pngimage.png

导入模板

image.png

资源

prometheus export 下载

image.png

grafana模板下载