前言群晖SynologyNAS作为市面上最流行的私有云存储解决方案之一在企业及家庭环境中应用广泛。然而由于群晖DSM系统封装较为严密在其上直接安装Zabbix Agent进行监控较为繁琐。SNMP简单网络管理协议为我们提供了一条便捷的替代路径——群晖系统原生支持SNMP服务我们只需在DSM中开启该服务即可通过Zabbix Server的SNMP监控功能实现对群晖NAS的全面监控无需安装任何额外软件。本文将详细讲解从群晖端配置到Zabbix端导入模板、添加主机的完整流程。一、实验环境说明组件配置群晖NASDSM 7.xIP: 192.168.38.25Zabbix Server192.168.38.30SNMP版本SNMPv2c社群Communitysynology自定义二、群晖NAS端开启SNMP服务2.1 进入SNMP设置登录群晖DSM管理界面点击桌面上的控制面板Control Panel在左侧导航栏中选择终端机和SNMPTerminal SNMP切换到SNMP选项卡如下图2.2 配置SNMP参数在SNMP设置页面中进行如下配置配置项推荐值说明启用SNMP服务✅ 勾选开启SNMP协议支持版本SNMPv2c兼容性好配置简单社群Communitysynology相当于认证密码Zabbix端需与此保持一致位置Location根据需要填写可选标识设备位置联系人Contact根据需要填写可选管理员联系方式⚠️ 特别注意社群Community字符串相当于SNMP的认证密码Zabbix Server端需要通过这个社群字符串来获取监控数据务必牢记此处配置的值。填写完成后点击应用Apply保存配置。三、Zabbix Server端安装SNMP工具3.1 安装net-snmp-utils在Zabbix Server上安装SNMP客户端工具包用于后续的连通性测试[rootzabbixserver ~]# yum -y install net-snmp net-snmp-utils安装完成后系统会提供snmpwalk、snmpget等命令行工具方便我们调试和验证SNMP通信。3.2 测试SNMP连通性使用snmpwalk命令测试能否正常获取[rootzabbixserver ~]# snmpwalk -v 2c -c synology 192.168.38.25 .1.3.6.1.2.1.31.1.1.1.1 IF-MIB::ifName.1 STRING: lo IF-MIB::ifName.2 STRING: eth0 IF-MIB::ifName.3 STRING: sit0群晖NAS的SNMP数据测试1获取内存可用容量[rootzabbixserver ~]# snmpwalk -v 2c -c synology 192.168.38.25 .1.3.6.1.4.1.2021.4.6 UCD-SNMP-MIB::memAvailReal.0 INTEGER: 87140 kB成功返回内存大小说明SNMP通信正常。测试2获取网络接口列表成功返回网络接口名称进一步验证通信正常。测试3获取指定网络接口信息[rootzabbixserver ~]# snmpwalk -v 2c -c synology 192.168.38.25 .1.3.6.1.2.1.31.1.1.1.1.2 IF-MIB::ifName.2 STRING: eth0参数说明-v 2c指定SNMP版本为v2c-c synology指定社群字符串与群晖端配置一致最后的数字串为OID对象标识符用于标识具体的监控项四、SNMP OID知识储备OIDObject Identifier对象标识符是SNMP协议中唯一标识一个管理对象的编号。不同的OID对应不同的监控指标了解常用的OID对于自定义监控项至关重要。4.1 系统信息类OIDOID描述请求方式.1.3.6.1.2.1.1.1.0系统基本信息SysDescGET.1.3.6.1.2.1.1.3.0系统运行时间sysUptimeGET.1.3.6.1.2.1.1.4.0系统联系人sysContactGET.1.3.6.1.2.1.1.5.0主机名SysNameGET.1.3.6.1.2.1.1.6.0设备位置SysLocationGET.1.3.6.1.2.1.1.7.0提供的服务SysServiceGET.1.3.6.1.2.1.25.4.2.1.2系统运行进程列表hrSWRunNameWALK.1.3.6.1.2.1.25.6.3.1.2已安装软件列表hrSWInstalledNameWALK4.2 网络接口类OIDOID描述请求方式.1.3.6.1.2.1.2.1.0网络接口数量IfNumberGET.1.3.6.1.2.1.2.2.1.2网络接口描述IfDescrWALK.1.3.6.1.2.1.2.2.1.3网络接口类型IfTypeWALK.1.3.6.1.2.1.2.2.1.4MTU大小IfMTUWALK.1.3.6.1.2.1.2.2.1.5接口带宽bpsIfSpeedWALK.1.3.6.1.2.1.2.2.1.6MAC地址IfPhysAddressWALK.1.3.6.1.2.1.2.2.1.8接口状态 up/downIfOperStatusWALK.1.3.6.1.2.1.2.2.1.10接收字节数IfInOctetWALK.1.3.6.1.2.1.2.2.1.16发送字节数IfOutOctetWALK.1.3.6.1.2.1.2.2.1.11接收数据包数IfInUcastPktsWALK.1.3.6.1.2.1.2.2.1.17发送数据包数IfOutUcastPktsWALK4.3 CPU及负载类OIDOID描述请求方式.1.3.6.1.4.1.2021.11.9.0用户态CPU百分比GET.1.3.6.1.4.1.2021.11.10.0系统态CPU百分比GET.1.3.6.1.4.1.2021.11.11.0CPU空闲百分比GET.1.3.6.1.4.1.2021.11.50.0原始用户CPU时间GET.1.3.6.1.4.1.2021.11.51.0原始Nice占用时间GET.1.3.6.1.4.1.2021.11.52.0原始系统CPU时间GET.1.3.6.1.4.1.2021.11.53.0原始CPU空闲时间GET.1.3.6.1.2.1.25.3.3.1.2CPU当前负载多核分别显示WALK.1.3.6.1.4.1.2021.10.1.3.15分钟平均负载GET.1.3.6.1.4.1.2021.10.1.3.210分钟平均负载GET.1.3.6.1.4.1.2021.10.1.3.315分钟平均负载GET4.4 内存及磁盘类OIDOID描述请求方式.1.3.6.1.2.1.25.2.2.0内存总大小hrMemorySizeGET.1.3.6.1.4.1.2021.4.3.0虚拟内存总量memTotalSwapGET.1.3.6.1.4.1.2021.4.4.0可用虚拟内存memAvailSwapGET.1.3.6.1.4.1.2021.4.5.0物理内存总量memTotalRealGET.1.3.6.1.4.1.2021.4.6.0已用物理内存memAvailRealGET.1.3.6.1.4.1.2021.4.11.0空闲物理内存memTotalFreeGET.1.3.6.1.4.1.2021.4.13.0共享内存memSharedGET.1.3.6.1.4.1.2021.4.14.0缓冲区内存memBufferGET.1.3.6.1.4.1.2021.4.15.0缓存内存memCachedGET.1.3.6.1.4.1.2021.9.1.2磁盘挂载路径dskPathWALK.1.3.6.1.4.1.2021.9.1.3磁盘设备路径dskDeviceWALK.1.3.6.1.4.1.2021.9.1.6磁盘总容量KBdskTotalWALK.1.3.6.1.4.1.2021.9.1.7磁盘可用空间KBdskAvailWALK.1.3.6.1.4.1.2021.9.1.8磁盘已用空间KBdskUsedWALK.1.3.6.1.4.1.2021.9.1.9磁盘使用率百分比dskPercentWALK 群晖官方参考群晖NAS的完整OID列表可参考官方MIB文档https://global.download.synology.com/download/Document/Software/DeveloperGuide/Firmware/DSM/All/enu/Synology_DiskStation_MIB_Guide.pdf五、导入群晖NAS监控模板手动逐个创建OID对应的监控项工作量巨大最便捷的方式是直接导入提前制作好的模板。5.1 准备模板文件本文附带的群晖NAS监控模板已根据前述OID含义按照监控需求配置好了完整的监控项和触发器可以直接导入使用。5.2 导入模板登录Zabbix Web管理界面进入配置Configuration→模板Templates点击右上角的导入Import按钮在弹出窗口中选择模板文件XML或YAML格式确保规则Rules选项全部勾选点击导入Import完成操作导入成功后在模板列表中应能看到新导入的群晖NAS监控模板。六、添加群晖NAS主机6.1 创建主机进入配置Configuration→主机Hosts点击创建主机Create host6.2 填写主机基本信息参数填写内容主机名称Host name192.168.38.25或自定义唯一标识可见名称Visible nameSynology-NAS便于识别群组Groups选择或新建 NAS Devices 或 Synology接口Interfaces类型选SNMPIP填192.168.38.25端口1616.3 链接监控模板在模板Templates选项卡中点击链接新模板Link new templates搜索并选择刚导入的群晖NAS监控模板。6.4 配置SNMP宏变量这是最关键的一步切换到宏Macros选项卡添加SNMP社群字符串宏变量宏变量值{$SNMP_COMMUNITY}synology说明模板中的SNMP监控项通过{$SNMP_COMMUNITY}宏引用社群字符串该值必须与群晖端配置的社群完全一致否则将无法获取数据。6.5 保存配置点击添加Add保存主机配置。稍等片刻查看主机状态是否变为绿色SNMP标识表示监控已正常生效。七、验证与排障7.1 快速验证在Zabbix Server端使用以下命令验证能否获取到群晖的系统名称snmpget -v 2c -c synology 192.168.38.25 .1.3.6.1.2.1.1.5.0若返回正确的设备名称则说明SNMP配置完全正常。7.2 常见问题排查问题现象排查方向SNMP图标为红色检查群晖端SNMP服务是否开启防火墙是否放行UDP 161端口获取不到数据检查社群字符串是否一致群晖端与Zabbix宏变量部分监控项无数据确认群晖DSM版本是否支持对应OID查看MIB官方文档导入模板失败检查模板文件格式是否为有效的XML或YAML7.3 防火墙配置如果Zabbix Server与群晖NAS之间有防火墙需放行SNMP端口# 群晖端需放行UDP 161端口 # Zabbix Server端需放行UDP 161端口出站结语通过SNMP协议监控群晖NAS我们避开了在封闭的DSM系统中安装Agent的复杂操作仅需在群晖端开启SNMP服务配合Zabbix Server的SNMP监控能力即可实现对群晖NAS系统状态、CPU负载、内存使用、磁盘空间、网络流量等核心指标的全面监控。本文介绍的方法具有以下优势免Agent部署无需在群晖上安装任何额外软件配置简单仅需开启SNMP服务并配置社群字符串标准协议SNMP是业界标准协议兼容性良好模板化监控一次导入模板批量应用到多台NAS建议在生产环境中结合Zabbix的告警机制为磁盘空间不足、CPU负载过高、设备离线等关键指标配置告警规则实现主动运维。资源链接群晖MIB官方文档https://global.download.synology.com/download/Document/Software/DeveloperGuide/Firmware/DSM/All/enu/Synology_DiskStation_MIB_Guide.pdf本文配套群晖NAS监控模板随文章附件提供如果您对SNMP监控或群晖NAS运维有任何疑问欢迎在评论区交流讨论原创文章转载请注明出处。