zabbix自动发现(Zabbix SNMP LLD实践(自动发现))
- Zabbix SNMP LLD实践(自动发现)
- zabbix自动发现的item怎么删除
- zabbix 自动发现多余的网卡怎么删除
- zabbix 怎么自动处理故障
- 2020-10-28 zabbix 无法自动发现主机
- zabbix 主动注册和主动发现、matomo查看pv
- 用zabbix的自动发现来获取交换机路由器等接口流量信息
- zabbix 压测
在使用Zabbix监控网络设备的时候,经常会遇到这样的工作场景:
需要监控一个某个OID下的所有的对象,如下图监控华三交换机的电源模块的状态。 要监控的OID都有拥有同一个父OID,只是最后一位的数字不同。
这时候我们最好使用LLD功能,让Zabbix自动创建监控的item。
下面我们就说说怎么用LLD来做这个事儿。
目的:通过LLD能够自动创建item,避免繁琐对手动一个一个创建item。同时带来的一个好处是,即使被监控对对象发生变化(比如上图对4个子OID某一天变成了10个),ZBX也能够自动匹配出变化后对数据。
第一步,在Zabbix中创建LLD规则
各个字段解释:
名称:就是这个LLD规则的名字,无需多说
类型:根据SNMP版本进行选择,我用的V2
键值:因为zabbix要求每一个监控项都要有唯一对key,所以我们此处填写一个,有意义即可。注意:这个值和我们最终想要自动创建对对item不是一回事,所以不需要太注意,自己看懂就行。
主机接口:一般是默认的,设备对IP和接口信息。
SNMP community: 团体名
SNMP OID:最重要的其实就是这个字段
Zabbix在系统内部已经内置了一个自动发现函数discovery,这个函数有两个 参数,参数一是{#SNMPVALUE},通过在轮训参数二这个 OID之后获得的数据,参数二是OID(父级 别OID)。
按照图片进行配置之后,实现了一个什么效果呢?
Zabbix会通过调用discovery函数,轮训参数二的OID(理解为用命令snmpwalk 参数二OID就可以),将获取到的结果,赋值给{#SNMPVALUE}。
所以这个步骤配置完成之后,{#SNMPVALUE}的结果就类似于一个数组,里面存有所有子OID和对应数据。
现在我们已经通过步骤一拿到了类似于snmpwalk的结果并赋值给了{#SNMPVALUE}。那怎么把这个结果进行处理,让系统获得子OID命名对item,这就进入到item原型配置界面了。如下:
在咱们创建对LLD规则中新建 “监控项原型”。这是就会有人问,啥叫监控项原型?我语文不好,给解释下呗。好,你可以这样理解,我们不是通过LLD自动创建item吗,那item按照什么格式创建啊?比如,创建出来对item名称是啥, key又是啥 , item分组分到哪里???这些信息就叫做,监控项原型。
各个字段说明:
名称:就是LLD要创建对item的name
类型:根据版本选择,不多说了
键值:就是创建对item对key咋定义的
SNMP OID:这个oid和上个图片中的oid有啥区别?
这样理解,步骤一需要填写的是父OID,因为在上图中我们需要根据规则轮训父oid的所有数据,得到了所有子oid和对应对值。
而在这个界面我们需要定义 “父oid. index” 这样一个东西,{#SNMPINDEX}是zabbix内置变量,就是咱们snmpwalk 父oid之后结果的最后一位。
所以到这里就知道了,“父oid. index” 其实就是咱们定义的子OID的表达式
稍等片刻,最后得到如下的效果:
所以总结一下就是,通过步骤一获得所有父节点下的数据(所以步骤一填写父节点OID),通过步骤二定义item原型,对步骤一拿到对数据进行切分处理。(所以步骤二是子节点对OID),这里稍微注意一下Zabbix对内置函数和变量(disvovery,{#SNMPVALUE},{#SNMPINDEX})就可以轻松理解使用LLD这个功能了。
步骤如下: 1. 复制 zabbix 源程序 misc/init.d/redhat 下的启动脚本到 /etc/init.d 目录下 cp /zabbix/zabbix-1.6.6/misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix_server cp /zabbix/zabbix-1.6.6/misc/init.d/redhat/zabbix_agen...
很简单!
对“自动发现监控项”使用“过滤器”。
在“过滤器”中配置想过滤的“网卡name”的正则表达式。
-
添加所需的正则表达式:管理 --》 一般 --》 正则表达式(下拉选项)
例如:过滤虚拟网卡:veth0caf741d、vethfffd243b、vethaa2089c1等网卡,可如下过滤:
结果为假 ^cali*$
-
另一个重要页面:
主机 --》 hostname --》 自动发现规则 --》 Network interface discovery --》 过滤器
-
正确配置并使用了过滤器,zabbix会将无法发现的网卡过期后并自动清除
1. zabbix环境
Zabbix:zabbix-3.0.1server/agent
2. 配置环境
发现本地网络172.19.200.1-254,Check:ICMP ping,如下:
2
ICMP ping方式下,UP状态的主机添加到“Discovery hosts“组,如下:
END
自动发现失效
1. 现象
在自动发现的discovery与action流程配置正确的前提下,等待10分钟观察,自动发现功能并不生效。
2. 定位故障
#发现有“找不到/usr/sbin/fping文件“的信息记录。
# vim /tmp/zabbix_server.log
1412:20160621:110040.593 /usr/sbin/fping: No such file or directory
3. 故障分析
“ICMP ping“的check方式,使用/usr/sbin/fping命令检测状态,如果系统没有安装或fping命令执行路径有误,则check方式不能发现设备,自动发现功能失效。
安装配置fping
1. 安装fping
#fping相对ping,可以同时ping多个目标并且有多种统计输出格式,#fping目前只能通过编译的方式安装。
# cd /usr/local/src
# wget Monitoring--》 Discovery--》 Discovery rule,选择“Local network“(创建discovery时的name),如下:
1.前提:
? ? ? ? ?1)zabbix server 已经部署好,所需要加入的服务器zabbix-agent已经安装。
? ?2)防火墙都开放端口,主要是10050、10051端口
2.出现的问题:客户端不能够批量添加
3.解决方法:
1)修改配置文件
打开zabbix-agent.conf配置文件,只需要修改2处配置大批量的修改,可以利用自动化部署工具、如saltstack、ansible等
2)配置zabbix界面操作:
A. 配置--自动发现--创建发现规则
B.配置动作:
C. .观察监控中--自动发现,有没有机器加入进来
D.查看主机添加情况
1.zabbix的snmp监控? ( 不重要 )
2.web监控
pv uv ip
请求延时
响应延时
加载时间
网站慢则报警
4.自动化监控:
自动发现,网络发现
主动注册
主动模式与被动模式区别?
主动模式与被动模式效果展示?
4.自动化监控:
笔者之前一直用zabbix监控服务器的各项状态,最近老板交待一项新工作,监控类似交换机、路由器之类的网络设备的接口流量。老板的要求就是职工的需求,立即开始监控准备工作。为了统一管理,决定还是使用zabbix来监控网络设备,但网络设备和服务器的监控方法有所不同。下面请大家跟着笔者一起一步一步来完成我们的小目标吧。
监控的目标是类似交换机这样的设备,所以不能使用zabbix提供的客户端来获取目标设备的数据。另一种解决方案是使用SNMP(简单网络管理协议),它是TCP/IP协议族中的其中一个协议,其主要作用就是监控设备的各项指数并进行反馈。现在的可配置式网络设备基本都支持该协议,同时zabbix自身对SNMP的支持也是相当强悍。
本文以华为交换机为例,其它品牌的交换机或路由器实现思路都是一致的,只是使用的命令有所不同。具体实现方式如下:
交换机的配置就这么几步就可以了,接下来我们配置zabbix。
配置全部在zabbix前端进行,我们对关键配置进行说明
SNMP community:在交换机上配置的团体名
端口:从交换机上获取SNMP信息的端口,默认为161,本例中为10050
其它采用默认设置即可,每30秒获取一次交换机信息
获取了监控目标的端口信息,接下来需要设置具体监控项,本例中需要监控目标端口的入流量和出流量。
点击“监控项原型”。
再点击“创建监控项原型”进入配置界面
键值:ifInOctets,唯一值,这里就是名称变量出处
SNMP OID:获取每一个端口的入流量,SNMPINDEX是每个端口的索引号
储存值:一定要选择差量(简单变化),意思是每次从交换机获取的流量都是真实的流量,这和监控服务器网卡数据不一样。
其它采用默认设置即可。
接下来设置出流量监控原型
到这里,我们对交换机入流量和出流量的监控工作已经完成了。zabbix是一款非常强大的运维工作,它的自定义监控项以及自定义触发报警机制能够帮助运维人员快速而主动的发现问题。作为一个运维人员,我们应该掌握zabbix的使用方法。如果大家在配置过程中有什么疑问,欢迎留言,我们一起探讨交流。
前景:
trapper 模式,zabbix 有个trapper 模式
trapper模式是通过 zabbix_send 往 key 里面供数
大体架构
agent 一台 (只做自动发现 items 用)
server 一台 (用来自动生成item和接受 值以及 发现告警信息)
自动发送key脚本 (部署在 server上,死循环往 key里供数)
压测的值 :value processed by zabbix server per second 这个 item的 值
压测的表达:当压测值达到一定值是,如果来了一条告警,是否立马能 获得 告警
规则就是 只有esb后面的 数字不一样, 1-4000
名称: zidongsend1.sh
内容:
4.数据计算:(假设 这个脚本执行完一次需要两秒)
每2秒insert 增加的值 = (1主item+6子item)*200 = 1400
1) 多开几个脚本一起跑(这里1-200循环,完全可以再开一个201-400循环,但是当脚本开的个数 到一定数量,基本就增长不了了,shell还是有瓶颈的)
2) 优化脚本,使其执行更快(比如用python多行程搞)
3)多开 子 item,这个效率是 最高的 ,翻倍翻得厉害
多开item,记得 value 变量的值要增长
这个值 是 我们的指标,有两种取值方法:
select * from history where itemid = 19261 ;
根据得到的itemid 获取他的 值,可以 把value processed by zabbix server per second这个监控项 刷新时间调到5s (默认1m)
本次测试的内容是 value processed by zabbix server per second 到达一定值的时候 ,这时候 有告警进来是否能立马收到
上面的 主item ,选一个 不在for 循环 里面的
然后 手动往 这个 item里 发值
给他的 子item创 tragger
实时刷新 problem ,看能否里获取告警或者恢复告警