Zabbix配置Discovery rules后Item prototypes未生成,请求助排查
Zabbix硬盘SMART自动发现故障排查
核心错误点
JSON预处理语法错误
你生成的JSON存在语法问题,{"{#DISK}":"sdb"}后面多了一个多余的逗号,且漏处理了/dev/sdc,导致Zabbix无法正确解析:[{"data":[{"{#DISK}":"sda"},{"{#DISK}":"sdb"},]}]正确格式应为:
[{"data":[{"{#DISK}":"sda"},{"{#DISK}":"sdb"},{"{#DISK}":"sdc"}]}]Item原型宏引用错误
自动发现生成的变量宏格式是{#DISK},但你在Item原型的Key里误用了全局/模板宏格式{$DISK},导致Zabbix无法匹配到自动发现的硬盘变量:Key: system.run["smartctl -A /dev/{$DISK}"]正确写法:
Key: system.run["smartctl -A /dev/{#DISK}"]
额外检查项
Zabbix Agent权限配置
确保Agent配置文件zabbix_agentd.conf中开启远程命令执行权限:EnableRemoteCommands=1 UnsafeUserParameters=1修改后需重启Zabbix Agent服务。
smartctl路径与权限
建议使用smartctl的绝对路径(如/usr/sbin/smartctl)避免Agent找不到命令;同时验证zabbix用户有权限执行该命令:sudo -u zabbix /usr/sbin/smartctl --scan-openDiscovery Rule状态
检查自动发现规则是否启用,更新间隔是否合理(如5分钟),在Zabbix前端配置->模板->自动发现规则中查看规则的执行状态与最新返回值。
内容的提问来源于stack exchange,提问作者Tonik
相关产品推荐
相关产品推荐

