首页 > 其他分享 >容器监控方案

容器监控方案

时间:2023-12-20 15:01:38浏览次数:34  
标签:容器 方案 driver storage InfluxDB influxdb 监控 docker

再次强调,时序数据库的ntp问题!!!!

ntpdate -u ntp.aliyun.com

当企业级容器上升到一定规模的时候,我们必须得实时监控每个容器的状态。我们可以执行

docket stats

这个统计命令是实时的,小公司的话,容器少还可以,够用。如果想看前几天的流量监控数据,显然是没有的,这个时候就需要更强大的容器监控软件。

容器监控架构组件

# docker stats

CONTAINER ID   NAME             CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O        PIDS
093020ea60c6   blog_mysql       0.08%     227.3MiB / 3.685GiB   6.03%     1.73MB / 802kB    29.3MB / 641MB   30
748d2e63ec01   blog_wordpress   0.00%     112.7MiB / 3.685GiB   2.99%     2.46MB / 2.93MB   163MB / 16.4kB   8
215e25e8b63e   blog_phpadmin    0.00%     40.87MiB / 3.685GiB   1.08%     314kB / 895kB     901kB / 41kB     7

通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了

但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能。

如何解决,那就要用到接下来所要讲的方案:cAdvisor+InfluxDB+Grafana

cAdvisor监控收集 + InfluxDB存储数据 + Grafana展示图表

 

cAdvisor

cAdvisor 是一个容器资源监控工具,包括容器的内存、CPU、网络IO、磁盘IO等监控,同时提供了一个Web页面用于查看容器的实时运行状态。

cAdivisor 默认存储2分钟的数据,而且只是针对单物理机。

不过,cAdivisor提供了很多数据集成接口,支持InfluxDB、Redis、Kafka、Elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。

cAdvisor 功能主要有两点:

  • 展示Host和容器两个层次的监控数据。
  • 展示历史变化数据。

InfluxDB

InfluxDB 使用Go语言编写的一个开源分布式时序、时间和指标数据库,无需外部依赖。

cAdvisor 默认旨在本机保存最近2分钟的数据,为了持久化存储数据和统一收集展示监控数据,需要将数据存储到InfluxDB中。

InfluxDB是一个时许数据库,专门用于存储时许相关数据,很适合存储CADvisor的数据,而且,CAdvisor本身已经提供了InfluxDB的集成方法,启动容器时指定配置即可。

InfluxDB主要功能:

  • 基于时间序列,支持与时间有关的相关函数(如最大、最小、求和等);
  • 可度量性:你可以实时对大量数据进行计算;
  • 基于事件:它支持任意的事件数据。

Grafana

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

Grafana主要特性:

  • 灵活丰富的图形化选项;
  • 可以混合多种风格;
  • 支持白天和夜间模式;
  • 多个数据源。

部署思路

1.监控服务端主机,运行InfluxDB 、Grafana
涉及的容器环境变量
INFLUXDB_DB=cadvisor     # 初始数据库名称
INFLUXDB_USER=root        # 初始数据库用户名
INFLUXDB_USER_PASSWORD=www.yuchaoit.cn     # 初始数据库密码

docker run -d -p 8086:8086 --restart=always --name www.yuchaoit.cn_influxdb \
-e INFLUXDB_DB=cadvisor \
-e INFLUXDB_USER=root \
-e INFLUXDB_USER_PASSWORD=www.yuchaoit.cn \
-v influxdb_data:/var/lib/influxdb \
influxdb:1.8

部署grafana
docker run -d -p 3000:3000 --restart=always --name grafana \
-v grafana_data:/var/lib/grafana \
grafana/grafana




2.被监控的容器主机,运行CAdvisor
-storage_driver_db=cadvisor                          # influxdb的数据库名称
-storage_driver_host=10.0.0.200:8086    # influxdb的主机地址
-storage_driver_user=root                              # influxdb的用户名
-storage_driver_password=www.yuchaoit.cn          # influxdb的密码


docker run -d -p 8080:8080 --restart=always --name cadvisor \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
google/cadvisor \
-storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=192.168.92.148:8086 -storage_driver_user=root -storage_driver_password=www.yuchaoit.cn

单机一键部署

如果你想将cAdvisor+InfluxDB+Grafana以及其他的容器都安装到同一台主机上,那使用这个compose一套带走方案就可以了。

version: '3.1'

services:    
  influxdb:
    image: influxdb:1.8
    restart: always
    environment:
      - INFLUXDB_DB=cadvisor
      - INFLUXDB_USER=root
      - INFLUXDB_USER_PASSWORD=www.yuchaoit.cn
    ports:
      - "8086:8086"
    volumes:
      - influxdb_data:/var/lib/influxdb

  cadvisor:
    image: google/cadvisor
    depends_on:
      - influxdb
    command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086 -storage_driver_user=root -storage_driver_password=www.yuchaoit.cn
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro

  grafana:
    user: "104"
    image: grafana/grafana
    restart: always

    depends_on:
      - influxdb
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana

