Zabbix-获取客户端的SNMP数据
Zabbix-获取客户端的SNMP数据
- 一、环境
- 二、配置步骤
- 三、对接遇到的问题
- 1、No Such Instance currently exists at this OlD
- 2、Value of type "'string" is not suitable for value type "Numeric (unsigned)". Value "Normal"
一、环境
服务器:部署在rocky linux9.6的zabbix7.4
客户端:深信服的零信任综合网关
工具:MIB browser
二、配置步骤
1、在zabbix创建零信任信息
2、零信任开启snmp功能
3、下载MIB库,导入MIB browser查看
4、创建监控项
填写信息
5、查看数据
返回值对应MIB库表格的信息,判断正常
说明对接正常,zabbix可以正常通过snmp获取零信任综合网关的信息。
三、对接遇到的问题
1、No Such Instance currently exists at this OlD
情况一:填错了,确实没有这个OID,需要找厂商确认
情况二:直接填了OID表格里的数据,没有区分表格对象和标量对象
在 SNMP 中,OID 末尾的.0通常代表标量实例(scalar instance),这与 MIB 中定义的对象类型密切相关。你遇到的情况(需要在1.3.6.1.4.1.35047.2.15.1后加.0才能获取数据),本质是由该 OID 对应的 MIB 对象类型决定的。
标量对象(Scalar Object)
标量对象是指 “单一值的对象”(如设备的名称、温度、状态等,整个设备只需要一个值来表示)。
在 SNMP 规范中,标量对象的完整 OID 必须以.0结尾,.0是标量对象的唯一实例编号。
例如:
设备主机名(sysName)的 OID 是1.3.6.1.2.1.1.5,但实际查询时必须用1.3.6.1.2.1.1.5.0,因为它是标量(整个设备只有一个主机名)。
你提到的1.3.6.1.4.1.35047.2.15.1,在 MIB 中很可能被定义为标量对象(如某个单一状态、版本号等),因此必须加.0才能定位到具体实例。
表格对象(Table Object)
表格对象是指 “包含多个同类实例的对象”(如设备的多个网口、多个进程等,每个实例需要单独标识)。
表格对象的 OID 不需要加.0,而是用1,2,3…作为实例编号区分不同条目。
例如:
网口状态(ifOperStatus)的 OID 是1.3.6.1.2.1.2.2.1.8,查询时需要用1.3.6.1.2.1.2.2.1.8.1(第 1 个网口)、1.3.6.1.2.1.2.2.1.8.2(第 2 个网口)等。
第一个和第二个描述系统类型和系统时间,所以加个.0就可以了
后面四个是描述磁盘的使用量,里面存在多个磁盘,所以通过0,1,2,3以此类推
2、Value of type “'string” is not suitable for value type “Numeric (unsigned)”. Value “Normal”
你试图将一个字符串类型的值(这里是 “Normal”) 存入或关联到一个定义为 “无符号数值类型(Numeric unsigned)” 的字段 / 监控项中,类型不匹配导致报错。一般是下面这个位置返回值的内容填写错误