设备Memory使用率 ****************** 获取交换机Memory使用率。 采集原理 ~~~~~~~~~ 采集器通过周期性的查询交换机的部分板卡的内存当前(或者一段时间)使用率。 .. attention:: *华为因为获取到的是内存的剩余大小,不是使用率,需要额外计算。其初始内存大小计划存储在CMDB中* .. attention:: *不同厂商的设备,同一厂商的设备获取到的信息是不大相同的。需要针对各个设备分别对待。* 采集任务参数配置要求 ~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :widths: auto :stub-columns: 1 :align: left * - **采集方式** - SNMP * - **SNMP OID** - #. H3C: 1.3.6.1.4.1.25506.8.35.18.4.3.1.13 #. Huawei: 1.3.6.1.4.1.2011.6.3.5.1.1.3 #. Cisco_Nexus: 1.3.6.1.4.1.9.9.305.1.1.2.0 #. Cisco_Catalyst:**不采集** #. RuiJie: 1.3.6.1.4.1.4881.1.1.10.2.35.1.1.1.3 #. Juniper: 1.3.6.1.4.1.2636.3.1.13.1.11.9.1.0.0 * - **返回值** - #. 设备统计某一个部件的一段时间内的内存使用率,华三、Juniper为当前的使用率,思科为5s内的使用率,锐捷为1min内的使用率。 #. 华为返回值为当前可使用的内存字节数,单位是byte。这个需要额外的计算生成使用率。 * - **采集超时时间** - 默认10000ms * - **采集周期** - 次/5min * - **配置筛选条件** - #. 业务线 #. 区域(地域) #. 机房 #. POD #. 业务属性(服务角色) #. 设备角色 #. 设备IP、IP地址段 * - **特殊要求** - #. 使用同一机房的采集去采集,如果该机房没有采集器,使用一组指定的默认采集器去采集 #. 支持手动指定某一些IP地址(ip地址段)使用特定的采集器 任务处理流程 ~~~~~~~~~~~~~~ a. 从筛选条件中筛选出符合要求的设备;设备优先使用带内IP地址作为目标地址去采集,如果没有带内地址,则使用带外去采集。 #. 将筛选出的设备,设置采集周期; #. 对上述设备执行下发任务至指定的采集节点(包括人工指定,和按同一个机房使用本机房的采集器两种方式,后一种为默认行为); #. 对于不能通过自动下发任务至同机房采集器的任务,下发任务至默认的采集器去采集; #. 采集器执行采集任务,当请求报文发出去之后。如果超时时间内(默认 10000ms)没有收到返回,认为设备没有返回。 设备Memory使用率snmp返回值解析 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SNMP请求返回值为oid和使用率或者大小的对应关系。需要从oid中截取部分为index。这里,index区分为两部分,和设备是对应起来的。一部分为chassis号,一部分为slot号码。 部分厂商设备不做此区分。需要同时存储chassis和slot。 .. tip:: Huawei设备采集返回的是设备每个chassis和slot的内存剩余大小,单位为byte。额外的存储这部分信息,每12小时更新一次这些信息。 .. list-table:: :widths: auto :stub-columns: 1 :align: left * - **H3C** - 截取最后两位为chassis和slot。如:.1.3.6.1.4.1.25506.8.35.18.4.3.1.13. ``0``. ``1`` = 37; 代表chassis 0,slot 1。 * - **Huawei** - 截取倒数第三位、第二位为chassis和slot。如:.1.3.6.1.4.1.2011.6.3.5.1.1.3. ``1``. ``1``.0 = 2850930688; 代表chassis 1,slot 1。 * - **Cisco_Nexus** - 不截取,设置chassis=0,slot=0。如:.1.3.6.1.4.1.9.9.305.1.1.2.0 = 10;代表chassis 0,slot 0。 * - **Cisco_Catalyst** - 无 * - **RuiJie** - 不截取,设置chassis=0,slot=0。如:.1.3.6.1.4.1.4881.1.1.10.2.35.1.1.1.3.1 = 45;代表chassis 0,slot 0。 * - **Juniper** - 不截取,设置chassis=0,slot=0。如:.1.3.6.1.4.1.2636.3.1.13.1.11.9.1.0.0 = 55;代表chassis 0,slot 0。 设备内存使用率采集示例 ~~~~~~~~~~~~~~~~~~~~~~~~ 如下是一台Cisco Nexus系列交换机的主控板内存使用率采集示例。“=”右边的11即为5s内的使用率。 .. code-block:: shell [linux ~]$ snmpget -c 360buy -v 2c -O Qn 172.16.128.1 1.3.6.1.4.1.9.9.305.1.1.2.0 .1.3.6.1.4.1.9.9.305.1.1.2.0 = 11 数据染色 ~~~~~~~~~~~~~~~~ 对每条采集数据,染色如下。 a. 时间戳(采集时间) #. 业务线 #. 区域(地域) #. 机房 #. POD #. 房间 #. 机柜 #. 业务属性(服务角色) #. 设备角色 #. 带内管理IP #. 带外管理IP #. 设备名 #. 厂商 #. 设备品牌 #. 设备型号 #. 设备流程状态 #. chassis号 #. slot号 #. 设备Memory使用率 数据分析和报警 ================== 策略配置 ~~~~~~~~~~~~~~~~~ .. list-table:: :widths: auto :stub-columns: 1 :align: left * - **策略名** - #. 报警策略名字 * - **策略筛选条件** - #. 业务线 #. 区域(地域) #. 机房 #. POD #. 业务属性(服务角色) #. 设备角色 #. 设备IP、IP地址段 * - **策略生效时间** - 支持到小时级别(0-23) * - **触发阈值** - M分钟内使用率>=N%达到S次(M,N,S为整数)。 * - **恢复阈值** - X分钟内使用率