安装docker

#开启内核转发
echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
sysctl -p
wget -O /etc/yum.repos.d/ali_docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo # centos7.x :
# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加Docker软件包源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装Docker CE
yum install -y docker-ce ## 配置docker rm -f /etc/docker/*
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ajvcw8qn.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl enable docker.service

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=8088: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:8088/

配置cadvisor:

访问入口: http://[ip]:8088

能看到数据信息就说明配置没问题

配置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 查看: cat /etc/prometheus/prometheus.yml static_configs:
- targets: ['localhost:9090']
- job_name: 'docker'
static_configs:
- targets: ['192.168.3.100:8081'] 修改为:
- targets: ['localhost:9090'] #在这一行下方添加,‘job不与targets同级’ :
- job_name: 'docker'
static_configs:
- targets: ['192.168.3.100:8088','192.168.3.85:8088'] #targets填写:cadvisor 的IP和端口。targets:
修改完成,重启 prometheus容器 即可 3. 重启prometheus容器:
docker restart prometheus

页面添加:

进入prometheus 设置页面 点击 :  ’Add data source‘ 添加数据源

填写被监控服务器的IP:

页面检查:

通过访问:

http://192.168.3.85:8088/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]) * 100
rate(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 保存,每个监控选项都需要修添加

docker 监控数据整合的更多相关文章

  1. 【活动】监控宝惹火Docker监控,开放试用中

    要说这两年最火爆的技术有哪些,Docker绝对是其中之一. 有人说,Docker缺少必要的运维监控工具,实践起来有难度. 幸福来的太快了. 云智慧旗下产品监控宝又惹火了,推出重量级新功能——Docke ...

  2. 【干货】解密监控宝Docker监控实现原理

    分享人高驰涛(Neeke),云智慧高级架构师,PHP 开发组成员,同时也是 PECL/SeasLog 的作者.8 年研发管理经验,早期从事大规模企业信息化研发架构,09 年涉足互联网数字营销领域并深入 ...

  3. Docker 监控实战

    如今,越来越多的公司开始使用 Docker 了,现在来给大家看几组数据: 2 / 3 的公司在尝试了 Docker 后最终使用了它 也就是说 Docker 的转化率达到了 67%,而转化市场也控制在 ...

  4. Docker 监控- Prometheus VS Cloud Insight

    如今,越来越多的公司开始使用 Docker 了,2 / 3 的公司在尝试了 Docker 后最终使用了它.为了能够更精确的分配每个容器能使用的资源,我们想要实时获取容器运行时使用资源的情况,怎样对 D ...

  5. 7、Docker监控方案(cAdvisor+InfluxDB+Grafana)

    一.组件介绍 我们采用现在比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控. 1.cAdvisor(数据采集) 开源软件cAdvisor(Container Adv ...

  6. docker监控

    [编者的话]这篇文章作者是Usman,他是服务器和基础架构工程师,有非常丰富的分布式构建经验.该篇文章主要分析评估了五种Docker监控工具,包括免费的和不免费的:Docker Stats.CAdvi ...

  7. Docker监控怎么做?

    http://dockone.io/article/1643 监控的价值与体系在运维体系中, 监控是非常重要的组成部分.通过监控可以实时掌握系统运行的状态,对故障的提前预警,历史状态的回放等,还可以通 ...

  8. Docker 监控之 SaaS 解决方案

    过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减.另一方面,大家的注意力也渐 ...

  9. 【原创】BI解决方案选型之ETL数据整合工具对比

    一.背景 在企业BI平台建设过程中,数据整合始终是一切的基础,简单BI项目可以通过存储过程来实现,而复杂.全面.多方异构数据来源等就大大增加了复杂性,存储过程的可管理性.可维护性.容错性等就无法很好的 ...

  10. SpringBoot 2.0 + InfluxDB+ Sentinel 实时监控数据存储

    前言 阿里巴巴提供的控制台只是用于演示 Sentinel 的基本能力和工作流程,并没有依赖生产环境中所必需的组件,比如持久化的后端数据库.可靠的配置中心等.目前 Sentinel 采用内存态的方式存储 ...

随机推荐

  1. ping 介绍

    前言 因为要整理网络这一块,所以打算先把概念写下.这节介绍ping的实现原理. 正文 先看一下图: 又没有发现和我们的icmp很像?对头.在icmp中,我写道:icmp有两种报文,一种是差错报文,一种 ...

  2. 第五課-Channel Study TCP Listener & Web Service Listener

    示例描述: 我们将研究如何获取相当常见的HL7 v2消息并将其映射到自定义Web Service接口服务.在许多实际情况下,当我们要连接到HIE,EMPI,数据仓库或数据存储库时,必须这样做.此用例说 ...

  3. 力扣19(java&python)-删除链表的倒数第 N 个结点(中等)

    题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 示例 1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例2: 输入:head = ...

  4. [GPT] nodejs 有哪些类似 jquery 语法的 html 解析库

      在Node.js中,有一些类似jQuery语法的HTML解析库可供选择. 以下是其中几个常用的库: 1. Cheerio: Cheerio是一个快速.灵活且易于使用的HTML解析库,它提供了类似于 ...

  5. 每天5分钟复习OpenStack(十三)存储缓存技术Bcache

    Ceph作为一个分布式存储,在项目中常见的形态有两者,一种是采用 SSD 或NVME 磁盘做Ceph的日志盘,使用SATA磁盘来做数据盘.这样的好处是比较经济实惠.另一种则是全部采用 SSD 或NVM ...

  6. dotnet 开启 Fiddler 抓包将会让请求 HOST 头被更改

    我在写域名备份功能,想要修改请求的 IP 地址,同时又将原有的请求域名带上.实现方法是修改请求的地址,在 HttpRequestMessage 的 Header 上添加 HOST 记录,记录的值就是原 ...

  7. vue-router设置页面切换滑动效果的方法及解决遇到的坑

    先上gif:这里演示顺序是1232121 1.router.js中配置入口路由 {     path: '/',     redirect: '/index'   } 2.main.js中new vu ...

  8. Oracle和达梦:获取表是否被锁定

    1.获取表是否被锁定 select "V$SESSIONS".SESS_ID,"V$SESSIONS".SQL_TEXT,"V$SESSIONS&qu ...

  9. Linux内核之SPI协议

    SPI(Serial Peripheral Interface,串行外设接口)是一种同步串行的行业标准,但是并没有像I2C那样有标准文档,它还有主从.可片选的特性. 图源自Serial Periphe ...

  10. 详解csrf(跨站请求伪造)

    1.什么是csrf (csrf攻击原理)? 用户正常访问A网站,A网站设置cookie被用户浏览器保存 用户不关闭浏览器,直接访问恶意网站,该恶意网站内隐藏式内嵌了A网站接口的请求链接 触发该请求链接 ...