这次讲2 个小小知识点,一个关于监控交换机端口流量,一个关于store value。
一.监控交换机端口流量
目前互联网上生产环境当中的交换机监控文档。故此做一个完整,中间在穿插讲其中一个重点知识。算是还zabbix 一个清白吧。!!!本次我拿生产环境Cisco 3750 交换机做演示!!!(只有3750,,没有其他产品)
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
相关阅读:
CentOS 6.3下Zabbix安装部署
CentOS 6.3下Zabbix监控apache server-status
配置步骤:
1.配置交换机SNMP
#configure terminal
(config)#snmp-server community test ro 建立一个用户为test,权限为只读
(config)#snmp-server traps enable 允许将所有SNMP Trap 信息发送
(config)#snmp-server host 10.0.0.1 version 2c test 10.0.0.1 接受交换机所发送过来
的SNMPTrap 信息
(config)#snmp-server trap-source loopback0 使用loopback0 接口的IP 地址作为SNMP
Traps发送源地址
2.创建自定义模板
首先是需要获取Cisco 3750 SNMP 对应OID,OID 这个我就放在文档最下面了。
这里我就讲端口进出流量监控,举1 个端口例子,其他照搬即可。
打个比方我现在想监控G1/0/5 端口进出流量,该这么做呢。?
先要获取根据对应OID 直接获取数据,同时去判断获得数据单位。
G1/0/5 端口进流量
snmpwalk -v 2c -c test 10.0.0.254 1.3.6.1.2.1.2.2.1.10.10105
IF-MIB::ifInOctets.10105 = Counter32: 1663553768
G1/0/5 端口出流量
snmpwalk -v 2c -c test 10.0.0.254 1.3.6.1.2.1.2.2.1.16.10105
IF-MIB::ifOutOctets.10105 = Counter32: 2288654478
这里开始讲第一个问题,之前群里有人提出zabbix 监控交换机端口流量不行。不建议使用zabbix 监控交换机流量。而是采用cacti,其实cacti 也有问题,只是你没碰见而已!!!原因在于cacti 监控的数据比zabbix 监控的数据大。两边不一致。回到正题
其实监控交换机端口流量,注意2 个细节就好。
1.抽取出来数据单位,是bit 还是bytes。
这关心到创建items 配置问题。咿,上面的数据没有单位,你让我咋找呢。? 我这里单位默认是bytes。这样就涉及到单位换算问题了。
在cacti 一般采用单位是bit/sec(bps),如果在zabbix 里设置单位也是bps。而不经过计算。那么毫无意外zabbix 数据比cacti 相差8倍+。
为什么这样呢。? 因为单位不对等!!!Bytes 和bit 完全不对等。如果想要对等,在bytes
基础上乘以8,这样就对了。为什么乘以8 呢。?因为bytes = 8bit怎么让zabbix 取出来的数据而乘以8 呢。? 在创建items 里有个选项是Use custom multiplier。你在这里面添上8 即可。等下回贴个items 图。方便大家更明白。
2.store value 问题
上面做好,还需要修改store value,就是Delta(speed per second),这个值对应cacti 里的counter,这样问题就解决了。
具体算法是:(当前取值- 上一次取值)/ (当前时间- 上一次时间)
上面得到的结果然后存储在数据库中,然后WEB 端展现。。
这里顺便讲下我之前遇到的问题。某天老大对我提出一个要求,nginx 请求图做的更好点,而不是显示上次是1W 请求,这次取值是2W 请求。而是显示当前与上次值之差,也就是变化部分。当时,不知道怎么搞呀。愁啊。造成的影响就是zabbix 细节方面没cacti 好啊。其实不然,是俺没学到家!!! 泥煤,自从有了store value,和烦恼说北北啊!!
回到主题,刚那个小故事,就是我们可以利用store value 里的Delta(speed per second),实现两次取值之间变化部分。达到cacti 那种效果。关于store value 大家还是详细看下官方解释:https://www.zabbix.com/documentation/2.0/manual/config/items/item 扯了这么多。来实际的吧。直接创建items
基于上面创建items 设置,基本上流量不会出现问题了。其他端口照葫芦画瓢就好了。
好吧,我还漏了一个问题。细心看文档的,有没有发现SNMP 取出来的值是否有问题呢。?
在回顾下
IF-MIB::ifOutOctets.10105 = Counter32: 2288654478
这里所说的问题呢?不是值不对,而是Counter32 的问题。为什么它是问题呢。?