zoukankan      html  css  js  c++  java
  • Grafana部署监控docker服务



    Titile 一原文地址:
    使用InfluxDB+cAdvisor+Grafana配置Docker监控

    Title 二原文地址:
    CSDN:幸福、如此:docker容器监控(cAdvisor+InfluxDB+Grafana)

    Title 三原文地址:
    51CTO博客:清风——明月:Prometheus+Grafana部署监控docker服务

    Title 三参考博文地址:
    CSDN:guoyinzhao:Prometheus的监控解决方案(含监控kubernetes)



    一、使用InfluxDB+cAdvisor+Grafana配置Docker监控

    1.1Docker监控组件

    首先, 我们假设在您的主机上已经安装、配置和运行Docker Engine。请确保您可以通过Web浏览器在本地或者通过网络IP连接到Docker主机。以下我们将详细介绍如何创建我们的Docker监控方案。

    1.2cAdvisor:

    Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker主机。更多详细操作和配置选项可以查看Github上的cAdvisor项目文档。 influxDB: 它是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。 Grafana: Grafana可视化展示平台允许我们可视化地展示监控信息。它允许我们对influxDB进行查询,并通过强大的图表功能进行可视化展示。

    1.3Docker监控安装与配置

    下面,我们将根据上述的Docker监控组件进行安装和配置,形成统一的Docker监控平台。

    我们将首先先安装influxDB, 以便于它能够与cAdvisor进行协作。

    安装influxDB

    下载influxDB镜像

    docker pull tutum/influxdb
    

    运行influxdb容器

    docker run -d 
       -p 8083:8083 
       -p 8086:8086 
       --expose 8090 
       --expose 8099 
       --name influxsrv 
       tutum/influxdb
    

    influxdb容器运行成功后,通过Web浏览器访问http://docker-host-ip:8083访问influxdb后台管理,并登录后台管理系统(默认用户名:root, 默认密码:root)。

    create database 'cadvisor'; 
     
    # 创建用户
    CREATE USER 'cadvisor' WITH PASSWORD 'cadvisor'
     
    # 用户授权
    grant all privileges on 'cadvisor' to 'cadvisor'
     
    # 授予读写权限
    grant WRITE on 'cadvisor' to 'cadvisor'
    grant READ on 'cadvisor' to 'cadvisor'</code></code></code>
    

    运行cAdvisor应用容器并与influxDB容器进行互联:

    docker run 
      --volume=/:/rootfs:ro 
      --volume=/var/run:/var/run:rw 
      --volume=/sys:/sys:ro 
      --volume=/var/lib/docker/:/var/lib/docker:ro 
      -p 8080:8080 
      --detach=true  
      --link influxsrv:influxsrv 
      --name=cadvisor 
      google/cadvisor:latest 
      -storage_driver=influxdb 
      -storage_driver_db=cadvisor 
      -storage_driver_host=influxsrv:8086
    

    cAdvisor应用容器启动成功后,通过Web浏览器访问地址http://docker-host-ip:8080,便可以查看cAdvisor监控工具所收集到的Docker主机和容器的资源统计信息。

    运行Grafana可视化平台并与influxDB容器进行互联

    docker run -d 
      -p 3000:3000 
      -e INFLUXDB_HOST=localhost 
      -e INFLUXDB_PORT=8086 
      -e INFLUXDB_NAME=cadvisor 
      -e INFLUXDB_USER=root  
      -e INFLUXDB_PASS=root 
      --link influxsrv:influxsrv 
      --name grafana 
      grafana/grafana
    

    登录Grafana管理平台

    通过Web浏览器访问地址http://docker-host-ip:3000登录Grafana管理平台。

    配置Grafana与influxDB数据库连接

    (1). 配置Granfana数据源

    在Grafana管理平台中,单击“添加数据源”对数据源进行配置。如下图所示。
    在这里插入图片描述

    二、docker容器监控(cAdvisor+InfluxDB+Grafana)

    对于一个物理机上运行多个容器应用时,容器的运行情况如:CPU使用率、内存使用率、网络状态、磁盘空间等信息,都是需要去了解的,因此监控是必须的。对于容器的监控方案可谓多种多样,本身自带命令docker stats。

    [root@docker ~]# docker stats
    CONTAINER      CPU %    MEM USAGE / LIMIT    MEM %      NET I/O         BLOCK I/O    PIDS
    bd96d72ed9c7   0.04%  14.97 MiB / 7.64 GiB  0.19%    8.22 MB / 805 MB   0 B / 0 B      9
    665563143eb7   0.01%  18.12 MiB / 7.64 GiB   0.23%  19.7 MB / 18.5 MB   0 B / 39.4 MB  8
    f2304dad5855  0.18%  98.45 MiB / 7.64 GiB   1.26%   1.07 GB / 9.97 MB   0 B / 2.13 GB  9
    

    2.1部署influxDB服务

    [root@master ~]# docker run -d --name influxdb -p 8086:8086 tutum/influxdb
    Unable to find image 'tutum/influxdb:latest' locally
    Trying to pull repository docker.io/tutum/influxdb ... 
    latest: Pulling from docker.io/tutum/influxdb
    a3ed95caeb02: Pull complete 
    23efb549476f: Pull complete 
    aa2f8df21433: Pull complete 
    ef072d3c9b41: Pull complete 
    c9f371853f28: Pull complete 
    a248b0871c3c: Pull complete 
    749db6d368d0: Pull complete 
    db2492acfcc3: Pull complete 
    b7e7d2e12d53: Pull complete 
    4272a53eef10: Pull complete 
    9b2fefdb5321: Pull complete 
    Digest: sha256:5b7c5e318303ad059f3d1a73d084c12cb39ae4f35f7391b79b0ff2c0ba45304b
    Status: Downloaded newer image for docker.io/tutum/influxdb:latest
    f384db08ffc78e01fc27bf4c35dc6503b0fd2473cd8d5114b4d8a5475f928b53
    
    
    说明:
    -d :后台运行此容器
    --name :启运容器分配名字influxdb
    -p :映射端口,8083端口为infuxdb管理端口,8086端口是infuxdb的数据端口
    tutum/influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来
    

    查看容器:

    [root@master ~]# docker ps
    CONTAINER ID      IMAGE          COMMAND      CREATED           STATUS                   PORTS                      NAMES
    f2304dad5855   tutum/influxdb   "/run.sh"   4 seconds ago   Up 4 seconds  0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp   influxdb
    

    浏览器去访问influxdb的管理端:
    在这里插入图片描述
    创建cadvisor的数据库与用户,这个用于后期配置granfa:
    在这里插入图片描述

    创建管理用户
    在这里插入图片描述

    同时也是可以使用CLI命令行界面来创建的,命令一样:
    在这里插入图片描述

    部署cadvisor服务

    [root@master ~]# docker run -d 
    --name=cadvisor 
    -p 8082:8080 
    -v /:/rootfs,ro 
    -v /var/run:/var/run 
    -v /sys:/sys,ro 
    -v /var/lib/docker/:/var/lib/docker,ro 
    google/cadvisor 
    -storage_driver=influxdb 
    -storage_driver_db=cadvisor 
    -storage_driver_host=influxdb:8086
    
    Unable to find image 'google/cadvisor:latest' locally
    Trying to pull repository docker.io/google/cadvisor ... 
    latest: Pulling from docker.io/google/cadvisor
    ab7e51e37a18: Pull complete 
    a2dc2f1bce51: Pull complete 
    3b017de60d4f: Pull complete 
    Digest: sha256:9e347affc725efd3bfe95aa69362cf833aa810f84e6cb9eed1cb65c35216632a
    Status: Downloaded newer image for docker.io/google/cadvisor:latest
    a212dc33c9424b6e36485334511e6317bdebc06977b9af374b81b0cab113e724
    
    说明:
    -d :后台运行此容器
    --name :启运容器分配名字cadvisor
    -p :映射端口8082:8080(由于环境8080端口被占用,cadvisor默认端口是8080不建议修改)
    -v:把宿主机的目录映射到容器中,这些目录都是cadviso需要采集的目录文件和监控内容
    -storage_driver:需要指定cadvisor的存储驱动、数据库主机、数据库名
    google/cadvisor:通过cadvisor这个镜像来运行容器,默认会在docker官方仓库把镜像pull下来;
    

    查看cadvisor容器

    [root@master ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                   NAMES
    a212dc33c942        google/cadvisor     "/usr/bin/cadvisor..."   2 minutes ago       Up 2 minutes        0.0.0.0:8082->8080/tcp                 cadvisor
    

    浏览访问cadisor的管理页面
    在这里插入图片描述

    布署granafa

    [root@master ~]# docker run -d --name grafana -p 3000:3000 grafana/grafana
    Unable to find image 'grafana/grafana:latest' locally
    Trying to pull repository docker.io/grafana/grafana ... 
    latest: Pulling from docker.io/grafana/grafana
    f2aa67a397c4: Pull complete 
    89573effc7c8: Pull complete 
    b55c103da375: Pull complete 
    Digest: sha256:364bec4a39ecbec744ea4270aae35f6554eb6f2047b3ee08f7b5f1134857c32c
    Status: Downloaded newer image for docker.io/grafana/grafana:latest
    665563143eb74e5e2e76b7a1533cbf67a68590d355b0b22d453eac07e0e0b616
    
    [root@master ~]# docker ps
    CONTAINER ID      IMAGE             COMMAND        CREATED          STATUS              PORTS                  NAMES
    665563143eb7  grafana/grafana       "/run.sh"   48 seconds ago    Up 47 seconds    0.0.0.0:3000->3000/tcp     grafana
    

    添加数据源:
    在这里插入图片描述

    三、Prometheus+Grafana部署监控docker服务

    Prometheus+Grafana部署监控docker服务

    https://prometheus.io/download/ (需要的安装包都可以下载)

    下载安装包:

    wget https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz
    

    服务端(监控server)

    安装prometheus

    部署安装好的prometheus,并修改配置文件,prometheus.yml。

    node_exporter安装

    wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz
    

    解压并安装

    tar xf node_exporter-0.16.0.linux-amd64.tar.gz C /usr/local/
    cd /usr/local/ && mv mv node_exporter-0.16.0 node_exporter
    cd node_exporter/ && ./node_exporter &
    

    返回一大堆指标

    grafana安装

    wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3-1.x86_64.rpm
    sudo yum localinstall grafana-5.2.3-1.x86_64.rpm
    
    服务端图像呈现组件安装
    yum install fontconfig freetype* urw-fonts -y
    开启系统默认启动
    systemctl enable grafana-server
    启动服务
    systemctl start grafana-server
    查看服务是否正常启动
    systemctl status grafana-server
    

    客户端(被监控)

    安装cAdvisor 来收集容器信息 所有节点运行以下命令来安装cAdvisor

    docker run 
    --volume=/:/rootfs:ro 
    --volume=/var/run:/var/run:rw 
    --volume=/sys:/sys:ro 
    --volume=/var/lib/docker/:/var/lib/docker:ro 
    --publish=8080:8080 
    --detach=true 
    --name=cadvisor 
    --net=host 
    -v "/etc/localtime:/etc/localtime" 
    google/cadvisor:latest
    

    为grafana添加Prometheus数据源.
    在这里插入图片描述

    导入监控模板

    https://grafana.com/dashboards?search=docker
    多种docker 监控模板

  • 相关阅读:
    几个工具类
    C#学习-程序集和反射
    Unity学习-鼠标的常用操作(八)
    Unity学习-碰撞检测(七)
    Unity学习-摄像机的使用(六)
    Unity学习-地形的设置(五)
    Unity学习-预制(四)
    Unity学习-元素类型(三)
    Unity学习-软件的基本操作(二)
    Unity学习-工具准备(一)
  • 原文地址:https://www.cnblogs.com/aixing/p/13327261.html
Copyright © 2011-2022 走看看