grafan+cadvisor+prometheus监控docker
grafan+cadvisor+prometheus监控docker:
运行cadvisor:
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 \
--publish=8081:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
运行grafana:
docker run -d \
--name=grafana \
-p 3000:3000 \
grafana/grafana
运行prometheus:
docker run -d \
--name=prometheus \
-p 9090:9090 \
prom/prometheus
# 访问端口:
http://192.168.3.100:3000/
http://192.168.3.100:9090/
http://192.168.3.100:8081/
配置cadvisor:
访问入口: http://[ip]:8081
能看到数据信息就说明配置没问题

配置prometheus:
#进入prometheus
docker exec -it prometheus sh
#修改配置
vim /etc/prometheus/prometheus.yml
static_configs:
- targets: ['localhost:9090']
- job_name: 'docker'
static_configs:
- targets: ['192.168.3.100:8081']
#修改完毕后重启 prometheus 容器:
docker restart prometheus
进入web页面:


点击 http://192.168.3.100:8081/metrics能看到数据,说明配置没问题
能看到监控数据则没有问题
配置启动grafana:
docker run -d \
> --name=grafana \
> -p 3000:3000 \
grafana/grafana
# 默认账号密码都是 admin


添加数据源:

选择 prometheus 为数据源:


选择这个源:

添加数据展示 仪表盘:


container_memory_usage_bytes{image!="",name="cadvisor"}
container_memory_max_usage_bytes{image!="",name="cadvisor"}
填写完毕后 保存配置
#官方有很多仪表盘提供使用
#其中较为适合监控docker容器的仪表盘号: 193



效果:


问题:
grafana图表无数据问题原因:
1. 如果grafna没有数据,可能时时间不对,需要每台服务器时间保持一致
2. promql存在问题,如:版本不兼容
3. prometheus里无数据,需要排查prometheus
多服务器监控docker
默认只能监控当前主机,如果需要监控多个主机,就需要做以下操作步骤:
1. 被监控主机安装 cadvisor
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 \
--publish=8081:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
2. 在其他服务器运行prometheus:
docker run -d \
--name=prometheus \
-p 9090:9090 \
prom/prometheus
3. 在prometheus容器中新增被监控服务器的IP[所有IP]
docker exec -it prometheus sh
查看:
static_configs:
- targets: ['localhost:9090']
- job_name: 'docker'
static_configs:
- targets: ['192.168.3.100:8081']
修改为:
- targets: ['localhost:9090'] #在这一行下方添加:
- job_name: 'docker'
static_configs:
- targets: ['192.168.3.100:8081','192.168.3.85:8081']
#targets填写:cadvisor 的IP和端口。targets:
修改完成,重启 prometheus容器 即可
3. 重启prometheus容器:
docker restart prometheus
页面添加:
进入prometheus 设置页面 点击 : ’Add data source‘ 添加数据源
填写被监控服务器的IP:
页面检查:

通过访问:
http://192.168.3.85:8081/containers/
http://192.168.3.100:8081/containers/
查看是否安装 cadvisor
导入监控:

label_values(up,instance)
多个主机配置配置这个是一样的
做了这一步后去编辑图表,让他显示其他节点信息,节点多的情况下每个节点都需要增加 query0配置 label_values(up,instance)

# 在编辑页面修改参数为:rate(container_cpu_user_seconds_total{image!="",instance="$Node"}[5m]) * 100rate(container_cpu_user_seconds_total{image!=""}[5m]) * 100#保存即可这个$Node 就是 Variables 这个Name: query0 也可以配置为 $query0 也可以配置为 $Node 那下面图这里就要改成 $Node
添加复选框
找到:Home / Settings选择 Variables 右边选项卡出现后在 Query 后面 添加: label_values(up,instance)修改完成后 保存或者 update 即可

