前言
在生产环境中,FastDFS 作为分布式文件存储系统,其健康状态直接影响业务可用性。常见问题包括 Storage 或 Tracker 进程挂掉、端口未监听、Storage 未 ACTIVE 注册。传统只监控进程或端口容易漏掉 Storage 未注册 ACTIVE 的情况,本文将分享模板化、宏控制、可扩展的监控实践。
1️⃣ 监控指标设计
关键指标
| 指标 | 说明 | 类型 |
|---|---|---|
| Storage 进程数 | fdfs_storaged 是否运行 | proc.num[fdfs_storaged] |
| Tracker 进程数 | fdfs_trackerd 是否运行 | proc.num[fdfs_trackerd] |
| Storage 端口 | Storage 服务是否监听端口 | net.tcp.listen[23000] |
| Tracker 端口 | Tracker 服务是否监听端口 | net.tcp.listen[22122] |
| Storage ACTIVE 数 | Storage 是否 ACTIVE 注册到 Tracker | fastdfs.active.count(脚本统计) |
注意:仅依赖进程和端口不足以保证 Storage 可用,ACTIVE 数监控可覆盖业务实际可用性。
2️⃣ Active count 脚本
使用 fdfs_monitor 解析 Storage ACTIVE 状态:
#!/bin/bash
CONF="/etc/fdfs/storage.conf"
# 统计 ACTIVE Storage 数
ACTIVE=$(fdfs_monitor $CONF 2>/dev/null |grep -v 'DEBUG'|grep -c 'ACTIVE')
# 输出数字
echo ${ACTIVE:-0}
- 保存为
/usr/local/bin/fastdfs_active.sh - Zabbix UserParameter 配置:
UserParameter=fastdfs.active.count,/usr/local/bin/fastdfs_active.sh
- 脚本返回数字 → 触发器直接判断
<{$FDFS_STORAGE_MIN}
3️⃣ 模板宏设计
| 宏名 | 默认值 | 说明 |
|---|---|---|
| {$FDFS_STORAGE_MIN} | 1 | Storage 进程或 ACTIVE 最小值,挂掉触发告警 |
| {$FDFS_TRACKER_MIN} | 1 | Tracker 进程最小值 |
| {$FDFS_STORAGE_PORT} |


