Zabbix 6.0 LTS Agent报错:读取/sys/class/net/eth0/speed时参数无效
解决Zabbix Agent读取/sys/class/net/eth0/speed时的「invalid argument」错误
问题根源
/sys/class/net/eth0/speed 不是普通磁盘文件,属于sysfs虚拟文件系统,内容由网卡驱动实时生成。出现「invalid argument」错误通常是以下原因:
- 网卡未处于UP状态或无链路载波(carrier)
- 网卡与交换机未协商出有效速率
- 网卡驱动不支持读取该属性(部分虚拟网卡或老旧驱动存在此问题)
排查与解决步骤
1. 验证网卡状态
执行命令检查网卡是否正常启用并连接链路:
ip link show eth0
输出中需确认:
- 状态为
UP(而非DOWN) - 存在
LOWER_UP标识(表示链路已连通)
如果网卡未UP,执行以下命令启用:
ip link set eth0 up
2. 检查速率协商结果
用ethtool查看网卡实际协商的速率:
ethtool eth0
找到Speed字段:
- 若显示
Unknown!或0Mb/s,说明未协商出有效速率,需检查网线、交换机端口配置或更换网卡驱动 - 若显示正常速率(如
1000Mb/s),但仍无法读取/sys文件,说明驱动对sysfs接口支持存在问题
3. Zabbix监控替代方案
如果无法通过sysfs读取速率,改用ethtool输出作为监控数据源:
- 编辑Zabbix Agent配置文件
zabbix_agentd.conf,添加自定义监控参数:UserParameter=net.interface.speed[*],/sbin/ethtool $1 | grep -i speed | awk '{print $2}' - 重启Zabbix Agent服务:
systemctl restart zabbix-agent - 在Zabbix Server中创建新监控项,键值设为
net.interface.speed[eth0],即可获取网卡速率。
4. 硬件与驱动排查
- 更换网线或连接到其他交换机端口,排除链路故障
- 更新网卡驱动至官方最新版本
- 若为虚拟网卡(如KVM、Docker环境),检查虚拟化平台是否支持网卡速率属性暴露
内容的提问来源于stack exchange,提问作者Rovsen Ibrahimov
相关产品推荐
相关产品推荐

