MinIO + Prometheus + Grafana docker部署

文章目录

说明

  • 本文产生于实践,同时部分操作,理论同效果,作者精力有限没有验证!希望各位,有能力实践时,有问题,联系作者完善本文。谢谢大家。

MinIO简介

  • MinIO是一个高性能的分布式对象存储服务,它使用标准的服务器硬件进行搭建。它兼容Amazon S3云存储服务的API,是一个开源项目,可以用于构建私有云存储系统。因为其设计简单、易于部署且高度可扩展,MinIO在私有云和混合云环境中非常受欢迎。
  • MinIO中文指导文档地址
  • MinIO原官网指导文档

MinIO的主要特点包括:

  1. 高性能 - MinIO支持高速读写操作,适用于大规模数据处理。
  2. 可扩展性 - 可以水平扩展到数百个服务器,管理数百PB级别的数据。
  3. 简单性 - MinIO的部署和管理非常简单,可以在各种环境中轻松搭建对象存储。
  4. S3兼容性 - 与Amazon S3 API兼容,可以轻松迁移或使用现有的S3集成工具和库。
  5. 安全性 - 支持各种数据加密和安全性标准,确保存储的数据安全。
  6. 开源 - MinIO是一个以Apache License v2.0授权的开源项目,可以免费使用和修改。
  • MinIO特别适合需要存储大量非结构化数据的用例,例如备份存储、媒体存储、机器学习数据等,经常用作Kubernetes和其他容器化环境的持久化存储解决方案。

MinIO 容器化部署

  • 这里使用1panel面板进行MinoIO 容器化环境部署
  • 点击安装,配置内容如下

  • 关于MINIO_PROMETHEUS_URL的配置,这里提供两种思路

Prometheus服务地址配置

方法一:先部署后修改

  • 打开编辑在底部修改环境变量,添加MINIO_PROMETHEUS_URL参数
bash 复制代码
MINIO_PROMETHEUS_URL="http://服务器IP:9090"
  • 然后点击保存,重启容器

方法二:部署时修改compose文件(未验证)

  • 修改compose文件的方式,作者在win11 ubuntu20 WSL的环境中,继续进行测试时,容器启动成功但是没有办法访问!应该是wsl的原因
  • 该操作方法,理论上和方法一同效果
  • 最后访问服务器ip::9001即可进入MinIO的Web控制台

MinIO Access Key配置

  • 这里配置的Access Keys用于Prometheus 监控配置

Prometheus 容器化部署


MinIO 生成抓取配置

  1. 进入MinIO容器终端
  2. 配置 MinIO 客户端工具 mc 的别名,使其可以连接到一个指定的 MinIO 服务器
  • mc 是一个用于管理 MinIO 和兼容 Amazon S3 API 的对象存储的命令行工具
bash 复制代码
mc alias set <your_minio> http://<服务器IP地址>:9000  <Access Key> <Secret Key>
# 例子 your_minio 可以灵活设置,这里演示使用minio
ash-5.1#  mc alias set minio http://192.168.28.122:9000 YLmvplSkaaRirm2DZE9u bH8t6gOOB46l9uPqZJKr0mxESvW3lBAJ4GqktfBP
mc: Configuration written to `/tmp/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/tmp/.mc/share`.
mc: Initialized share uploads `/tmp/.mc/share/uploads.json` file.
mc: Initialized share downloads `/tmp/.mc/share/downloads.json` file.
Added `minio` successfully.
  • 查看桶
bash 复制代码
bash-5.1# mc ls minio
[2024-04-16 03:44:26 UTC]     0B test/
  1. 生成抓取配置
bash 复制代码
 #这里minio是作者设置的别名,可自定义 
 mc admin prometheus generate minio
 mc admin prometheus generate minio bucket
 mc admin prometheus generate minio resource
 mc admin prometheus generate minio node
  • 例如
bash 复制代码
bash-5.1# mc admin prometheus generate minio
scrape_configs:
- job_name: minio-job
 bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiUVAyTEN0bTVTOEEzUFZEVlk1dnkiLCJleHAiOjQ4NjY4Mjk3MjN9._Wu2HwmB_Fypy1sGQRkBN1APUN4N8Qhw_T6E1JeYYxklTgdnIKj5rhAgiHKQUNjmzo9Ql3mcWoXVZu7A4mB5aA
 metrics_path: /minio/v2/metrics/cluster
 scheme: http
 static_configs:
 - targets: ['192.168.28.122:9000']

修改Prometheus配置文件

  1. 然后复制输出的内容到Prometheus配置文件内容,注意yml文件的缩进
  • 这里给出在1panel中的操作步骤



  1. 然后再容器面板,选择重启Prometheus,进入IP:9090查看连接情况,如果没有全部UP,请稍等一下

Grafana 容器化部署

  1. 1panel中部署grafana

  2. grafana初始化配置
    • 访问IP:3000登录,默认用户admin和密码admin登录,然后重新设置密码(也可以是admin)

添加Prometheus数据源

  1. 打开连接,搜索Prometheus
  2. 配置Prometheus地址和端口
  3. 然后点击保存和测试

添加面板

  1. 打开Dashboards,添加面板,选择导入面板
  2. 这里推荐19237(监控Bucket),15305(监控Cluster),13502(监控Server)

最终效果

  • MinlO Dashboard
  • MinlO Bucket Dashboard
  • MinlO Replication Dashboard

MInIO控制台操作

  1. 创建桶操作
  2. 上传文件,图片、视频、音乐都可以

  3. 点击预览,即可查看文件内容(视频、音乐、图片、文件)
  • 最终,这些操作都会被监控到
相关推荐
InterestingFigure11 分钟前
redis的时延监控
数据库·redis·缓存
搬砖写代码19 分钟前
MySQL数据库文件在Linux下存放位置
linux·数据库·mysql
季春二九1 小时前
解决 Docker 容器镜像拉取难题:全面指南
运维·docker·容器
用你的胜利博我一笑吧1 小时前
移动校园(4):数据处理(sql server数据库)
数据库
^_^ 纵歌1 小时前
virtualbox和docker的区别和优缺点以及如何选择
运维·docker·容器
PGCCC1 小时前
介绍 pg_later:受 Snowflake 启发的 Postgres 异步查询#postgresql认证
数据库·postgresql
zengson_g1 小时前
如何确保 PostgreSQL 在高并发写操作场景下的数据完整性?
数据库·postgresql
Ggggggtm2 小时前
Redis常用命令——Set、Zset篇
数据库·redis·缓存
阳光九叶草LXGZXJ3 小时前
南大通用数据库-Gbase-8a-学习-44-DDLEVENT恢复
linux·数据库·sql·学习
Xua30553 小时前
初始redis:在Ubuntu上安装redis
linux·数据库·redis