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. 点击预览,即可查看文件内容(视频、音乐、图片、文件)
  • 最终,这些操作都会被监控到
相关推荐
FIN技术铺2 小时前
Redis集群模式之Redis Sentinel vs. Redis Cluster
数据库·redis·sentinel
涔溪2 小时前
Docker简介
spring cloud·docker·eureka
内核程序员kevin3 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net
CodingBrother4 小时前
MySQL 中的 `IN`、`EXISTS` 区别与性能分析
数据库·mysql
kayotin4 小时前
Wordpress博客配置2024
linux·mysql·docker
代码小鑫4 小时前
A027-基于Spring Boot的农事管理系统
java·开发语言·数据库·spring boot·后端·毕业设计
小小不董5 小时前
Oracle OCP认证考试考点详解082系列16
linux·运维·服务器·数据库·oracle·dba
甄臻9245 小时前
Windows下mysql数据库备份策略
数据库·mysql
内蒙深海大鲨鱼5 小时前
qt之ui开发
数据库·qt·ui
不爱学习的YY酱5 小时前
【计网不挂科】计算机网络第一章< 概述 >习题库(含答案)
java·数据库·计算机网络