数据采集器:
cAdvisor (Container Advisor) :用于收集正在运行的容器资源使用和性能信息。
项目地址:https://github.com/google/cadvisor
规划:
192.168.1.112 --run nginx容器
192.168.1.252--run nginx ,jenkins容器
在被监控端run一个cAdvisor
分别在112和252上执行(我的宿主机8080被占用,所以映射8090-->容器的8080)
docker run -d \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8090:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
启动完成,查看接口能否访问到(默认是http://192.168.1.112:8090/containers图形化展示,加载较慢)
http://192.168.1.112:8090/metrics
http://192.168.1.252:8090/metrics
Prometheus添加被监控端
vim prometheus.yml 在scrape_configs: 下添加
- job_name: 'docker'
metrics_path: '/metrics'
static_configs:
- targets: ['192.168.1.252:8090','192.168.1.112:8090']
重启服务或者kill -HUP PID 热加载 ,让配置生效。
访问prometheus页面。
成功监控到了。现在我们可以用http://192.168.1.112:8090/metrics 中采集数据的字段去联合grafana定义图表了,如
Grafana是通过读取prometheus数据源来展示数据,那prometheus的数据又是从采集器接口搜集出来的值那来的。
Grafana添加图表
docker推荐模板ID :193
这里可以看到两台docker机器只显示了一台,现在需要添加一个导航栏来显示多个。
点击设置
Node为设置的变量,
Label为导航栏标签,
选择数据源prometheus,
在仪表盘加载,
promql语句,将up,instance标签筛选出机器列表。这里的结果展示在label的选择下拉框中
正则匹配: docker主机都是启动8090端口采集,所以要匹配一下。
保存后,在点击每个图表,编辑,在语句那里加入,instance="$Node"
大功告成。