Docker 下 Prometheus + Grafana + Exporter 配置

Prometheus架构图

Prometheus安装

安装位置:...
安装环境:CentOS / docker

Prometheus

  • 端口:9090
  • 存储目录:/apps/prom
  • 配置文件:/apps/prom/prometheus.yml
  • 作用:核心模块

Node exporter

  • 端口:9100
  • 存储目录:(无)
  • 配置文件:(无)
  • 作用:收集系统信息的exporter

Alert manager (暂未启用)

  • 端口:9093、9094
  • 存储目录:/apps/prom/alertmanager
  • 配置文件:/apps/prom/alertmanager/alertmanager.yml
  • 告警配置文件:/apps/prom/alert-rules.yml
  • 作用:告警

prometheus-webhook-dingtalk(暂未启用)

  • 端口:8060
  • 存储目录:(无)
  • 配置文件:/apps/prom/dingconfig.yml
  • 作用:配合alertmanager,向钉钉发信

JMeter-Prometheus-Plugin

  • 端口:9877 [内部80]
  • 存储目录:/apps/prom/jmeter
  • 配置文件:(无)
  • 作用:自带jmeter,从存储目录拿取测试文件进行测试,然后将结果反馈至9877端口,待由Prometheus接收

Grafana

  • 端口:3000
  • 存储目录:/apps/prom/grafana
  • 配置文件:/apps/prom/grafana/grafana.ini
  • 作用:可视化Prometheus结果,内置报警模块,可发邮件、钉钉报警

Jmeter 监控接口配置

  1. 编写jmeter测试文件
    1. 下载apache-jmeter,添加jmeter-prometheus-plugin库(https://search.maven.org/remotecontent?filepath=com/github/johrstrom/jmeter-prometheus-plugin/0.6.0/jmeter-prometheus-plugin-0.6.0.jar)到lib
    2. 使用jmeter-prometheus-plugin示例文件中的Prometheus Metrics声明监控的id和类型
    3. 写测试计划,配置线程永远循环,添加计时器。在后置处理器BeanShell或断言BeanShell中修改监控的id值
    4. 使用Prometheus Listener声明提交的监控的id
    5. 测试,访问 http://localhost:9270 查看运行结果。
  2. 在docker启动jmeter-prometheus-plugin
    1. docker pull germey/jmeter
    2. 由docker启动jmeter-prometheus-plugin,将外部特定端口(如9877)的映射为内部80端口,将外部存储jmx的目录映射为内部/app,为该container添加启动参数 *.jmx
  3. 为prometheus添加监控对象
    1. 修改prometheus.yml,添加被监控的ip和端口
  4. 在grafana中配置可视化及告警
    1. 配置告警channel,类型dingding,地址oapi,Disable Resolve Message表示当问题被处理后,不报告ok。TEST测试告警渠道是否OK
    2. 添加dashboard
    3. 添加panel
    4. metrics填写在第1步声明的监控的id,查看即时数据
    5. 添加alert - Evaluate every X for Y表示每过 X 开始持续 Y 审查一次数据,如果数据不符条件就告警 - Conditions 告警条件,可选函数,最近的数据值超过或低于或不在什么范围内。可多个条件 和 或

注意事项

  1. 默认的jmeter不含json包,需要自行下载放入lib
  2. 多个测试可以用一个jmx文件
  3. Disable Resolve Message 不勾选时,grafana会在出错的时候发一次告警,恢复的时候发一次告警。并不会每次检查有问题都发。
原文地址:https://www.cnblogs.com/pravez/p/14153378.html