zabbix批量添加SNMP监听H3C端口检测以及流量图
由于之前网络设备不是很多,监控网络设备接口就直接使用模版中的item来实现了,可是现在公司上线了一大批网络设备,如果要每个网络设备都做模板,添加item。。。。。。那就该废了,于是迫于压力今天来测试使用zabbix的自动发现功能实现自动发现网络设备接口,并且自动获取接口的流量值,生成流量图等功能。
这样的话就能节省大量时间,时间就是生命啊,把时间浪费在枯燥的添加网络接口的工作上就是在浪费生命!好了,废话不多说,进入正题:
首先,在交换机上面配置好snmp协议,为了简单,这里目前使用的是snmp v2协议。这里就不赘述snmp v2协议在交换机上怎么配置了,之前的博客中都介绍了怎么配置好SNMP V3协议的交换机配置,snmp v2协议配置更加简单。
配置好后交换机的snmp v2协议后需要在zabbix服务器上面使用snmpwalk命令测试看是否能获取到数据。命令如下:snmpwalk -v 2c -c xxx 10.1.1.1 ifDescr其中的xxx就是在交换机中设置的snmp的团体名。
(这里我使用的是getif软件,可以直接获取交换机的mib文件,如下图:
)
测试能获取到数据后接下来就要在zabbix服务端的web页面上创建模板了。首先进入组态---》模板中创建模板,如下图:
之后填写模版名称,如下图: 
创建好模版后开始创建应用集:给应用集取个名字叫interface discovery
然后就要开始创建发现规则了,点击探索规则,创建发现规则,如下图:
下面就要配置发现规则了:
注意,如果是zabbix3.0以上的版本,SNMP OID这里要写 discovery[{#SNMPVALUE},.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr]

上图中的被涂掉的地方就是配置snmp v2团体名,键值使用ifDescr,这个snmp OID能够获取到交换机的所有接口名称。获取到名称后,自动发现规则就能够产生两个JSON格式的数据,一个是{#SNMPVALUE}:对应的里面的数据是接口名称;还有一个是{#SNMPINDEX}:对应的里面的数据是接口的id。还漏了一个知识点,其中的数据更新间隔中我设置了30秒,默认是3600秒,这个值得大小将直接影响自动发现规则发现设备的时间。
知道这些后就要开始配置项目原型了,废话不多说,直接看图:
这里填写有点问题,我们的H3C交换机的接口的in方向OID为.1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX},跟下面的截图形式有点不一样。
交换机的接口的out方向OID为.1.3.6.1.2.1.2.2.1.16.{#SNMPINDEX},跟下面的截图形式有点不一样。 大家注意下。
上面红箭头表示的都是要注意的地方,其中$1表示的就是{#SNMPVALUE}的值,下面的自定倍数和单位就不用解释了,换算成bps的速率。这样接口的in方向流量自动发现规则就配置完成了,按相同方式配置接口的out方向的流量自动发现规则就好了。
如果这里还是报错 ,大家可以到这里查看报错信息是啥?
下面开始定义自动发现的生成图形,先上图: 
点击图形原型,添加原型,将刚刚创建的两个项目原型添加进去就可以了,这样,一个简单的自动发现规则就这样配置完了。下面将交换机添加进来,操作步骤如下图:
,使用这个模板就能够自动发现交换机的所有接口,并自动获取交换机的所有接口流量,生成图形!
生成图形的效果如下图所示:

上面的所有接口都是自动发现出来的!
至此,我们的zabbix配置模板自动发现功能自动识别网络设备的所有接口,并且获取所有接口的流量值,生成图形的过程就就完成了!写在这里供大家参考!
zabbix批量添加SNMP监听H3C端口检测以及流量图的更多相关文章
- 普通用户从非80端口启动tomcat,通过端口转发监听80端口
linux下小于1024的端口都需要root去绑定. root权限启动tomcat是不明智的,可以使用非root权限启动tomcat监听8080端口,然后利用端口转发实现对80端口的监听. 端口转发: ...
- Oracle 11g RAC 环境下单实例非缺省监听及端口配置
如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...
- 剥开比原看代码03:比原是如何监听p2p端口的
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchai ...
- 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...
- Linux centosVMware 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
一.配置Tomcat监听80端口 关闭tomcat报错 [root@davery src]# /usr/local/tomcat/bin/shutdown.sh 重装tomcat即可 vim /usr ...
- linux: 获取监听指定端口的进程PID
在 linux 下经常需要杀死(重启)监听某端口的进程, 因此就写了一个小脚本, 通过 ss 命令获取监听制定端口的进程 PID, 然后通过 kill 命令结束掉进程: #!/bin/sh # set ...
- 【网络通信】服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么?
1. 服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么? 答:对.建立连接时服务器会分配一个新的Socket,但是用的源端口号还是80端口.套接字是由协议类型.源IP.目的IP ...
- python socketserver监听多端口多进程
多进程监听多端口 # 多线程socket # 程序监听两个端口,端口逻辑相同其中一个端口放在子进程下 # 每次请求会在产生一个进程处理请求 import SocketServer from multi ...
- 如何查找php-fpm监听的端口
1. 找到php的安装位置.如: /usr/local/php-7.3.3 2. 进入安装目录下的etc/php-fpm.d目录,然后你会看到: 3. 打开www.conf,搜索listen关键字,你 ...
随机推荐
- JDBC事务控制管理(转载)
JDBC事务控制管理 转载于 2018年01月26日 15:46:11 1.事务 (1)事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐, ...
- NodeJS 难点(网络,文件)的 核心 stream 二:stream是什么
对于大部分有后端经验的的同学来说 Stream 对象是个再合理而常见的对象,但对于前端同学 Stream 并不是那么理所当然,github 上甚至有一篇 9000 多 Star 的文章介绍到底什么是 ...
- JSP--TOMCAT-MYSQL web页面删除
deleteStudentjsp.jsp页面代码 <%@ page language="java" contentType="text/html; charset= ...
- iOS 工程自动化 - OCLint
前言 最近一直在做 iOS 工程自动化方向的事情,所以把自己研究和实践的内容进行记录并分享,希望能给大家一些帮助. 为什么要使用 OCLint 做为一个静态代码分析工具,我们引入 OCLint 的目的 ...
- ZOJ 2965 Accurately Say "CocaCola"!
Time Limit: 2 Seconds Memory Limit: 65536 KB In a party held by CocaCola company, several stude ...
- 新手小白Linux(Centos6.5)部署java web项目(mysql5.7安装及相关操作)
一.安装 参考:https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html # 检测系统中是否安装了mysql y ...
- sed工具命令
sed是非交互式的编辑器.它不会修改文件,除非使用shell来重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件,并将结果发送到屏幕.具体过程如下:首先sed把当前 ...
- 如何学php少走弯路
我是自学php,而且是非计算机专业,算半路出家的.(工作了一段时间又自学编程) 1.一本好书至关重要.如果这本书的知识非常深入,那么还是不要看了.对初学者来说只能是打击.因为很多东西都看不懂.一本知识 ...
- Spring整合struts的配置文件存放问题
只使用Spring的时候,我把applicationContext.xml是放在项目的src路径下的,这样使用ClassPathXmlApplicationContext很方便嘛 整合了struts之 ...
- JS Array.filter()方法
1.filter()接收的函数可以有多个参数.通常我们只使用第一个参数,第二参数和第三个参数表示元素的位置和数组本身: //去重 var arr = ["1", "2&q ...