#因为这里 看到 variable中定义的 Name: query0 那么他就是获取信息的关键在每个图形页面添加如下设置:,instance="$query0"添加完成后点击 save 保存
grafan+cadvisor+prometheus监控docker的更多相关文章
- Prometheus 监控Docker服务器及Granfanna可视化
Prometheus 监控Docker服务器及Granfanna可视化 cAdvisor(Container Advisor)用于收集正在运行的容器资源使用和性能信息. 使用Prometheus监控c ...
- Prometheus监控Docker Swarm集群(一)
Prometheus监控Docker Swarm集群(一) cAdvisor简介 为了解决容器的监控问题,Google开发了一款容器监控工具cAdvisor(Container Advisor),它为 ...
- 使用Prometheus监控docker compose方式部署的ES
需求 收集 ES 的指标, 并进行展示和告警; 现状 ES 通过 docker compose 安装 所在环境的 K8S 集群有 Prometheus 和 AlertManager 及 Grafana ...
- Grafana连接Prometheus监控Docker平台
Grafana是一款开源的分析平台. Grafana allows you to query, visualize, alert on and understand your metrics no m ...
- Prometheus入门到放弃(4)之cadvisor监控docker容器
Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行. 1.下载镜像 [root@prometheus-server ...
- 6. 使用cadvisor监控docker容器
Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行.这里我们可以服务端和客户端都使用cadvisor 客户端 1.下 ...
- prometheus监控(小试牛刀)
prometheus监控(小试牛刀) 环境:全部服务都是基于docker运行 本文略微草率,好文章在这里,特别好如下: https://www.cnblogs.com/tchua/p/11120228 ...
- cAdvisor+Prometheus+Grafana监控docker
cAdvisor+Prometheus+Grafana监控docker 一.cAdvisor(需要监控的主机都要安装) 官方地址:https://github.com/google/cadvisor ...
- cAdvisor+InfluxDB+Grafana 监控Docker
容器的监控方案其实有很多,有docker自身的docker stats命令.有Scout.有Data Dog等等,本文主要和大家分享一下比较经典的容器开源监控方案组合:cAdvisor+InfluxD ...
- docker-compose 快速部署Prometheus,监控docker 容器, 宿主机,ceph -- cluster集群
话不多说上菜: 现在环境是这样: ceph 4台: 192.168.100.21 ceph-node1 192.168.100.22 ceph-node2 192.168.100.23 ceph ...
随机推荐
- sql 语句系列(闰年)[八百章之第十九章]
前言 判断闰年还是挺有用的. mysql select DAY(LAST_DAY(DATE_ADD(CURRENT_DATE,INTERVAL -DAYOFYEAR(CURRENT_DATE)+1+3 ...
- 【进阶篇】Java 实际开发中积累的几个小技巧(二)
目录 前言 六.自定义注解 6.1定义注解 6.2切面实现 6.3业务使用 七.抽象类和接口 7.1隔离业务层与 ORM 层 7.2隔离子系统的业务实现 7.3选择对比 文章小结 前言 笔者目前从事一 ...
- redis和memcached的区别和使用场景
Redis 和 Memcached 都是基于内存的数据存储系统.Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-value数据库.Redis是一个开源的key-value存储 ...
- JVM简明笔记3:类加载机制
1 类的加载 类的加载指的是将类的 .class 文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class 对象,用来封装类在方法区内的数据结 ...
- 力扣49(java)-字母异位词分组(中等)
题目: 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次. 示例 1: 输入: ...
- [FAQ] web3js, Error: Please pass numbers as strings or BN objects to avoid precision errors.
我们在调用合约方法时,都可以传一些参数的,比如转账金额 value. value 的单位是 wei,这是一个很小的单位,所以一般数值很大. 注意,把 ether 转 wei 需要先把 ether 的值 ...
- 使用 DISM 安全清理 C 盘 WinSxS 文件夹空间
本文将介绍如何使用系统内置 DISM 工具进行安全清理 C 盘空间,清理 WinSxS 文件夹里面的可回收删除的程序包空间 开始之前,先使用管理员权限打开 CMD 或 PowerShell 命令行窗口 ...
- dotnet 使用 Newtonsoft.Json 输出枚举首字符小写
本文告诉大家如何使用 Newtonsoft.Json 输出枚举首字符小写 实现方法是加上 JsonConverterAttribute 特性,传入 StringEnumConverter 转换器,再加 ...
- MSBuild 输出日志可视化工具 MSBuild Structured Log Viewer 简介
感谢 Vatsan Madhavan 小伙伴推荐的 MSBuild 输出日志可视化工具,这个工具可以使用漂亮的 WPF 界面预览 MSBuild 复杂的输出内容 这是一个完全开源的工具,请看 Kiri ...
- 2018-8-10-WPF-省市县3级联动
title author date CreateTime categories WPF 省市县3级联动 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:2 ...