Docker 学习笔记 - 进阶五 Docker Portainer CAdvisor InfluxDB Granfana

2023-10-18 06:59

本文主要是介绍Docker 学习笔记 - 进阶五 Docker Portainer CAdvisor InfluxDB Granfana,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Docker 学习笔记 - 进阶五 Docker 可视化工具

  • 1. docker 轻量级可视化工具 Portainer
    • 1.1 是什么
    • 1.2 安装
      • 1.2.1 官网
      • 1.2.2 安装步骤
      • 1.2.3 启动运行
      • 1.2.4 登录
      • 1.2.5 各个功能点如下
  • 2. Docker容器监控CAdvisor+InfluxDB+Grafana
    • 2.1 容器监控原生命令
    • 2.2 容器监控3剑客
      • 2.2.1 CAdvisor
      • 2.2.2 InfluxDB
      • 2.2.3 Grafana
      • 2.2.4 小总结
    • 2.3 CIG 各自启动
      • 2.3.0 network
      • 2.3.1 InfluxDB(位于监控主机)
      • 2.3.2 CAdvisor(位于被监控主机)
      • 2.3.3 Grafana(位于监控主机)
      • 2.3.4 验证
    • 2.4 使用compose编排
      • 2.4.1 新建3套组合的 docker-compose.yaml
      • 2.4.2 启动 docker compose 文件
      • 2.4.3 验证三个服务
        • 2.4.3.1 CAdvisor
        • 2.4.3.2 InfluxDB 1.8
        • 2.4.3.3 Grafana 配置
  • 3. prometheus+influxdb2.0+grafana

笔记记录学习尚硅谷周阳老师的 docker 教程
链接地址: https://www.bilibili.com/video/BV1gr4y1U7CY?p=1

1. docker 轻量级可视化工具 Portainer

1.1 是什么

Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。

1.2 安装

1.2.1 官网

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

1.2.2 安装步骤

去dockerhub 找docker 安装命令
docker pull portainer/portainer-ce:2.13.0-alpine

[root@vm001 admin]# docker pull portainer/portainer-ce:2.13.0-alpine
2.13.0-alpine: Pulling from portainer/portainer-ce
df9b9388f04a: Pull complete 
df8362a36bd7: Pull complete 
Digest: sha256:18adcd23f746ded2f642a04153227423336aa22ad99880ef5e8265af243eeb79
Status: Downloaded newer image for portainer/portainer-ce:2.13.0-alpine
docker.io/portainer/portainer-ce:2.13.0-alpine
[root@vm001 admin]# docker images
REPOSITORY                                                    TAG             IMAGE ID       CREATED         SIZE
portainer/portainer-ce                                        2.13.0-alpine   f7bebd33b1c4   11 days ago     282MB

1.2.3 启动运行

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:2.13.0-alpine

1.2.4 登录

URL: http://192.168.226.128:9000/
第一次登录需要设置账号密码,账号默认是admin(也可以改)
在这里插入图片描述
之后登进初始界面,选择 ‘Get Started’,
会进去到home页面:http://192.168.226.128:9000/#!/home
点击 ‘Local’ 则可以到达 Dashboard界面
在这里插入图片描述
上面的图形,对应的命令行?

[root@vm001 admin]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          22        13        6.552GB   1.898GB (28%)
Containers      22        4         293.7MB   293.6MB (99%)
Local Volumes   32        8         1.981GB   1.185GB (59%)
Build Cache     0         0         0B        0B

1.2.5 各个功能点如下

就是把命令行操作转换成为图形界面操作
在这里插入图片描述

2. Docker容器监控CAdvisor+InfluxDB+Grafana

2.1 容器监控原生命令

docker stats

CONTAINER ID   NAME                 CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
c0f5ce3804be   portainer            0.06%     11.88MiB / 4.667GiB   0.25%     2.8kB / 0B       84.2MB / 655kB   4
b014f0b061b4   suspicious_keldysh   0.00%     8.477MiB / 4.667GiB   0.18%     2.8kB / 0B       42.1MB / 0B      5
f27be7bd716a   consul               0.15%     21.1MiB / 4.667GiB    0.44%     9.4kB / 1.17kB   164MB / 1.4MB    9
e2ddfc2abe31   zk01                 0.66%     67.35MiB / 4.667GiB   1.41%     3.01kB / 0B      187MB / 8.19kB   30

通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了。。。。

但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能

2.2 容器监控3剑客

CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表
在这里插入图片描述

2.2.1 CAdvisor

在这里插入图片描述

2.2.2 InfluxDB

InfluxDB 1.x 和 2.x 差别很大
当下 CAdvisor只支持 InfluxDB 1.x 所以本例使用 1.x
在这里插入图片描述

2.2.3 Grafana

在这里插入图片描述

2.2.4 小总结

在这里插入图片描述

2.3 CIG 各自启动

参考:https://www.isolves.com/it/cxkf/rongqi/2022-03-11/51054.html

2.3.0 network

docker network create cig_network

2.3.1 InfluxDB(位于监控主机)

这里预先定义了创建一个初始数据库:

INFLUXDB_DB=cadvisor # 初始数据库名称
INFLUXDB_USER=root # 初始数据库用户名
INFLUXDB_USER_PASSWORD=root123456 # 初始数据库密码