volumes:
  influxdb_data: {}
  grafana_data: {}

检测语法

[root@docker-200 /tmp]#docker-compose config -q

运行compose

[root@docker-200 /tmp]#docker-compose up -d

检查监控组件3剑客

 

访问cAdvisor

http://10.0.0.200:8080/ 可视化入口
http://10.0.0.200:8080/metrics 指标接口

 

访问InfluxDB

http://10.0.0.200:8086/metrics

访问Grafana

http://10.0.0.200:3000/login

默认admin、admin
修改为www.yuchaoit.cn

添加InfluxDB数据源

http://10.0.0.200:8086

http://influxdb:8086
compose已经做好依赖关系了

 

添加cAdvisor的数据源

 

添加仪表盘

 

看到数据即可。

标签:容器,方案,driver,storage,InfluxDB,influxdb,监控,docker
From: https://www.cnblogs.com/sxy-blog/p/17916543.html

相关文章

  • docker容器跨主机通信
    一、Docker网络基本原理直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包;此外,如果不同子网之间要进行通信,需要额外的路由机制。Docker中的网络接口默认都是虚拟的接口。虚拟接口的最大优势就是转发效率极高。这是因为Linux通过......
  • 使用Zabbix监控openstack的系统资源
    1概述OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权。OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施......
  • 容器资源分配
    题目描述容器化是当前云化趋势下的一种重要技术,容器运行需要足够的CPU资源,请实现一种CPU分配机制,满足如下设计要求:假设所有虚拟机的CPU核数都为 cpuCore 。为了满足可靠性要求,每个虚拟机上最多部署2个容器;一个容器占用一定数量的CPU核数,一个虚拟机上容器占用的CPU核数......
  • docker容器单机编排
    随着网站架构的升级,容器也使用的越发频繁,应用服务和容器间的关系也越发复杂。这就要求研发人员能够更好的方法去管理数量较多的容器服务,而不能手动的去挨个管理。例如一个LNMP的架构,就得部署web服务器,后台程序,数据库,负载均衡等等都需要统一部署在容器里,那么这时候就需要使用统一......
  • 羚通视频智能分析平台视频监控算法分析玩手机打电话检测
    在当今数字化时代,视频监控技术已经广泛应用于我们生活的各个领域。然而,传统的视频监控方式往往需要大量的人力进行监控和分析,这不仅效率低下,而且容易出错。为了解决这个问题,羚通公司推出了一款全新的视频智能分析平台,该平台利用先进的视频监控算法,可以实时检测并分析手机打电话的......
  • 羚通视频智能分析平台视频监控算法分析玩手机打电话检测
    在当今数字化时代,视频监控技术已经广泛应用于我们生活的各个领域。然而,传统的视频监控方式往往需要大量的人力进行监控和分析,这不仅效率低下,而且容易出错。为了解决这个问题,羚通公司推出了一款全新的视频智能分析平台,该平台利用先进的视频监控算法,可以实时检测并分析手机打电话的行......
  • 容器docker技术
    我们先看看很久很久以前,服务器是怎么部署应用的! 由于物理机的诸多问题,后来出现了虚拟机。 但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统本身资源也就消耗殆尽,或者说必须扩容。例如上一篇,超哥讲解的kvm,你所......
  • 一文搞定K8S监控告警平台选型
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享前言最近在搞K8S的监控告警平台选型,对比了目前比较流行两款开源平台kube-prometheus、夜莺,也踩了一些坑分享一下kube-prometheus项目地址:https://github.com/prometheus-operator/kube-prometheus......
  • 【技术探讨】WiMi-net无线自组网通信方案的优势是什么?
        目前,很多的厂家都有自己的无线自组网方案,每一家的方案又都不能互通,那么对于用户来说,在第一时间就能选择一个实用性、适用性强的无线自组网方案非常的重要,和业内其他的433MHz无线通讯的组网方案对比,那么为什么WiMi-net微网高通的无线自组网方案更值得推荐呢?    ......
  • 解决方案架构师 vs 技术架构师,有何区别?
    Salesforce架构师角色是生态系统中常见的职业目标。架构师因其丰富的Salesforce知识以及在平台上构建可扩展解决方案的能力而广受认可。解决方案架构师和技术架构师是Salesforce生态系统中最常见的两个架构师角色,这些角色有一些重叠,但它们完全不同,解决方案架构师和技术架构师到......