运维小弟 - minio
type: channel
link: https://blog.srebro.cn/tag/minio/
items: MinIO 新版本 Docker 部署指南：告别 Web 控制台，拥抱 CLI 管理
items: 《Prometheus监控MinIO：指标采集与Grafana可视化实战指南》
items: 记一次 minio 排障

MinIO 新版本 Docker 部署指南：告别 Web 控制台，拥抱 CLI 管理
type: item
date: 2026-01-13T09:30:00+00:00
description: 一、背景安全事件：MinIO 安全漏洞（CVE-2025-62506）， 漏洞说明： https://avd.aliyun.com/detail?id=AVD-2025-62506建议升级到 RELEASE.2025-10-15T17-29-55Z 或更高版本。二、新版本变动Web 控制台功能阉割：开源社区版本，内置 Web 管理界面不再提供除了创建bucket以外的功能。👆上面的图是不是很干净😄开源社区版本分发调整：官方不再提供Docker镜像与预编译二进制，需要自行从源码编译并封装镜像。推荐部署路径：源码构建 + 自制 Docker 镜像 + Docker Compose 编排。issues: https://github.com/minio/minio/issues/21647三、自己动手封装镜像实现方式：多阶段构建，第一阶段拉源并编译成二进制文件，第二阶段生成最小运行镜像。参考官方提供的 Dockerfile： https://github.com/minio/minio/blob/master/Dockerfile# 阶段1：依赖下载层 FROM golang:1.24.11-alpine3.23 AS builder # 定义MINIO版本 ARG MINIO_VERSION=RELEASE.2025-10-15T17-29-55Z WORKDIR /app # 下载minio并构建二进制文件 RUN wget https://github.com/minio/minio/archive/refs/tags/${MINIO_VERSION}.tar.gz \ && tar -zxvf ${MINIO_VERSION}.tar.gz \ && rm -rf ${MINIO_VERSION}.tar.gz \ && export GOPROXY=https://mirrors.cloud.tencent.com/go/ \ && cd minio-${MINIO_VERSION} \ && go mod tidy \ && go build # 阶段2：生成最终镜像 #官方的 minio 镜像自带了 mc 命令 FROM minio/minio:latest # 定义MINIO版本 ARG MINIO_VERSION=RELEASE.2025-10-15T17-29-55Z COPY --from=builder /app/minio-${MINIO_VERSION}/minio /usr/bin/minio COPY --from=builder /app/minio-${MINIO_VERSION}/dockerscripts/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod -R 777 /usr/bin && chmod +x /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] VOLUME ["/data"] CMD ["minio"]构建命令：MINIO_VERSION=RELEASE.2025-10-15T17-29-55Z docker build -t minio:${MINIO_VERSION} --build-arg MINIO_VERSION=${MINIO_VERSION} .四、使用 Docker Compose 快速运行MinIO目标：配置环境变量、数据卷与健康检查，快速启动单实例。初始化： 运行了一个 minio-init 容器，用于 minio 的初始化，创建桶等一些操作。⚠️注意：需要先创建一个 srebro 的docker 网桥；凭证使用 MINIO_ROOT_USER/MINIO_ROOT_PASSWORD。#创建docker 自定义网桥 docker network create -d bridge --subnet "10.22.33.0/24" --gateway "10.22.33.1" srebroversion: "3.8" services: minio: image: docker.cnb.cool/srebro/docker-images/minio:RELEASE.2025-10-15T17-29-55Z #CNB镜像托管了一个 # 如果本地构建镜像，用 build 指令替代 image： # build: # context: . # dockerfile: Dockerfile container_name: minio networks: - srebro ports: - 9000:9…