docker run -d -p 8086:8086 --restart=always --name influxdb --network cig_network	\
-e INFLUXDB_DB=cadvisor \
-e INFLUXDB_USER=root \
-e INFLUXDB_USER_PASSWORD=root123456 \
-v influxdb_data:/var/lib/influxdb \
influxdb:1.8.4-alpine

2.3.2 CAdvisor(位于被监控主机)

这里注意填入在部署influxdb时设置的数据库、用户名、密码

-storage_driver_db=cadvisor # influxdb的数据库名称
-storage_driver_host=192.168.92.148:8086 # influxdb的主机地址
-storage_driver_user=root # influxdb的用户名
-storage_driver_password=root123456 # influxdb的密码
-storage_driver_host=influxdb:8086 # 填入的是前面influxdb的IP地址(192.168.226.128) 或者服务名称influxdb

docker run -d -p 8080:8080 --restart=always --name cadvisor --network cig_network	\
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-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 -storage_driver_user=root \
-storage_driver_password=root123456

2.3.3 Grafana(位于监控主机)

docker run -d -p 3000:3000 --restart=always --name grafana --network cig_network	\
-v grafana_data:/var/lib/grafana \
grafana/grafana:8.5.0

2.3.4 验证

去看 2.4.3

2.4 使用compose编排

2.4.1 新建3套组合的 docker-compose.yaml

新建目录

[root@vm001 cig]# pwd
/dockerfiles/cig

新建文件:docker-compose.yaml
内容如下:

version: '3.1'services:    influxdb:image: influxdb:1.8.4-alpinerestart: alwaysenvironment:- INFLUXDB_DB=cadvisor- INFLUXDB_USER=root- INFLUXDB_USER_PASSWORD=root123456ports:- "8086:8086"volumes:- influxdb_data:/var/lib/influxdbcadvisor:image: google/cadvisordepends_on:- influxdbcommand: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086 -storage_driver_user=root -storage_driver_password=root123456restart: alwaysports:- "8080:8080"volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rografana:user: "104"image: grafana/grafana:8.5.0restart: alwaysdepends_on:- influxdbports:- "3000:3000"volumes:- grafana_data:/var/lib/grafanavolumes:influxdb_data: {}grafana_data: {}

2.4.2 启动 docker compose 文件

启动并查看

## 检查 compose 文件内容编写格式是否正确
[root@vm001 cig]# docker compose config -q
## 启动
[root@vm001 cig]# docker compose up -d
[+] Running 5/5⠿ Network cig_default        Created                                                                                                                                               0.3s⠿ Volume "cig_grafana_data"  Created                                                                                                                                               0.0s⠿ Container cig-influxdb-1   Started                                                                                                                                               1.0s⠿ Container cig-cadvisor-1   Started                                                                                                                                               2.3s⠿ Container cig-grafana-1    Started                                                                                                                                               2.4s## 查看
[root@vm001 cig]# docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED          STATUS          PORTS                                                                                            NAMES
345c815da2cf   google/cadvisor                        "/usr/bin/cadvisor -…"   14 seconds ago   Up 11 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                        cig-cadvisor-1
d987501c1518   grafana/grafana:8.5.0                  "/run.sh"                14 seconds ago   Up 11 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                        cig-grafana-1
12c6cd28ce7d   influxdb:2.2.0                         "/entrypoint.sh infl…"   14 seconds ago   Up 12 seconds   0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp             cig-influxdb-1

2.4.3 验证三个服务

2.4.3.1 CAdvisor

URL: http://192.168.226.128:8080/containers/
cadvisor也有基础的图形展现功能,这里主要用它来作数据采集
在这里插入图片描述

2.4.3.2 InfluxDB 1.8

(1.3之后无界面)

## docker 进入 influxdb 的bash界面
[root@vm001 cig]# docker exec -it cig-influxdb-1 bash
## 输入 influx 进入数据库
bash-5.0# influx
Connected to http://localhost:8086 version 1.8.4
InfluxDB shell version: 1.8.4
## 显示库
> show databases
name: databases
name
----
cadvisor
_internal
## 使用库
> use cadvisor
Using database cadvisor
## 显示 measurements (类似于表)
> show measurements
name: measurements
name
----
## 下面这些就是cadvisor收集并输入进来的measurements了
cpu_usage_per_cpu
cpu_usage_system
cpu_usage_total
cpu_usage_user
fs_limit
fs_usage
load_average
memory_usage
memory_working_set
rx_bytes
rx_errors
tx_bytes
tx_errors
2.4.3.3 Grafana 配置

URL: http://192.168.226.128:3000/
默认账号密码: admin/admin

配置数据源
在这里插入图片描述
如下图,
如果是各自启动,且没有使用network,那么URL那里需要填上ip地址,
如果是各自启动且使用了network,那么URL可以填上服务名
如果是使用了compose 文件启动,那么URL可以填上服务名
在这里插入图片描述
添加面板
在这里插入图片描述
选择面板参数
在这里插入图片描述
保存并命名该面板
在这里插入图片描述

3. prometheus+influxdb2.0+grafana

参考:https://www.jianshu.com/p/aae4a2a6d8aa
有空填坑。。

这篇关于Docker 学习笔记 - 进阶五 Docker Portainer CAdvisor InfluxDB Granfana的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/230979

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析