首页 > 系统相关 >linux系统对于docker容器的监控

linux系统对于docker容器的监控

时间:2024-03-14 18:31:57浏览次数:19  
标签:容器 CAdvisor InfluxDB grafana 监控 linux docker

容器监控

容器监控

CAdvisor+InfluxDB+Granfana

原生命令

操作

docker stats

问题

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

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

容器监控三剑客

在这里插入图片描述
在这里插入图片描述

CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表

CAdvisor

CAdvisor是一个容器资源监控工具,包括容器的内存,CPU,网络Io,磁盘Io等监控,同时提供了一个WEB页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对单物理机

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

CAdvisor功能主要有两点:
展示Host和容器两个层次的监控数据
展示历史变化数据

InfluxDB

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

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

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

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

Granfana

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

Grafan主要特性:
灵活丰富的图形化选项
可以混合多种风格
支持白天和夜间模式
多个数据源

compose编排监控工具

新建目录

mkdir cig

创建CIG.yml文件

vim dokcer-compose.yml
version: '3.1'
 
volumes:
  grafana_data: {}
 
services:
  influxdb:
    image: tutum/influxdb:0.9
    restart: always
    environment:
	  - PRE_CREATE_DB=cadvisor
    ports:
  	  - "8083:8083"
  	  - "8086:8086"
    volumes:
      - ./data/influxdb:/data
    
  cadvisor:
    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:
    user: "104"
    image: grafana/grafana
    user: "104"
    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 

启动docker-compose

docker-compose up

测试

浏览CAdvisor收集服务,http://ip:8080
cadvisor有基础的图形展现功能,主要用来做数据采集
浏览infuxdb存储服务,http://ip:8083
浏览grafana展现服务,http://ip:3000
账户密码admin/admin

配置数据源

选择influxdb数据源

配置细节

配置面板panel

CIG容器监控系统配置完成

标签:容器,CAdvisor,InfluxDB,grafana,监控,linux,docker
From: https://blog.csdn.net/qq_59207739/article/details/136718417

相关文章

  • linux系统创建私有容器仓库和docker容器的资源限制
    私有仓库创建和资源限制创建私有仓库docker资源限制系统压力测试工具stresscpu资源限制限制CPUShare限制CPU核数CPU绑定mem资源限制限制IO创建私有仓库上传harbor压缩包解压下载docker-compose进入解压后的目录修改配置文件mvharbor.yml.tmplharbor.ymlv......
  • DDCMS 后端容器化解决方案:实现优雅的环境隔离,提升开发者体验
    DDCMS后端容器化解决方案:实现优雅的环境隔离,提升开发者体验浅聊一下,最近在参与DDCMS的组件开发和测试,碰到的一些问题,这个项目涉及了DDCMS-Contract和DDCMS-Service以及DDCMS-Front。合约、后端、前端。合约整理完了整体的业务和设计,当前在弄后端的时候,每一次部署稍微麻烦......
  • 在Linux中,哪些命令可以管理系统服务,如启动、停止、重启一个服务?
    在Linux中,管理系统服务涉及到对运行中的进程或后台任务的启动、停止、重启等操作。这些操作通常通过特定的命令和工具来完成。下面详细说明了如何执行这些任务:1.启动服务使用service命令在早期的Linux发行版中,service命令是启动服务的主要方式。例如:service服务名start使......
  • Linux安装JDK
    1.下载OpenJDK2.在/usr/创建java目录,命令mkdir/usr/java3.将OpenJDK复制进/usr/java目录,cpOpenJDK名称/usr/java4.进入/usr/java目录,cd/usr/java5.解压tarxvfOpenJDK名称6.删除OpenJDK包,rmOpenJDK名称,输入y,回车7.配置环境变量,执行vim/etc/profile,输入i编辑,......
  • docker_03days
    迁移备份#镜像从哪来的?1dockerpull拉的2通过容器打包成镜像-centos镜像运行成容器---》装了vim-把装了vim的容器---》打包成镜像-以后拿到这个镜像--》再运行成容器,都会带vim命令3Dockerfile构建#容器保存为......
  • Linux进程状态
    目录1.R运行状态(running)2.S睡眠状态(sleep)3.T或t状态(stopped或tracingstop)4.Z状态(zombie)(僵尸进程)1.R运行状态(running)并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。在CentOS7中,当查看进程状态时,可能会注意到很少看到进程处于状态为"R"(Ru......
  • docker基础知识
    Docker容器基础介绍和操作-清白之年980410-博客园<linkrel="stylesheet"href="/css/blog-common.min.css?v=g-c5Yfdgh3oAoyQibjhmJ6ylVcBcMRHNIG6JkF70hpY"/><linkid="MainCss"rel="stylesheet"href="/skins/mountainink......
  • Linux下安装Docker
    Ubuntu安装Docker环境Ubuntu安装Docker环境的方法,在Linux服务器上运行docker用于开发测试通过Ubuntu自带的apt存储库在安装Docker引擎首次在新主机运行之前,需要更新Dockder存储库,然后你在存储库安装或更新Docker更新Dockerapt存储库sudoapt-getupdatesudoapt-......
  • 使用docker搭建kasm desktop
    Kasm是一种基于Docker的解决方案,它可以提供Web应用程序和桌面环境的即时访问。使用Kasm,你可以通过Web浏览器在任何设备上安全地访问应用程序和桌面环境。下面将详细介绍如何使用DockerCLI和DockerCompose两种方式搭建KasmDesktop,并解释每个参数的作用。使用DockerCLI搭......
  • 使用docker搭建mongodb
    使用DockerCLI搭建MongoDB1.运行MongoDB容器首先,我们使用以下命令来启动一个MongoDB容器:dockerrun-itd--namemongodb_comm-v$PWD/data:/data/db-p27017:27017mongo:4.4--auth参数解释:-itd:这三个参数通常一起使用,i表示交互式模式,t分配一个伪......