docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana 推荐 原创 甘兵 2018-03-06 13:51:20 博主文章分类:Docker容器 ©著作权 文章标签 docker docker 监控 文章分类 Docker 云计算 ©著作权归作者所有:来自51CTO博客作者甘兵的原创作品,请联系作者获取转载授权,否则将追究法律责任 容器监控的方案有很多,有docker自身的docker stats命令、有Scout、有Data Dog等等,本文主要和大家分享一下比较经典的容器开源监控方案组合:cAdvisor+InfluxDB+Grafan。 1.概念 ** cAdvisor:用于数据采集 InfluxDB:用于数据存储 Grafana: 用于数据展示** 1.1 cAdvisor 它是Google用来监测单节点的资源信息的监控工具。Cadvisor提供了一目了然的单节点多容器的资源监控功能。Google的Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上Cadvisor。总结起来主要两点: 展示 Host 和容器两个层次的监控数据。 展示历史变化数据。 由于 cAdvisor 提供的操作界面略显简陋,而且需要在不同页面之间跳转,并且只能监控一个 host,这不免会让人质疑它的实用性。但 cAdvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。 我们可以把 cAdvisor 定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。 1.2 InfluxDB InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。类似的数据库有Elasticsearch、Graphite等。 InfluxDB主要特色功能 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等); 可度量性:你可以实时对大量数据进行计算; 基于事件:它支持任意的事件数据; InfluxDB主要特点 无结构(无模式):可以是任意数量的列; 可拓展的; 支持min, max, sum, count, mean, median 等一系列函数,方便统计; 原生的HTTP支持,内置HTTP API; 强大的类SQL语法; 自带管理界面,方便使用; 1.3 Grafana Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。 2.部署过程 创建自定义网络monitor(自定义网络名称),用于后期容器加入此网络中,当然你也可以忽略此步; 创建Influxdb容器,创建数据用户、数据库; 创建cAdvisor容器; 创建Grafana容器,配置grafana; 3.开始部署 3.1 创建自定义网络 前面也说过了,你可以不用创建自定网络,作者只是为了把后期创建的cAdvisor+InfluxDB+Grafana这三个容器都加入自己定义的网络便于理解和管理,所以才新建一个自定义网络: [root@ganbing ~]# docker network create monitor cc193568263604e3bc3e7a5d78f18d07af99810e1d5c19bac99fccfa045f48f5 查看创建的网络: 3.2 创建influxdb容器 启动容器,tutum/influxdb这里没有指定版本,默认会pull最新版本的influxdb: [root@ganbing ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb 参数说明: -d :后台运行此容器; --name :启运容器分配名字influxdb; --net : 把容器加入到新的网络monitor; -p :映射端口,8083端口为infuxdb后台控制端口,8086端口是infuxdb的数据端口; tutum/influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来; 查看influxdb容器是否启动: [root@ganbing ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 30b9789e680d tutum/influxdb "/run.sh" 22 seconds ago Up 21 seconds 0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp influxdb 访问influxdb控制台,ip+8083端口访问: 从上图可以看到,在Query Templates选项中提供了常用的操作模板,可根据这些模版来管理influxdb,下面我们就来创建数据库和数据库用户。 创建cadvisor数据库cadvisor、用户root,用户和数据库大家可以自行随意定义,不一定要跟我一样,只是用于后期grafana的配置: CREATE USER "root" WITH PASSWORD '123456' WITH ALL PRIVILEGES CREATE DATABASE "cadvisor" 3.3 创建cadvisor容器 运行cadvisor容器: $docker run -d \ --name=cadvisor \ --net monitor \ -p 8080:8080 \ --mount type=bind,src=,dst=/rootfs,ro \ --mount type=bind,src=var/run,dst=/var/run \ --mount type=bind,src=sys,dst=/sys,ro \ --mount type=bind,src=var/lib/docker/,dst=/var/lib/docker,ro \ google/cadvisor \ -storage_driver=influxdb \ -storage_driver_db=cadvisor \ -storage_driver_host=influxdb:8086 参数说明: -d :后台运行此容器; --name :启运容器分配名字cadvisor; --net : 把容器加入到新的网络monitor; -p :映射端口8080; --mout:把宿主机的相文目录绑定到容器中,这些目录都是cadvisor需要采集的目录文件和监控内容; -storage_driver:需要指定cadvisor的存储驱动、数据库主机、数据库名; google/cadvisor:通过cadvisor这个镜像来运行容器,默认会在docker官方仓库把镜像pull下来; 查看cadvisor容器: [root@ganbing ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 90871ba5be7e google/cadvisor "/usr/bin/cadvisor -…" 51 seconds ago Up 50 seconds 0.0.0.0:8080->8080/tcp cadvisor 通过ip+8080端口访问测试一下,第一次访问这个页面有点慢: 从上图可以看到,其实cadvisor也有基础的图形展示功能,我们这里主要用它来做数据采集。 3.4 创建granafa容器 运行granafa容器: [root@ganbing ~]# docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana 这里的参数比较简单,跟上面都差不多,不做详细解释。 查看运行结果: [root@ganbing ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a90e03e2017a grafana/grafana "/run.sh" 17 seconds ago Up 16 seconds 0.0.0.0:3000->3000/tcp grafana 访问granfa,通过ip+3000端口的方式访问,默认账户密码(admin/admin): 添加数据源Add data source,如下图: 新建New dashboard,如下图: 新建了一个监控项之后,回来HOME,可以发现刚才创建的项目: 到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成了,至于其它grafana的监控项配置不是本文的重点,就不在这里一一介绍其它监控项怎么玩了,大家如果感兴趣可以参考一些官方资料或者百度一些资料参阅,都是图形化的界面操作,多点、多玩、多测两个就搞明白了。 4.总结 监控没有最好、最优的监控方案,需要根据企业环境的自身特点结合每个监控产品的优势来达到监控的目的。一个企业完整的监控体系包括以下几个组成部分: 监控数据采集的时效与精确 监控数据采集存储与归档 监控数据的图形化展示 监控数据的自动化分析与联动处理 监控的告警及自动化处理 监控工具自身的安全控制 监控告警的响应及跟踪 喜欢我的文章,请点击最上方右角处的《关注》支持一下! 赞 收藏 评论 分享 举报 上一篇:docker:轻量级图形页面管理之Portainer 下一篇:docker:编排与部署小神器Compose 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 使用Docker-compose快速构建Nacos服务 在微服务架构中,服务的注册与发现扮演着至关重要的角色。Nacos(Naming and Configuration Service)是阿里巴巴开源的服务注册与发现组件,致力于支持动态配置管理和服务发现。 表名 数据库 github 详解Grafana+Prometheus+Alertmanager 监控系统的部署 概述下面将介绍监控解决方案的重要组件:Prometheus、Grafana、Alertmanager 和 Node-exporter。这些开源工具在帮助您构建强大且可扩展的系统来监控系统指标方面都发挥着独特的作用。什么是Prometheus?Prometheus 是一个开源监控和警报工具包,旨在实现可靠性和可扩展性。它主要用于监视容器化应用程序和微服务,但也可用于监视任何系统。Prome 普罗米修斯 Prometheus Grafana Alertmanager Node-Exporter Docker 容器中使用 RAM 角色实现云监控事件监控 准备工作在开始之前,请确保您已经完成以下准备工作:创建一个 RAM 角色,并为该角色授予 AliyunCloudMonitorFullAccess 权限。这将允许该角色执行云监控服务的所有操作,包括发送自定义事件。准备一个 Python 应用程序,用于发送自定义事件到云监控服务。您可以使用我们在前面提供的示例代码作为起点。安装 Docker 并确保您熟悉 Docker 的基本使 Docker 云监控 安全 阿里云 Docker监控快速部署,cAdvisor+InfluxDB+Grafana 一、简单介绍cAdvisor:是Google用来监测单节点的资源信息的监控工具,常被当作其他监控的数据采集使用。InfluxDB:是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。Grafana:是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、Zabbix、InfluxDB、Prometheus和 docker 监控 cAdvisor Influxdb Grafana 搭建cadvisor + influxdb + grafana 监控系统 启动influxdb docker run -d --net=host -e PRE_CREATE_DB=cadvisor --name influxsrv tutum/influxdb:0.8.8启动cadvisor docker run \ --vo 监控系统 docker InfluxDB+cAdvisor+Grafana配置Docker监控 一、配置influxdbdockerrun-d\-p8083:8083\-p8086:8086\--expose8090\--expose8099\--nameinfluxsrv\tutum/influxdb默认用户名:root,默认密码:root#创建数据库createdatabase'cadvisor';#创建用户CREATEUSER'cadvisor'WITHPASSWORD'cadviso InfluxDB cAdvisor Gr Docker 容器监控Cadvisor+Prometheus+Grafana 监控系统概述cAdvisor (Container Advisor) :用于收集正在运行的容器资源使用和性能 docker 数据 时间序列 Docker进阶-容器监控cAdvisor+InfluxDB+Granfana 概述前面文章介绍使用dockercompose组合应用并利用scale快速对容器进行扩容。由于dockercompose启动的服务都在同一台宿主机上,对于一个宿主机上运行多个容器应用时,容器的运行情况如:CPU使用率、内存使用率、网络状态、磁盘空间等一系列随时间变化的时序数据信息,都是需要去了解,因此监控是必须的。容器监控方案选择对于容器的监控方案可谓多种多样,本身自带命令dockerstats命 docker Docker容器监控之 CAdvisor+InfluxDB+Granfana CAdvisorInfluxDBGranfanaCAdvisor监控收集+InfluxDB存储数据+Granfana展示图表新建目录 /cigdocker-compose.yml新建3件套组合 docker 容器 运维 HTTP 数据源 Docker容器监控,使用CAdvisor+InfluxDB+Granfana实现docker容器监控 通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般情况是够用了,但是d docker elasticsearch java 数据 数据源 grafana+cadvisor+influxdb 使用docker-compose实现监控 //以下内容直接复制到docker-compose.yml文件中。执行命令docker-composeup-d之后访问http://ip:3000剩下的之后的测试连接数据库和监控自己百度version:'3'services:influxdb:image:tutum/influxdb:0.9container_name:influxdbrestart:alwaysenvironme grafana+cadvisor docker-compose实现监控 16. Docker容器监控CAdvisor+InfluxDB+Granfana 容器监控方式有很多种,上一篇我们介绍了Uptime Kuma。这类一般用于检测docker应用健康状态,而今天要介绍的监控神器更多偏向于Docker的硬件资源监控 docker 容器 运维 Docker 数据 Grafana+InfluxDB+Collectd构建监控系统 Grafana+InfluxDB+Collectd构建监控系统 Collectd Grafana InfluxDB Telegraf+Influxdb+Grafana 构建监控系统 一 背景 在所有现有的现代监控工具中,TIG(Telegraf、InfluxDB和Grafana)可能是最受欢迎的工具之一。 该堆栈可用于监视大量不同的数据源:从操作系统(如Linux或Windows 监控 自动化运维 HTTP 数据库 性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor 阅读目录 前言 组件简介 镜像安装+启动 influxdb配置 granfana配置 配置Jmeter监控 欢迎转载,也请在明显位置注明出处 :https://www.cnblogs.com/Detector/p/10104254.html 谢谢! 阅读目录 前言 组件简介 镜像安装+启动 infl InfluxDB+Grafana+Jme Docker容器监控之Cadvisor 参考:https://developer.51cto.com/art/201909/603565.htm https://www.jianshu.com/p/91f9d9ec374f cadvisor是google创建的用于监控icmtfy容器资源使用情况和性能的软件,cadvisor在宿主机上以容 docker 数据存储 web界面 前端 数据 数据库 云计算 K8S集群监控—cAdvisor+Heapster+InfluxDB+Grafana 容器的监控方案有多种,如单台docker主机的监控,可以使用docker stats或者cAdvisor web页面进行监控。 但针对于Kubernetes这种容器编排工具而言docker单主机的监控已经不足以满足需求,在Kubernetes的生态圈中也诞生了一个个监控方案,如常用的dashboard,部署cAdvisor+Heapster+InfluxDB+Grafan Kubernetes Heapster InfluxDB Grafana 集群监控 dockers容器监控CAdvisor+InfluxDB+Granfana 安装加配置 容器监控三剑客:CAdvisor:收集分析处理所有运行容器的事实数据,相当于实时监控InfluxDB:存储,CAdvisor收集之后配置成数据源存到InfluxDB中Granfana:图形化展示,将存储到InfluxDB中的数据形成图形化展示出来,(如曲线图、报表等信息)compose 容器编排创建CAdvisor+InfluxDB+Granfana启动的yml配置文件[root@localhos docker linux docker容器监控:cadvisor+influxdb+grafana cadvisor+influxdb+grafana可以实现容器信息获取、存储、显示等容器监控功能,是目前流行的docker监控开源方案。 方案介绍 cadvisor Google开源的用于监控基础设施应用的工具,可以零配置运行在docker主机上来监控Docker主机以及Docker容器。其为单节点 docker 数据库 数据源 数据 用户名 (转)使用InfluxDB+cAdvisor+Grafana配置Docker监控 文档来源 文档来源:How to setup Docker Monitoring 由garyond翻译、校正及整理 Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器和容器的监控越来越必要。本文将引导你了解如何通过多个不同组件的配置和协作,以实现Docker监控。 Docker docker 数据源 数据库 数据