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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学