zoukankan      html  css  js  c++  java
  • docker容器监控系统

    Cadvisor+InfluxDB+Grafana

    Cadvisor
    Cadvisor是检测单节点资源信息的工具,提供了一个http接口的查询界面,可以和其他工具整合使用,Cadvisor既可以采集宿主机还可以采集容器的资源数据进行事实监控,包括,CPU,内存,网络,等等,利用linux的Cgroups获取容器的资源信息
    k8s的各个节点默认安装Cadvisor

    特点

    • 可以展示主机和容器两个层次的监控数据
    • 可以展示历史变化数据
    • 监控指标齐全
    • 方便部署,将官方的镜像直接下载使用
    • 默认只会在本地保存一分钟数据,需要第三方存储

    因为它的界面太过于简陋,需要第三方工具加工使用,并且只能监控一个节点,有多少个就要安装多少个,等等,所以总的来说它只适合于监控数据收集,需要第三方工具加工处理

    InfluxDB
    InfluxDB是一个开源的非关系时序型数据库,主要用于高性能查询与存储时序型数据,InfluxDB用于存储系统的监控数据。

    主要功能

    • 基于时间序列,支持时间有关的函数命令
    • 可度量性:可以实时对大量数据计算
    • 基于事件:支持任意事件数据

    特点

    • 无结构(无模式):可以是任意数量的列
    • 支持扩展
    • 支持时间等函数使用
    • 自带管理界面
    • 强大的类SQL语句

    Grafana
    Grafana是一个可视化面板工具,可以从Graphite,zabbix,InfluxDB,Prometheus等组件提取数据展示

    特点

    • nb的图形化
    • 支持多个数据源

    监控组件架构

    Cadvisor用户数据采集,InfluxDB用于数据存储,Grafana用于数据展示

    监控组件构架部署方案

    需要上述三个镜像
    [root@localhost ~]# docker load < cadvisor.tar
    [root@localhost ~]# docker load < influxdb.tar
    [root@localhost ~]# docker load < grafana.tar 
    [root@localhost ~]# docker load < prometheus.tar 
    
    #创建自定义网络
    [root@localhost ~]# docker network create monitor
    [root@localhost ~]# docker network ls
    5fe0ef94b68a   monitor             bridge    local
    
    #创建InfluxDB容器
    [root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
    [root@localhost ~]# docker ps -a
    CONTAINER ID   IMAGE            COMMAND     CREATED          STATUS          PORTS                                                                                  NAMES
    f8304d8dc5e1   tutum/influxdb   "/run.sh"   54 seconds ago   Up 52 seconds   0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp   influxdb
    #-d:后台运行容器
    #--name:启动容器分配名字:influxdb
    #--net:将容器加入到新的网络monitor
    #-p:映射端口:8083后台控制端口,8086数据端口
    
    #此时可以访问页面使用8083后台控制端口
    

    **在浏览器上创建一个数据库Cadvisor

    创建Cadvisor容器

    docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --net monitor --publish=8080:8080 --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086
    #-d:后台运行此容器
    #--name:启动容器分配名字:Cadvisor
    #--net:添加容器到网络
    #-p:映射端口8080
    #--volume:宿主机文件/镜像文件(映射到)
    #-storage_driver:需要指定Cadvisor的存储驱动,数据库主机,数据库名
    #google/cadvisor镜像,数据存储到influxdb里,存储的数据库名为cadvisor,存储的主机为influxdb:8086
    

    docker Containers容器的监控信息

    创建granafa容器

    [root@localhost ~]# docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana   //后台运行指定名字网络和端口
    

    添加数据源

  • 相关阅读:
    eclipse的web项目热部署
    JAVA字符串转日期或日期转字符串
    右下角弹出框
    div拖拽
    js的富文本框与日期插件
    slected多选框的转移
    判断当前日期是否是当月数据
    java常见面试题(二)
    静态代理和动态代理
    java常见面试题(一)
  • 原文地址:https://www.cnblogs.com/wml3030/p/15468295.html
Copyright © 2011-2022 走看看