摘要

  • RFC 3434 要求高容量数值的绝对量与有效性/符号状态一起读取;零若伴随 valueNotAvailable(1),表示取值失败,不表示被监控量等于零。
  • 一次失败不会删除告警行,而会增加失败计数,并使缺少前一采样点的差值失效;阈值跨越、事件关联、通知送达与处置仍是不同事实。

一个替存的零

RFC 3434 定义 hcAlarmAbsValue 时,专门说明了失败场景:如果本轮无法访问目标 MIB 实例,绝对量字段写入零,同时 hcAlarmValueStatus 写入不可用。零只是满足字段形式的替存值,状态才说明本轮没有取得观测。

这个结构还处理了符号。原始计数器通常非负,但差值可能为负,因此 HcValueStatus 不只区分有效与无效,还区分正值与负值。绝对量与状态在概念上共同组成一个数。数据管道若只保留前者,就会把负变化翻成正值,把缺失翻成零。

纯文本版本、RFC Editor 条目、IETF 文档页、历史记录和引用关系能够证明规范的文本与进程,却不能证明某家设备采用了它,也不能证明现实中曾发生某次误报。

为什么旧表装不下新速度

RFC 2819 的 RMON 告警表已经提供周期采样、上升/下降阈值与事件表关联,但其对象围绕 32 位数值建立。RFC 2863 给出的例子揭示了速度压力:32 位字节计数器在 10 Mbit/s 条件下约 57 分钟回绕一次,在 100 Mbit/s 下约 5.7 分钟,在 1 Gbit/s 下约 34 秒。靠更频繁轮询避免漏掉回绕,越来越不可靠。

RFC 3434 因而另建高容量告警表,用于 Counter64 与 RFC 2856 的 CounterBasedGauge64。它与旧告警机制相互独立,但共用 RMON 事件表。兼容性来自明确连接两个结构,而不是偷偷改变旧字段含义。

阈值也不是单字段。上升与下降阈值各由低 32 位、高 32 位和符号状态构成;绝对量等于低位加上高位乘以二的三十二次方。少一个字段,仍可能得到语法正确的数字,却已不是原阈值。

保留规则,不伪造观测

旧式思路可能在变量暂时不可读时删除告警项。RFC 3434 选择保留行:配置仍然存在,但这一轮的观测明确缺席。只读计数器 hcAlarmValueFailedAttempts 记录该活动行替目标变量轮询却取不到值的次数。

这形成三层证据。行存在,证明规则仍被代理保存;失败计数增加,证明发生过取值失败;不可用状态,证明当前量值不能当作观测。任何一层都不能说明失败原因。访问控制、对象消失、代理内部异常、负载或时间问题都需要额外材料。

差值模式更能说明连续性的价值。绝对模式把当前值直接与阈值比较;差值模式则用当前值减去前一值。若前一轮没取到样本,当前轮即使成功,也没有可用基线。RFC 3434 要求该差值不可用。后来出现的好数据不能倒过来创造已经错过的历史。

因此,一次缺失会影响两个时间位置:本轮不是零读数,下一轮也未必能形成有效变化量。时间关系本身就是数据。

跨过阈值还不是告警结果

上升事件只在“上一轮低于上限、当前轮达到或超过上限”的跨越时产生。产生后,数值必须回落并到达下降阈值,才能重新武装下一次上升事件。下降方向采取镜像规则。这种滞回避免数值在单一边界附近抖动时每轮都产生事件。

首次有效样本若已经越界,启动策略可以允许一次事件。但事件索引为零时,没有关联事件;索引非零而事件表没有相应行时,同样没有关联。即便事件存在,也不能据此推断通知已发送、已收到、已阅读或已修复。

完整链条至少包括:取值、验证、选定绝对或差值计算、带符号阈值比较、确认状态跨越、解析事件表、执行事件动作、传输通知、接收、判断与处置。RFC 3434 规范了链条前半部的重要记录,却没有把后半部结果预先写进“告警”一词。

指针扩大了权限面

hcAlarmVariable 可以指向多种整数型 MIB 对象。RFC 3434 指出一个不直观的权限问题:SNMP 视图能限制对象访问,却没有合适办法限制这个指针的值只能指向某个可读视图里的对象。因此,只有对探针全部对象都有读权限的视图,才应得到该指针的写权限。

RFC 3410 描述管理框架,RFC 3414定义用户安全模型,RFC 3415定义基于视图的访问控制。这些规范被引用,不等于某个部署已经安全配置。RFC 2578、RFC 2579、RFC 2580与RFC 2119限定定义方式和规范词义,也不证明运行结果。

IANA SMI 编号表保存注册上下文,RFC 3434 勘误检索限定抓取时已知的更正。二者都不是当前部署清单。

未知也必须拥有自己的位置

最简数据表只想保存“时间、数值”。RFC 3434 表明,这还不够。状态、符号、采样模式、前序连续性、行身份与失败次数,决定一个数字能否进入判断。删掉这些字段,不是压缩显示,而是改写事实。

Heng Lu 关于现实层与符号权力的讨论解释了为什么图上的零会压过一旁的不可用状态;关于运行代码与边界清晰的主张的论述,则提醒我们:标准只有在实现与导出链路继续保存区别时才发挥作用。

RFC 3434 并没有保证告警会抵达某个人。它做了一件更基础的事:让系统能够诚实地说,规则还在,观测没来,而那个零不是测出来的。

来源