设备接口DROP包 *************** 获取交换机接口DROP包。 采集侧 ================== 采集原理 ~~~~~~~~~ 采集器通过周期性的查询交换机的端口当前的DROP报文的统计总数。 .. attention:: *华为设备采集返回值是每个端口的8个队列的计数,需要对8个队列的数据做累加作为端口的Drop值。思科设备需要同时采集出入两个方向* 采集任务参数配置要求 ~~~~~~~~~~~~~~~~~~~~ .. list-table:: :widths: auto :stub-columns: 1 :align: left * - **采集方式** - SNMP * - **SNMP OID** - #. H3C: 1.3.6.1.2.1.2.2.1.19[出向] #. Huawei: 1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8[出向] #. Cisco: 1.3.6.1.2.1.2.2.1.13[入向], 1.3.6.1.2.1.2.2.1.19[出向](不区分Nexus和Catalyst系列) #. RuiJie: 1.3.6.1.2.1.2.2.1.19[出向] #. Juniper: 1.3.6.1.2.1.2.2.1.19[出向] * - **返回值** - 累计流量的DROP报文总数, 华为返回是每个接口下8个队列的drop值;注意: **华为返回值类型为Counter64, 其他返回值类型为Counter32** * - **采集超时时间** - 默认10000ms * - **采集周期** - 次/5min * - **配置筛选条件** - #. 业务线 #. 区域(地域) #. 机房 #. POD #. 业务属性(服务角色) #. 设备角色 #. 设备IP、IP地址段 * - **特殊要求** - #. 使用同一机房的采集去采集该机房的设备存活状态,如果该机房没有采集器,使用一组指定的默认采集器去采集 #. 支持手动指定某一些IP地址(ip地址段)使用特定的采集器 任务处理流程 ~~~~~~~~~~~~~~ a. 从筛选条件中筛选出符合要求的设备;设备优先使用带内IP地址作为目标地址去采集,如果没有带内地址,则使用带外去采集。 #. 将筛选出的设备,设置采集周期; #. 对上述设备执行下发任务至指定的采集节点(包括人工指定,和按同一个机房使用本机房的采集器两种方式,后一种为默认行为); #. 对于不能通过自动下发任务至同机房采集器的任务,下发任务至默认的采集器去采集; #. 采集器执行采集任务,当请求报文发出去之后。如果超时时间内(默认 10000ms)没有收到返回,认为设备没有返回。 采集值预处理 ~~~~~~~~~~~~~~~~ 采集会有二类情形,一是采集超时,没有取回结果;二是采集正常。 a. 采集超时,没有取回结果时,则本次采集为空,即这个时刻没有采集数据,不做任何数据的补充,不能标记为0值等; #. 解析返回值,取出返回值中的index和对应的端口DROP报文累计值。具体如下方所示。 #. 将本次采集值减去上一次采集值的绝对值,作为 ``DROP报文增量值`` 。(这里考虑到复杂处理,我们不额外处理计数器溢出导致的情况) :math:`C_{increase} = C_{current} - C_{last}` #. 将 ``DROP报文增量值`` 换算为平均每分钟增量。 :math:`C_{inc/min} = C_{increase}/SampleInterval` #. 通过index逆向从CMDB中解析出端口名字 SNMP请求返回值为oid和DROP包值的对应关系。需要从oid中截取部分为ifindex。最终表示为 ``ifindex = 返回值``。 .. list-table:: :widths: auto :stub-columns: 1 :align: left * - **H3C** - 截取最后一位为ifindex。如:.1.3.6.1.2.1.2.2.1.19. ``14333`` = 0; * - **Huawei** - | 截取倒数第三位为ifindex,并且将相同ifindex的返回值累加赋值给ifindex。如: | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.1 = 17785 | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.2 = 22571 | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.3 = 9682 | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.4 = 0 | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.5 = 0 | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.6 = 0 | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.7 = 2 | .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8. ``112`` .0.8 = 67 * - **Cisco** - 截取最后一位为ifindex。如:.1.3.6.1.2.1.2.2.1.13. ``438386688`` = 2795086。 * - **RuiJie** - 截取最后一位为ifindex。如:.1.3.6.1.2.1.2.2.1.19. ``95`` = 0;。 * - **Juniper** - 截取最后一位为ifindex。如:.1.3.6.1.2.1.2.2.1.19. ``45`` = 0;。 设备DROP包数采集示例 ~~~~~~~~~~~~~~~~~~~~~~~ 如下是一台思科的DROP包数采集示例。“ifInDiscards.”后面的数值为接口的ifindex,“=”右边的即每个端口的Drop包数。 .. code-block:: shell [linux ~]$ snmpwalk -c 360buy -v 2c 172.20.0.11 1.3.6.1.2.1.2.2.1.13 .1.3.6.1.2.1.2.2.1.13.438398976 = 13258473 .1.3.6.1.2.1.2.2.1.13.439353344 = 1298 .1.3.6.1.2.1.2.2.1.13.439357440 = 2842 .1.3.6.1.2.1.2.2.1.13.439361536 = 39761 .1.3.6.1.2.1.2.2.1.13.439365632 = 0 .1.3.6.1.2.1.2.2.1.13.439369728 = 16158 .1.3.6.1.2.1.2.2.1.13.439373824 = 0 .1.3.6.1.2.1.2.2.1.13.439377920 = 0 .1.3.6.1.2.1.2.2.1.13.439382016 = 0 .1.3.6.1.2.1.2.2.1.13.439386112 = 0 .1.3.6.1.2.1.2.2.1.13.439390208 = 0 .1.3.6.1.2.1.2.2.1.13.439394304 = 2899 .1.3.6.1.2.1.2.2.1.13.439398400 = 2580 如下是一台华为的DROP包数采集示例。需要把8个队列的包数加和,“=”右边的即每个队列的丢包数。如下ifindex为112端口的drop包数即8个队列的累加50107。 .. code-block:: shell [linux ~]$ snmpwalk -c 360buy -v 2c 172.20.0.1 1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8 ...ommited... .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.1 = 17785 .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.2 = 22571 .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.3 = 9682 .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.4 = 0 .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.5 = 0 .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.6 = 0 .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.7 = 2 .1.3.6.1.4.1.2011.5.25.32.4.1.4.3.3.1.8.112.0.8 = 67 数据染色 ~~~~~~~~~~~~~~~~ 对每条采集数据,染色如下。 a. 时间戳(采集时间) #. 业务线 #. 区域(地域) #. 机房 #. POD #. 房间 #. 机柜 #. 业务属性(服务角色) #. 设备角色 #. 带内管理IP #. 带外管理IP #. 设备名 #. 厂商 #. 设备品牌 #. 设备型号 #. 设备流程状态 #. 端口index #. 端口名 #. 端口DROP报文当前值 #. 端口DROP报文增量 #. 端口DROP报文每分钟增量 #. 丢包方向 数据分析和报警 ================== 策略配置 ~~~~~~~~~~~~~~~~~ .. warning:: 下述配置的一个前提条件是针对染色数据 ``设备流程状态`` 为 ``在线`` 的执行阈值匹配。如不是,则直接略过。 .. list-table:: :widths: auto :stub-columns: 1 :align: left * - **策略名** - #. 报警策略名字 * - **策略筛选条件** - #. 业务线 #. 区域(地域) #. 机房 #. POD #. 业务属性(服务角色) #. 设备角色 #. 设备IP、IP地址段 #. 端口名 #. 丢包方向 * - **策略生效时间** - 支持到小时级别(0-23) * - **触发阈值** - M分钟内使用率>=N%达到S次(M,N,S为整数)。 * - **恢复阈值** - X分钟内使用率