CentOS 上 MinIO 故障排查方法
一 快速定位流程
systemctl status minio、systemctl is-enabled minio、journalctl -u minio -n 50 --no-pager、journalctl -xe | grep -i minio。free -h、df -h、du -sh <数据目录>、uptime、top -bn1 | head -20。ss -tlnp | grep -E ':9000|:9001',ps aux | grep minio。cat /usr/lib/systemd/system/minio.service、cat /etc/default/minio、ls -ld /data /root/.minio。http://<服务器IP>:9000 与 http://<服务器IP>:9001,必要时抓包分析。示例:curl -I http://127.0.0.1:9000。二 常见故障与修复
/etc/default/minio 中正确设置 MINIO_VOLUMES、MINIO_ROOT_USER、MINIO_ROOT_PASSWORD、MINIO_OPTS="--console-address :9001";确认服务文件中 User/Group 存在且有权限;确保服务文件包含 EnvironmentFile=/etc/default/minio;执行 systemctl daemon-reload && systemctl restart minio 并复核日志。ss 显示 9000/9001 已被占用。处理要点:释放占用进程(ss -tlnp | grep :9000 查 PID,必要时 kill <PID>),或修改 minio.service 中的 --address 与 --console-address 使用未占用端口,随后重启服务。chown -R <运行用户>:<运行组> /data /root/.minio;必要时修正目录属主或以正确用户启动服务。dd if=/dev/zero of=/swapfile bs=1M count=2048 && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile),或扩容内存;同时优化应用内存占用。df -h 与 du -sh 定位占用热点。~/.minio/config.json,重启让 MinIO 以默认配置重建,再按需恢复配置。setenforce 0;长期方案为配置正确的 SELinux 策略;防火墙放行端口:firewall-cmd --permanent --zone=public --add-port=9000/tcp --add-port=9001/tcp && firewall-cmd --reload。server <数据路径>,例如:docker run -d -p 9000:9000 -p 9001:9001 --name minio -e MINIO_ROOT_USER=admin -e MINIO_ROOT_PASSWORD=admin -v /mnt/data:/data minio/minio server /data。三 客户端访问与签名错误
yum install chrony -y && systemctl start chronyd && systemctl enable chronyd,确保客户端与服务端时间偏差不超过 5 分钟。Host 与 X-Forwarded-Proto,例如:proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme;,并确保客户端 endpoint 与签名使用一致的协议与主机名。//、空格)或 Range 请求处理不当,可能引发签名错误。处理要点:规范对象命名,仅使用字母、数字、-、_、.、/;代理需正确转发 Range 头(如 proxy_set_header Range $http_range; proxy_force_ranges on;)。四 一键健康检查清单
| 检查项 | 命令示例 | 期望结果 | 异常处置 |
|---|---|---|---|
| 服务状态 | systemctl status minio |
状态为 active (running) | journalctl -u minio -xe 查错并修复 |
| 端口监听 | `ss -tlnp | grep -E ':9000 | :9001’` |
| 资源健康 | free -h && df -h && uptime |
内存与磁盘余量充足、负载正常 | 扩容或清理、优化占用 |
| 目录权限 | ls -ld /data /root/.minio |
运行用户对目录有 rwx | chown/chmod 修正属主与权限 |
| 防火墙/SELinux | firewall-cmd --list-ports;getenforce |
放行 9000/9001;SELinux 策略正确 | 放行端口或调整 SELinux 策略 |
| 控制台访问 | curl -I http://127.0.0.1:9001 |
返回 200/302 | 复核端口、代理与浏览器访问路径 |
以上步骤覆盖了 服务状态、资源、端口、权限、配置、网络与代理 等最常见的故障面,按序执行通常可在数分钟内定位并恢复 MinIO 服务。