《Prometheus监控MinIO：指标采集与Grafana可视化实战指南》
type: item
date: 2025-12-16T14:41:00+00:00
description: 一、Prometheus监控配置与MinIO指标采集​1.1 先决条件:一个现有的 Prometheus 部署，并支持告警一个现有的 MinIO 部署，并具有对 Prometheus 部署的网络访问权限本地主机上安装了 mc，并已配置可访问 MinIO1.2 使用mc命令生成抓取配置使用 mc admin prometheus generate 命令生成抓取配置，供 Prometheus 用于发出抓取请求1.2.1 抓取 MinIO 集群的指标以下命令抓取 MinIO 集群的指标。将 ALIAS 替换为 MinIO 部署的 别名。mc admin prometheus generate ALIAS该命令返回类似于以下内容的输出：global: scrape_interval: 60s scrape_configs: - job_name: minio-job bearer_token: TOKEN metrics_path: /minio/v2/metrics/cluster scheme: https static_configs: - targets: [minio.example.net]1.2.2 抓取 MinIO 服务器上某个节点的指标以下命令抓取 MinIO 服务器上某个节点的指标。将 ALIAS 替换为 MinIO 部署的 别名。mc admin prometheus generate ALIAS node该命令返回类似于以下内容的输出：global: scrape_interval: 60s scrape_configs: - job_name: minio-job-node bearer_token: TOKEN metrics_path: /minio/v2/metrics/node scheme: https static_configs: - targets: [minio-1.example.net, minio-2.example.net, minio-N.example.net]1.2.3 抓取 MinIO 服务器上存储桶的指标以下命令抓取 MinIO 服务器上存储桶的指标。将 ALIAS 替换为 MinIO 部署的 别名。mc admin prometheus generate ALIAS bucket该命令返回类似于以下内容的输出：global: scrape_interval: 60s scrape_configs: - job_name: minio-job-bucket bearer_token: TOKEN metrics_path: /minio/v2/metrics/bucket scheme: https static_configs: - targets: [minio.example.net]1.2.4 抓取 MinIO 服务器上资源的指标。以下命令抓取 MinIO 服务器上资源的指标。将 ALIAS 替换为 MinIO 部署的 别名。⚠️：版本 RELEASE.2023-10-07T15-07-38Z 中的新增功能。mc admin prometheus generate ALIAS resource该命令返回类似于以下内容的输出：global: scrape_interval: 60s scrape_configs: - job_name: minio-job-resource bearer_token: TOKEN metrics_path: /minio/v2/metrics/resource scheme: https static_configs: - targets: [minio.example.net]1.2.5 配置抓取注意事项设置适当的 scrape_interval 值以确保每个抓取操作在下一个操作开始之前完成。建议的值为 60 秒。由于要抓取的指标数量，某些部署需要更长的抓取间隔。为了减少 MinIO 和 Prometheus 服务器的负载，请选择满足监控要求的最长间隔。将 job_name 设置为与 MinIO 部署关联的值。使用唯一值以确保部署指标与该 Prometheus 服务收集的任何其他指标隔离。如果 MINIO_PROMETHEUS_AUTH_TYPE 设置为 "public"，则可以省略 bearer_token 字段。对于不使用 TLS 的 MinIO 部署，请将 scheme 设置为 http。使用解析到 MinIO 部署的主机名设置 targets 数组。这可以是任何单个节点，或处理到 MinIO 节点连接的负载均衡器/代理。对于与 MinIO 租户位于同一集群中的 Prometheus 部署，您可以为 minio 服务指定服务 …

记一次 minio 排障
type: item
date: 2025-12-15T13:21:00+00:00
description: 问题现象：中午接到开发反馈，生产上无法上传附件。接口显示 minio 问题，超时，无法访问minio 控制台 也登录不上查看 minio 服务报错：journalctl -u minio.service --since today发现大批量报错：API: PutObject Time: 03:01:53 UTC 12/15/2025 DeploymentID: 944869e6-7044-4c56-a3bf-64d00fa843cc RequestID: 188144605A9808E1 RemoteHost: 192.168.3.111 UserAgent: MinIO (Linux; amd64) minio-java/8.5.7 Error: drive:/home/application/Middleware/minio/data, srcVolume: .minio.sys/tmp, srcPath: c6ce506f-87c0-453f-a9e2-b6245c05171e, dstVolume: srebro:, dstPath: 53ba5209-8843-4df1-b41d-b5b798cd6080 - error drive path full (*errors.errorString) Backtrace: 0: internal/logger/logonce.go:118:logger.(*logOnceType).logOnceIf() 1: internal/logger/logonce.go:149:logger.LogOnceIf() 2: cmd/logging.go:142:cmd.storageLogOnceIf() 3: cmd/xl-storage.go:2469:cmd.(*xlStorage).RenameData.func1() 4: cmd/xl-storage.go:2768:cmd.(*xlStorage).RenameData() 5: cmd/xl-storage-disk-id-check.go:484:cmd.(*xlStorageDiskIDCheck).RenameData.func2() 6: internal/ioutil/ioutil.go:116:ioutil.WithDeadline[...].func1()翻阅资料，查看到官方的代码仓库上有一个 issue 相识：https://github.com/minio/minio/issues/17055有人反馈说是，ext4 文件系统，目录的索引（HTree）已达到默认的最大层级；继续查看系统级别日志，发现果然 文件系统一直在报错：Dec 15 03:22:22 localhost kernel: [20102682.954029] EXT4-fs warning (device dm-2): ext4_dx_add_entry:2451: Large directory feature is not enabled on this filesystem Dec 15 03:22:24 localhost kernel: [20102682.954029] EXT4-fs warning (device dm-2): ext4_dx_add_entry:2451: Large directory feature is not enabled on this filesystem Dec 15 03:22:26 localhost kernel: [20102682.954029] EXT4-fs warning (device dm-2): ext4_dx_add_entry:2451: Large directory feature is not enabled on this filesystem Dec 15 03:22:28 localhost kernel: [20102682.954029] EXT4-fs warning (device dm-2): ext4_dx_add_entry:2451: Large directory feature is not enabled on this filesystem问题分析：这是内核的 EXT4 警告，表示某个目录的索引（HTree）已达到默认的最大层级，继续插入新目录项需要启用 EXT4 的“大目录”特性（ large_dir ），但当前文件系统未启用该特性。典型触发场景是“单个目录下存在超大量文件/子目录”（千万级以上），插入新文件时会出现“Directory index full”和“Large directory feature is no…