cAdvisor+prometheus+grafana搭建监控页面并嵌入自定义页面中

三者关系

一般公司会有很多docker主机,那么就需要对docker进行监控了,docker监控可以采用docker stats配合shell命令来取值做监控,但是无法传递给prometheus进行采集,zabbix监控docker又比较麻烦,因此就有了谷歌的cadvisor

cadvisor不仅可以搜集一台机器上的所有运行的容器信息,还提供基础查询界面的http接口,方便prometheus进行数据抓取

cadvisor可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,但是cadvisor有个缺陷,只能实时展现当前的监控数据,对于历时数据不做保留,因此需要使cadvisor接入prometheus,由prometheus内置的tsdb数据库进行存储历时数据。

总结:cadvisor采集容器运行信息,将数据传递给promitheus存储,grafana配置数据源为Prometheus进行页面展示。

环境搭建

cadvisor容器化部署:

本例中将容器端口8080暴漏到宿主机9101上,使用浏览器访问 http://自己IP地址:9101访问到cAdvisor组件Web UI。

java 复制代码
docker run  --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 --volume=/cgroup:/cgroup:ro --privileged=true  --publish=9101:8080 --detach=true   --name=cadvisor google/cadvisor

Prometheus容器化部署:

使用启动容器之前先创建挂载目录并赋值操作权限,prometheus.yml中添加cadvisor地址。

java 复制代码
mkdir -p /disk/docker-monitor/prometheus/  #挂载文件时使用

chmod 777 /disk/docker-monitor/prometheus/

docker run -d --name=prometheus -p 9090:9090 -v /disk/docker- monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

部署完成后,使用浏览器访问 http://自己IP地址:9090。点击Status ->Targets页面,发现配置的抓取Job已经显示,并且state是绿色WP,则接入成功。

grafana容器化部署

使用启动容器之前先创建挂载目录并赋值操作权限,defaults.ini为grafana的配置文件。

java 复制代码
mkdir -p /etc/grafana/  #挂载文件时使用

mkdir -p  /etc/grafana/

docker run -d --name=grafana -p 3000:3000 -v /etc/grafana/:/usr/share/grafana/conf/  grafana/grafana

部署完成,访问:http://自己的IP:3000/login,输入账号admin/admin:

创建Prometheus类型数据源,指向刚才搭建的Prometheus:

导入Docker容器监控面板,这里使用14282,也可以自定义模板。

grafana页面嵌入和反向代理访问

nginx配置,首先确保nginx容器和grafana容器在同一网络中。

java 复制代码
location /grafana {
            proxy_pass http://grafana:3000/grafana;
            proxy_send_timeout 300;
            proxy_read_timeout 300;
            proxy_connect_timeout 300;
            add_header Content-Security-Policy upgrade-insecure-requests;
        }

defaults.ini配置:

其中root_url路径就是访问监控面板的路径。

相关推荐
计算机毕设定制辅导-无忧学长1 天前
Grafana 与 InfluxDB 可视化深度集成(二)
信息可视化·数据分析·grafana
云游1 天前
大模型性能指标的监控系统(prometheus3.5.0)和可视化工具(grafana12.1.0)基础篇
grafana·prometheus·可视化·监控
qq_232045572 天前
非容器方式安装Prometheus和Grafana,以及nginx配置访问Grafana
nginx·grafana·prometheus
测试开发Kevin2 天前
详解grafana k6 中stage的核心概念与作用
测试工具·压力测试·grafana
夜莺云原生监控2 天前
Prometheus 监控 Kubernetes Cluster 最新极简教程
容器·kubernetes·prometheus
SRETalk3 天前
Prometheus 监控 Kubernetes Cluster 最新极简教程
kubernetes·prometheus
川石课堂软件测试3 天前
JMeter并发测试与多进程测试
功能测试·jmeter·docker·容器·kubernetes·单元测试·prometheus
SRETalk4 天前
夜莺监控的几种架构模式详解
prometheus·victoriametrics·nightingale·夜莺监控
天翼云开发者社区4 天前
Grafana无法启动修复解决
grafana
Ditglu.5 天前
使用Prometheus + Grafana + node_exporter实现Linux服务器性能监控
服务器·grafana·prometheus