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容器监控系统就部署完成了,是不是非常简单?

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

     

  • 相关阅读:
    Linq To Object
    笔试算法
    给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线
    vue3.0中setup的参数
    力扣算法题
    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组
    vif 与 vfor优先级
    给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 /返回这三个数的和。
    /给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[
    vue3+canvas随机生成4位验证码
  • 原文地址:https://www.cnblogs.com/skyflask/p/10030218.html
Copyright © 2011-2022 走看看