千家信息网

怎么选择web容器监控方案

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇内容主要讲解"怎么选择web容器监控方案",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么选择web容器监控方案"吧!对于容器的监控方案可谓多种多样,
千家信息网最后更新 2025年02月03日怎么选择web容器监控方案

本篇内容主要讲解"怎么选择web容器监控方案",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么选择web容器监控方案"吧!

  • 对于容器的监控方案可谓多种多样,本身自带命令docker stats命令,Scout、Data Dog、Sysdig Cloud、Sensu Monitoring Framework、CAdvisor等。

  • 通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据。但是docker stats命令的缺点是统计的只是当前宿主机的所有容器,而获取的监控数据是实时的,没有地方存储,也没有报警功能。

    docker stats


  • Scout、Sysdig Cloud、Data Dog虽然都提供了完善的服务,但是它们都是托管的服务,而且都收费,Sensu Monitoring Framework集成度较高,也免费,但是部署过于复杂。综合考虑,我们选择了CAdvisor做容器监控工具。

  • CAdvisor是谷歌出品,优点是开源产品,监控指标齐全,部署方便,而且有官方的docker镜像。缺点是集成度不高,默认只在本地保存2分钟数据。不过可以加上influxDB存储数据,对接Grafana展示图标,比较便利地搭建好了容器监控系统,数据收集和图标展示效果良好,对系统性能也几乎没有什么影响。

  • CAdvisor是一个容器资源监控工具,包括容器的内存、CPU、网络IO、磁盘IO等监控,同时提供了一个web页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对单物理机。不过CAdvisor提供了很多数据集成接口,支持influxDB、Redis、kafka、elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。

  • CAdvisor功能主要有两点:

    • 展示host和容器两个层次的监控数据;

    • 展示历史变化数据。

  • influxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。

  • 前面说到,CAdvisor默认只在本机保存最近2分钟的数据,为了持久化存储数据和统一收集展示监控数据,需要将数据存储到influxDB中。InfluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储CAdvisor的数据。而且,CAdvisor本身已经提供了InfluxDB的集成方法,在容器启动时指定配置即可。

  • InfluxDB主要功能:

    • 基于时间序列,支持与时间有关的相关函数(如最大、最小、求和等);

    • 可度量性:你可以实时对大量数据进行计算;

    • 基于事件:它支持任意的事件数据。

  • InfluxDB主要特点

    • 无结构(无模式);

    • 可以是任意数量的列;

    • 可扩展的;

    • 支持min,max,sum,count,mean,median等一系列函数,方便统计;

    • 原生的HTTP支持,内置HTTP API;

    • 强大的类SQL语法;

    • 自带管理界面,方便使用。

  • Grafana是一个开源的数据监控分析可视化平台,支持多种数据源配置(支持的数据源包括influxDB、MySQL、elasticsearch、OpenTSDB、Graphite等)和丰富的插件及模板功能,支持图表权限控制和报警。

  • Grafana主要特性:

    • 灵活丰富的图形化选项;

    • 可以混合多种风格;

    • 支持白天和夜间模式;

    • 支持多个数据源。

  • CAdvisor+InfluxDB+Grafana

    • CAdvisor:负责收集容器随时间变化的数据;

    • InfluxDB:负责存储时序数据;

    • Grafana:负责分析和展示时序数据。

  • 安装部署

    • grafana是一款开源的时序数据分析工具,而且界面专业易用

      docker run -d -p 3000:3000 -v /Users/zhangxufeng/xufeng.zhang/docker/volumes/grafana:/var/lib/grafana --link=influxdb:influxdb --name grafana grafana/grafana


    • 通过ip+3000端口来访问grafana的web服务,第一次访问需要修改admin用户密码,默认用户名/密码为admin/admin;

    • 谷歌的cadvisor可以用于收集docker容器的时序信息,包括容器运行过程中的资源使用情况和性能数据

      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 --publish=8080:8080 --detach=true --privileged=true --name=cadvisor google/cadvisor:latest -storage_driver=influxdb -storage_driver_host=influxdb:8086 -storage_driver_db=test_storage_driver_user=root -storage_driver_password=root
    • -d:后台运行此容器;

    • --name:启动运行容器分配的名字cadvisor;

    • -p:映射端口8080;

    • --mount:把宿主机的文件目录绑定到容器中,这些目录都是cadvisor需要采集的目录文件和监控内容;

    • -storage_driver:需要指定cadvisro的存储驱动、数据库主机、数据库名;

    • --name:启动容器分配名字influxdb;

    • -p:映射端口,8083端口为influxdb管理端口,8086端口是influxdb的数据端口;

    • -v:挂载数据;

    • -d:后台运行此容器;

    • influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来。

    • 部署InfluxDB服务

      docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 -v /Users/zhangxufeng/xufeng.zhang/docker/volumes/influxdb:/var/lib/influxdb --hostname=influxdb --name influx tutum/influxdb


    • 说明

    • 浏览器访问influxdb的管理端:http://127.0.0.1:8083,可以看到管理页面

    • 创建test的数据库与root用户,这个用于后期配置grafana

      docker exec -it influxdb influxCREATE DATABASE "test"CREATE USER "root" WITH PASSWORD 'root' WITH ALL PRIVILEGES


    • 部署CAdvisor服务

    • 部署grafana服务

  • 集成的docker-compose文件

    version: '3.1'volumes:  grafana_data: {}services: influxdb:  image: tutum/influxdb:0.9  #image: tutum/influxdb  #image: influxdb  restart: always  #user:   environment:    - PRE_CREATE_DB=cadvisor  ports:    - "8083:8083"    - "8086:8086"  expose:    - "8090"    - "8099"  volumes:    - ./data/influxdb:/data cadvisor:  #image: google/cadvisor:v0.29.0  image: google/cadvisor  links:    - influxdb:influxsrv  command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086  restart: always  ports:    - "8080:8080"  volumes:    - /:/rootfs:ro    - /var/run:/var/run:rw    - /sys:/sys:ro    - /var/lib/docker/:/var/lib/docker:ro grafana:  #image: grafana/grafana:2.6.0  user: "104"  image: grafana/grafana  user: "104"  #user: "472"  restart: always  links:    - influxdb:influxsrv  ports:    - "3000:3000"  volumes:    - grafana_data:/var/lib/grafana  environment:    - HTTP_USER=admin    - HTTP_PASS=admin    - INFLUXDB_HOST=influxsrv    - INFLUXDB_PORT=8086    - INFLUXDB_NAME=cadvisor    - INFLUXDB_USER=root    - INFLUXDB_PASS=root

到此,相信大家对"怎么选择web容器监控方案"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

数据 容器 监控 存储 支持 时序 端口 数据库 服务 运行 方案 选择 功能 命令 管理 配置 事件 内容 多种 实时 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全和网络道德主题班会教案 汇丰软件开发等级 软件开发资料属于什么档案 分机连接不到主机数据库 魔兽怀旧服数据库六零 小学生正确认识网络安全 元宇宙软件开发前景 数据库营销基于web 中国版服务器存档怎么导出 以下哪些属于数据库技术 妄想山海国际服进不去服务器 软件开发平台的建立 网络技术用什么修饰 华三服务器安装完成闪屏进不去 中维尚谷网络技术有限公司 上海吉盛网络技术有限公司看准 深圳市美易网络技术有限公司 华为云软件开发平台怎么样 全民武馆下一个服务器 软件开发实例的知识 软件开发都是本科嘛 服务器怎么备案 自动网络技术开发优缺点 电脑如何清理所以数据库 山西忻州首选dns服务器云主机 微信聊天信息数据库保存多长时间 河北多媒体软件开发公司 韶关数字软件开发供应商家 深圳云之讯网络技术有限公司电话 大逃杀 服务器维护
0