Snmpd更新界面计数器缓慢或类似的东西

我更新一个我的freebsd框到9稳定(全新安装)并安装net-snmp进行监控。

uname -r 9.1-PRERELEASE pkg_info net-snmp-5.7.1_7 Information for net-snmp-5.7.1_7: Comment: An extendable SNMP implementation .... cat /var/db/ports/net-snmp/options # This file is auto-generated by 'make config'. # Options for net-snmp-5.7.1_7 _OPTIONS_READ=net-snmp-5.7.1_7 _FILE_COMPLETE_OPTIONS_LIST= IPV6 MFD_REWRITES PERL PERL_EMBEDDED PYTHON DUMMY TKMIB DMALLOC MYSQL AX_SOCKONLY UNPRIVILEGED OPTIONS_FILE_UNSET+=IPV6 OPTIONS_FILE_UNSET+=MFD_REWRITES OPTIONS_FILE_SET+=PERL OPTIONS_FILE_SET+=PERL_EMBEDDED OPTIONS_FILE_UNSET+=PYTHON OPTIONS_FILE_SET+=DUMMY OPTIONS_FILE_UNSET+=TKMIB OPTIONS_FILE_SET+=DMALLOC OPTIONS_FILE_UNSET+=MYSQL OPTIONS_FILE_UNSET+=AX_SOCKONLY OPTIONS_FILE_UNSET+=UNPRIVILEGED 

我在这台机器上有大约500个vlan,并且通过snmpd收集有关界面的信息到2个不同的软件zabbix和cacti。

并且他们都绘制了空白字段的图表。

ZABBIX仙人掌

我尝试改变zabbix的投票时间,从15秒到30,60,90,120,10。 无论如何,我有空白的领域。

snmpd.conf是空的 – 只有一个访问控制。

这个configuration在freebsd 8上工作得很好。

我的错在哪里? 如何修复这个图表?

UPD:更改池时间,closures代理之一,没有帮助。 我看zabbix日志(从snmpd收到的数据),看到:对于俄罗斯语言环境抱歉,只看数字: zabbix数据

这是不正确的,因为我的“iftop”显示速度大约是90Mbits,但snmpd返回2Mbits。

我明白,snmpd不返回速度,它只是返回一个计数器。 但如何可能呢? 为什么是2Mbit / s?

我尝试用64位计数器重新编译snmpd,没有它。 在这两个变种这个空白字段存在。

所以我认为它的操作系统(freebsd)不会更新界面计数器。

我仍然收集tcpdumpfind这个请求/响应。 但有问题,到很多垃圾。

UPD2:我解密tcpdump-ed文件,并将其作为Google文档在gdocfile中公开

Timediff看起来很奇怪。就像zabbix有时候“忘记”做请求,然后在行上做两次,呃

UPD3:我从命令parsing日志“,而正确;执行netstat -bin -I vlan4008 >> / var / log / netstat;睡眠300;完成”并加载为谷歌文档,并添加速度公式: 链接

看起来像操作系统中的所有计数器都不错。 现在我认为问题在:1. zabbix请求两次行(和什么关于仙人掌)2. snmpd使用计数器32

这通常与没有及时收到SNMP响应有关。
由于SNMP使用的UDP可能意味着networking拥塞或主机拥塞,导致请求/应答丢失,但更常见的是,涉及的两台机器中的一台机器根本无法及时处理请求,另一台机器得到厌倦了等待。

一台机器或另一台机器落后的可能性随着工作量的增加而增加 – 如果有很多SNMP代理查询特定的主机,它可能无法像某些代理所期望的那样及时地提供回应(并且这些代理将显示空白或者报告其他错误)。
相反,如果你有一个代理查询一堆主机 – 超过它可以处理你的轮询间隔 – 在轮询间隔期间没有得到查询的机器将有一个在他们的graphics中的差距。 (这个问题在Cacti的PHP poller中特别常见,导致了cactid (现在是spine )的开发,如果您还没有使用,我强烈build议您使用它)。


我的一般build议,解决这个问题:

  1. 如果可能,每5分钟轮询一次。
    大多数环境不需要1/5/15/30/60/90/120秒的轮询时间间隔。
    如果五分钟的粒度对你来说足够好的话,坚持下去。 对于您的服务器来说工作量较less,对SNMP监视代理的工作量较less,要存储的数据较less(或者“全粒度”更长时间)

  2. 增加代理上的SNMP超时。
    给服务器更多的时间来解决您的请求。 SNMP守护进程是进程的懒惰less年 – 你要求他们星期一打扫房间(或者给你一棵树的数据),星期三或者星期四他们可能会拿起几个袜子。

  3. 限制每次调查时从服务器请求多less。
    如果你只需要一个计数器,不要求整个接口MIB – 它(通常)需要花费更长的时间走树并生成完整的输出,而不是只给你一个OID。

  4. 限制有多less代理正在请求数据。
    如果您可以将您的监控整合到一个盒子(Zabbix或Cacti),那么您的服务器需求就会减less,并且不太可能不及时响应。

如果在尝试完上述步骤后仍然遇到问题,那么最终的debugging步骤是: search您的日志嗅探SNMP通信 。 确保请求和响应及时地来回,不会因为某种原因被错误地丢失/拒绝。 通常在电线上查看数据会给你一个很好的指示,说明什么是错的,以及如何解决这个问题。

你使用哪个版本的SNMP协议? SNMP v1不支持64位计数器。 这是Cacti的老问题,只需在相关的“设备”上切换到“版本2”