• Docker进阶:Docker轻量级可视化工具Portainer与容器监控3剑客CAdvisor+InfluxDB+Granfana



    💖The Begin💖点点关注,收藏不迷路💖

    在这里插入图片描述

    在开始之前,确保已经安装了Docker。

    一、Docker轻量级可视化工具Portainer

    1.1、Portainer简介

    Portainer是一个开源的Docker轻量级可视化工具,它提供了一个直观的Web界面,让你轻松管理和监控Docker容器、镜像和网络等。本文将为你介绍如何安装和使用Portainer,并提供详细的步骤指导,帮助你快速上手。

    官网:

    https://www.portainer.io/

    https://docs.portainer.io/start/install-ce/server/docker/linux

    在这里插入图片描述

    1.2、安装Portainer

    1.2.1、安装Portainer的Docker镜像

    1、打开终端或命令提示符,运行以下命令来安装Portainer的Docker镜像:
    
    docker pull portainer/portainer-ce
    
    2、安装完成后,运行以下命令来创建一个新的Portainer容器:
    
    docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
    
    或者使用:
    
    docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
    
    在Docker中启动Portainer CE服务。
    
    解释:
    
    docker run:运行容器的命令
    -d:表示以守护进程模式运行容器
    -p 8000:8000:将本地主机的8000端口映射到容器内的8000端口,用于访问Portainer Web界面
    -p 9000:9000:将本地主机的9000端口映射到容器内的9000端口,用于Portainer与Docker守护进程通信
    --name portainer:为容器指定一个名称
    --restart=always:设置容器自动重启
    -v /var/run/docker.sock:/var/run/docker.sock:将本地主机的Docker守护进程socket文件挂载到容器内,以便与Docker守护进程进行通信
    -v portainer_data:/data:将容器内的/data目录挂载到本地主机上的portainer_data卷中,用于保存Portainer的数据和配置信息
    portainer/portainer-ce:latest:指定要运行的Portainer CE镜像及其版本
    
    
    3、列出当前正在运行的容器
    docker ps
    
    
    [root@zyl-server ~]# docker ps
    CONTAINER ID   IMAGE                           COMMAND        CREATED         STATUS         PORTS                                                                                            NAMES
    d83d0ea07602   portainer/portainer-ce:latest   "/portainer"   2 minutes ago   Up 2 minutes   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 9443/tcp   portainer
    [root@zyl-server ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    1.2.2、访问Portainer Web界面

    在浏览器中输入http://localhost:9000或http://<服务器IP>:9000,你将看到Portainer的登录界面。

    第一次访问时,你需要创建一个管理员账号。填写所需的信息,并设置一个强密码。然后点击"Create user"按钮继续。

    在这里插入图片描述

    1.2.3、连接到Docker守护进程

    在登录界面中,选择"Local"作为环境类型,并点击"Connect"按钮。

    Portainer将自动检测并连接到本地Docker守护进程。

    1.3、使用Portainer管理Docker容器

    登录成功后,你将看到Portainer的控制面板。在左侧导航栏中,你可以选择不同的功能模块,如容器、镜像、网络等。

    例如,点击"容器",你将看到当前运行的所有容器列表。你可以创建新的容器、启动/停止容器、查看容器日志等操作。

    在这里插入图片描述

    1.3.1 Portainer Web界面功能详解

    1、仪表盘(Dashboard):提供了对Docker环境的概览,包括运行中的容器数量、使用的CPU和内存等信息。
    
    2、容器(Containers):允许你查看和管理容器。你可以创建、启动、停止、重启和删除容器,以及查看容器的日志和统计数据。
    
    3、镜像(Images):允许你管理Docker镜像。你可以搜索、拉取、上传、构建和删除镜像,以及查看镜像的详细信息。
    
    4、网络(Networks):用于管理Docker网络。你可以创建、删除和连接网络,以及查看网络的详细信息。
    
    5、卷(Volumes):用于管理Docker卷。你可以创建、删除和挂载卷,以及查看卷的详细信息。
    
    6、栈(Stacks):允许你部署和管理Docker Compose栈。你可以通过编写Compose文件来定义多个服务,并将它们作为一个栈进行批量管理。
    
    7、节点(Nodes):用于管理Docker Swarm集群。你可以查看集群的状态、节点的详细信息,以及添加或删除节点。
    
    8、设置(Settings):提供了Portainer的各种设置选项,包括用户管理、身份验证、备份和恢复等。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    1.3.2 Portainer Web界面安装nginx

    在容器(Containers):导航,点击ADD按钮在这里插入图片描述

    创建nginx容器

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

    访问测试nginx:

    在这里插入图片描述

    二、Docker容器监控3剑客CAdvisor+InfluxDB+Granfana

    CAdvisor、InfluxDB和Grafana是一套常用的容器监控和可视化解决方案,它们各自担当着不同的角色。

    CAdvisor(Container Advisor):

    CAdvisor是由Google开发的开源容器监控工具。它能够实时收集和展示容器资源的使用情况,包括CPU、内存、磁盘、网络等指标。CAdvisor通过对容器进行抽样和监控,提供了对Docker容器整体和单个容器的性能数据的监控和分析功能。

    InfluxDB:

    InfluxDB是一种开源的时间序列数据库,专门用于存储时间相关的数据。它被广泛应用于监控、物联网、实时分析等领域。InfluxDB支持高写入和高查询性能,并提供了SQL-like查询语言。通过将CAdvisor收集到的监控数据存储在InfluxDB中,可以方便地进行数据聚合、查询和分析。

    Grafana:

    Grafana是一个功能强大的开源数据可视化工具,用于创建、浏览和分享时间序列数据的仪表板。它支持多种数据源,包括InfluxDB、Prometheus、Elasticsearch等。Grafana提供了丰富的可视化选项和交互式仪表板编辑功能,可以根据用户需求创建各种图表、仪表盘和报表,帮助用户更好地理解和分析监控数据。

    使用CAdvisor、InfluxDB和Grafana的组合,可以实现以下功能:

    1、CAdvisor用于实时监控容器的性能指标。
    2、InfluxDB作为中间存储,将CAdvisor收集到的数据保存在数据库中。
    3、Grafana连接到InfluxDB,从中获取数据,并将其以直观和可定制化的方式展示在仪表板上。

    2.1、CIG结合compose一键搭建监控平台

    1、新建Cig目录

    [root@zyl-server ~]# mkdir Cig
    
    • 1

    2、Cig目录下创建docker-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
    
      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=123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89

    文件内容解读:

    使用Docker Compose定义的CAdvisor、InfluxDB和Grafana的部署配置文件。
    可以通过Docker Compose命令来一键启动这套监控和可视化系统。
    
    配置文件中定义了三个服务:influxdb、cadvisor和grafana,分别对应InfluxDB、CAdvisor和Grafana的容器。
    
    1、InfluxDB服务使用了tutum/influxdb:0.9镜像,通过环境变量设置了预创建数据库cadvisor,
    并将容器内的8083端口映射到主机的8083端口(用于InfluxDB Web UI),将8086端口映射到主机的8086端口(用于InfluxDB API)。
    
    2、CAdvisor服务使用了google/cadvisor镜像,通过links指定了与influxdb服务的连接,
    并通过command参数指定了CAdvisor的运行参数,将容器内的8080端口映射到主机的8080端口(用于CAdvisor Web UI)。
    
    3、Grafana服务使用了grafana/grafana镜像,也通过links指定了与influxdb服务的连接,
    并将容器内的3000端口映射到主机的3000端口(用于Grafana Web UI)。
    此外,还定义了一些环境变量,包括Grafana的管理员账号和密码,以及连接InfluxDB的相关信息。
    
    4、此配置文件还定义了一个名为grafana_data的volume,用于将Grafana的数据持久化存储。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    3、启动docker-compose文件

    1、检查 Docker Compose 配置文件
    [root@zyl-server Cig]# docker-compose config -q
    [root@zyl-server Cig]#
    
    2、启动docker-compose文件
    
    docker-compose up  ##前台启动
    
    如果需要在后台运行 Docker Compose 服务,可以使用 -d 参数,如下所示:
    
    docker-compose up -d
    
    3、完成后,可以使用 docker ps 命令来查看正在运行的容器列表,以确认服务已经成功启动。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

    4、访问测试

    浏览cAdvisor收集服务:http://192.168.234.10:8080/containers/

    第一次访问较慢,Ip根据自己主机而定,暴露端口见docker-compose文件。

    在这里插入图片描述

    浏览influxdb存储服务:http://192.168.234.10:8083/

    在这里插入图片描述

    浏览grafana展现服务:http://192.168.234.10:3000/login

    在这里插入图片描述


    CAdvisor+InfluxDB+Granfana,启动成功!!!!


    2.1、数据源配置

    访问grafana展现服务:http://192.168.234.10:3000/login

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

    URL: http://influxsrv:8086

    服务名(influxsrv),数据库名(cadvisor),端口(8086)、用户名(root)、密码(123456):根据docker-compose文件配置。

    在这里插入图片描述

    2.2、配置panel面板

    在这里插入图片描述

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

    2.3、为panel面板填充数据

    在这里插入图片描述
    例如:填充CPU使用数据

    在这里插入图片描述

    在这里插入图片描述


    这里只监控一个维度,具体可根据业务规则而定!!!

    到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成了


    到目前为止,docker基础知识学的已经差不多了,可以算是入门级了。
    在这里插入图片描述


    💖The End💖点点关注,收藏不迷路💖
  • 相关阅读:
    vscode访问远程服务器的图形界面如firefox
    后渗透之日志分析实验
    mysql varchar和bigint比较的坑
    Blender 插件
    蜂窝基站和信号放大器的区别介绍
    l8-d8 TCP并发实现
    计算机毕业设计(附源码)python幼儿英语学习平台的
    【QT基础入门】QT中的容器类
    神经网络准确率计算公式,提高神经网络精确率
    通达OA-通用版-V12,流程及表单自定义好用的类
  • 原文地址:https://blog.csdn.net/qq_41840843/article/details/132864407