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路径就是访问监控面板的路径。

相关推荐
java_logo19 小时前
MILVUS Docker 容器化部署指南
运维·人工智能·docker·容器·prometheus·milvus
juma90022 天前
西门子S7-200SMART_PLC基于RS485通讯恒压供水一拖二程序样例,采样PLC+sm...
prometheus
❀͜͡傀儡师2 天前
Docker 部署 Grafana + Loki + Promtail 日志可视化搭建
docker·容器·grafana
袁煦丞 cpolar内网穿透实验室2 天前
Grafana突破局域网限制,随时随地访问数据看板! cpolar内网穿透实验室第 515 个成功挑战
grafana·远程工作·内网穿透·cpolar·随时访问
比奥利奥还傲.2 天前
无需复杂操作!Prometheus+cpolar+实现跨网监控自由
prometheus
听风吟丶3 天前
云原生 APM 实战:Prometheus Operator+K8s 构建容器化微服务监控体系
云原生·kubernetes·prometheus
听风吟丶3 天前
Java 微服务 APM 实战:Prometheus+Grafana 构建全维度性能监控与资源预警体系
java·微服务·prometheus
递归尽头是星辰3 天前
架构实战:1 小时搭建Java微服务指标监控体系(Prometheus+Grafana 落地指南)
grafana·prometheus·可观测性·micrometer·指标监控·java 微服务监控
IDOlaoluo5 天前
Windows 安装 Grafana 看板详细步骤
windows·grafana
忙里偷闲学python5 天前
prometheus部署,解锁监控新篇章
信息可视化·数据分析·prometheus