zoukankan      html  css  js  c++  java
  • 7、Docker监控方案(cAdvisor+InfluxDB+Grafana)

    一、组件介绍

    我们采用现在比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控。

    1、cAdvisor(数据采集)

    开源软件cAdvisor(Container Advisor)是用于监控容器运行状态的利器之一,该项目主页为https://github.com/google/cadvisor,它被用于多个与docker相关的开源项目中。实际上在Kubernetes系统中,cAdvisor已经被默认集成到了kubelet组件内。cAdvisor提供了web界面可供浏览器访问,在接下来的环境中我们会部署CAdvisor来收集数据信息。

    2、Influxdb(数据存储)

    Influxdb是用Go语言编写的一个开源的分布式时序、事件和指标数据库,不需要外部依赖,该项目的主页为https://www.influxdata.com。

    它有三大特性:

    • 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等)。
    • 度量(Metrics):对实时大量数据进行计算。
    • 事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

    同时,它还有以下几大特点:

    • schemaless(无结构),可以是任意数量的列;
    • min, max, sum, count, mean, median 一系列函数,方便统计;
    • Native HTTP API, 内置http支持,使用http读写;
    • Powerful Query Language 类似sql;
    • Built-in Explorer 自带管理工具。

    3、Grafana(数据展示)

     Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。其项目官方地址为https://grafana.com。

     

     二、组件安装

    1、安装流程

    • 创建自定义网络monitor(自定义网络名称),确保各容器都处于monitor网络;
    • 创建Influxdb容器,创建数据用户grafana:grafana、数据库:vadvisor;
    • 创建cAdvisor容器;
    • 创建Grafana容器,配置grafana;

      

    2、安装部署

    a、创建网络

    [root@localhost ~]# docker network create monitor
    46d9e7c32080ac35e1d3034ecf4edf2af804de9352eca37373f7437e37b1368d
    

      

     

    b、创建influxdb容器

    [root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
    a0fdc618d380ece7dabd7f1f802935502d0c6ae3f606216afed5dafc43ea8da5

     

     c、访问influxdb

    通过容器的8083端口访问web页面。

    d、创建数据库cadvisor和用户

    cadvisor数据库用于存储数据,用户用于grafana上进行连接,后续会用到此用户。

     

    e、创建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
    

      

    查看容器是否创建成功:

     

    访问cadvisor

    通过8081端口访问cadvisor:

     

     f、安装grafana容器

    docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana
    

      

     

    g、访问grafana

     

    3、容器监控

    a、添加数据源

     

    b、制作dashboard

    新建dashboard,选择类型为Graph:

     

    c、添加监控指标

     

     d、制作模板

    按照c步骤中添加各个指标,然后做成模板,后续你想监控哪个容器就直接替换container_name即可,是不是棒棒哒?

    到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成了,是不是非常简单?

    但是,要做好容器的监控,知道这些还远远不行,我们不希望每次都手动去添加吧?如果有成千上万个容器,到那个时候该怎么监控呢?肯定是一种自动添加方式了,而不是原始的手工操作哦。

     

  • 相关阅读:
    Tarjan算法求双连通分量
    Tarjan
    前端技术实现js图片水印
    记录一下ionic canvas图片,还有canvas里面的图片跨域的问题
    ionic cordova screenshot 使用和操作
    关于ionic2 更新到ionic3 后组件不能用的解决方案
    背景图处理,这是个好东西记录一下
    radio样式的写法,单选和多选如何快速的改变默认样式,纯CSS,
    ionic使用cordova插件中的Screenshot截图分享功能
    ionic中执行pop返回上一个页面,还需要执行操作
  • 原文地址:https://www.cnblogs.com/skyflask/p/10030218.html
Copyright © 2011-2022 走看看