Zabbix触发器表明式详解,urllib下采纳Xpath表明式示例

By admin in 编程 on 2019年5月6日

urllib下行使Xpath表明式示例

应用xpath表达式必要先将急需十一分的数据调换来tree格式,那就供给先装lxml模块。安装格局能够运用pip安装。

示范代码:

import urllib.request

from lxml import etree 

date=urllib.request.urlopen("http://www.sohu.com/").read().decode("utf-8","ignore")

treedate=etree.HTML(date) #将urllib获取的数据转换成etree结构

title=treedate.xpath("//title/text()")#使用xpath表达式获取想要的数据

if (str(type(title)))=="<class 'list'>": #了避免有些数据是迭代器之类的格式,所以判断获取的数据类型并转换为列表类型

    pass

else:

    title=[i for i in title]    #将数据通过遍历转换成列表类型

增加补充知识点:

>>> [i for i in range(1,10)]

[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

urllib下利用Xpath表明式示例,urllibxpath

概述:触发器中的表明式使用很灵活,我们得以创建一个繁杂的逻辑测试监察和控制,触发器表明式情势如下:

urllib下利用Xpath表明式示例

选择xpath表达式须要先将急需相当的数额转变到tree格式,那就须要先装lxml模块。安装情势能够行使pip安装。

示范代码:

import urllib.request

from lxml import etree 

date=urllib.request.urlopen("http://www.sohu.com/").read().decode("utf-8","ignore")

treedate=etree.HTML(date) #将urllib获取的数据转换成etree结构

title=treedate.xpath("//title/text()")#使用xpath表达式获取想要的数据

if (str(type(title)))=="<class 'list'>": #了避免有些数据是迭代器之类的格式,所以判断获取的数据类型并转换为列表类型

    pass

else:

    title=[i for i in title]    #将数据通过遍历转换成列表类型

补充知识点:

>>> [i for i in range(1,10)]

[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

urllib下使用Xpath表明式示例
使用xpath表达式必要先将急需卓绝的多寡转换到tree格式,那就供给先装l…

{<server>:<key>.<function>(<parameter>)}<operator><constant>

{主机:key.函数(参数)}<表明式>常数,具体的例子,请接着往下走,很简短

Functions函数:触发器functions能够引用检索到的值,当后日子也许其余因素。触发器表明式帮助的function完整列表请点击官方网址地址
supported functions

Function参数—-大部分值functions能够选取秒来作为参数。你能够运用前缀“#”来表示它有两样的意思

FUNCTION CALL 描述
sum(600) 600秒内的总和
sum(#5) 最新5个值的和

last函数使用分裂的参数将会得到区别的值,#2意味着尾数第三新的数目。例入从老到最新值为1,二,三,4,5,陆,七,八,九,10,last(#二)获得的值为九,last(#九)获得的值为贰。last函数必须包罗参数。
AVG,count,last,min和max函数还帮助额外的参数,以秒为单位的参数time_shift(时间偏移量)。比如avg(一h,1d),那么将会赢获得前几天的一钟头内的平平均数量据。

[warning]备注:触发器表达式须要使用history历史数据来计量,假若history不可用(time_shift时间偏移量参数无法使用),因而history记录一定要保留永久一点,至少要保存供给用的记录。[/warning]
触发器表明式能够应用单位标记来替代大数字,比方伍m代表300,或许壹d取代他86400,壹k代替拾二四字节等等。

操作符

优先级 操作 定义
1 /
2 *
3
4 +
5 < 小于. 用法如下:
A<B ⇔ (A<=B-0.000001)
6 > 大于. 用法如下:
A>B ⇔ (A>=B+0.000001)
7 # 不等于.用法如下:
A#B ⇔ (A<=B-0.000001) | (A>=B+0.000001)
8 = 等于. T用法如下:
A=B ⇔ (A>B-0.000001) & (A<B+0.000001)
9 & 逻辑与
10 | 逻辑或

触发器示例

示范—触发器名称:Processor load is too high on www.zabbix.com

{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5

触发器表达:

www.zabbix.com:host名称

system.cpu.load[all,avg1]:item值,1分内cpu平均负载值

last(0):最新值

>五:最新值超越5

如上所示,www.zabbix.com那些主机的督察项,最新的CPU负载值固然过量5,那么表明式会回去true,那样一来触发器状态就改换为“problem”了。

演示2—触发器名称:www.zabbix.com is overloaded

{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5|{www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2

现阶段cpu负载大于五或许近日11分内的cpu负载大于贰,那么表达式将会回去true.

示范叁—触发器名称:/etc/passwd has been changed,使用函数 diff():

{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff(0)}>0

/etc
/passwd最新的checksum与上一次得到到的checksum区别,说明式将会回到true.
我们得以选取同样的格局监察和控制系统首要的安顿文件,举例/etc/passwd,/etc/inetd.conf等等。那些zabbix一般都会自带,没带
的你和睦丰盛吧。

事必躬亲四—-触发器名称:Someone is downloading a large file from the Internet,使用函数 min:

{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K

眼下主机网卡eth0最终六分钟内抽取到的流量超越十0KB那么触发器表达式将会回去true

演示5—触发器名称:Both nodes of clustered SMTP server are down

{smtp1.zabbix.com:net.tcp.service[smtp].last(0)}=0&{smtp2.zabbix.com:net.tcp.service[smtp].last(0)}=0

当smtp一.zabbix.com和smtp2.zabbix.com两台主机上的SMTP服务器都离线,表明式将会再次来到true.

演示陆—触发器名称:Zabbix agent needs to be upgraded,使用函数str():

{zabbix.zabbix.com:agent.version.str("beta8")}=1

比如当前zabbix
agent版本蕴含beta8(若是当前版本为壹.0beta8),那一个表达式会再次回到true.

身体力行柒—触发器名称:Server is unreachable

{zabbix.zabbix.com:icmpping.count(30m,0)}>5

如上表明式表示最近27分钟zabbix.zabbix.com那个主机超过肆次不行到达。

亲自过问八—触发器名称:No heartbeats within last 叁 minutes,使用函数 nodata():

{zabbix.zabbix.com:tick.nodata(3m)}=1

tick 为Zabbix trapper类型,首先大家要定义多个种类为Zabbix
trapper,key为tick的item。大家选取zabbix_sender定期发送数据给tick,纵然在叁秒钟内还未抽取zabbix_sender发送来的数码,那么表达式重回3个true,与此同时触发器的值变为“PROBLEM”。

亲自去做9—触发器名称:CPU activity at night time,使用函数 time():

{zabbix:system.cpu.load[all,avg1].min(5m)}>2&{zabbix:system.cpu.load[all,avg1].time(0)}>000000&{zabbix:system.cpu.load[all,avg1].time(0)}<060000

唯有在凌晨0点到陆点整,近日四分钟内cpu负载大于贰,表达式重临true,触发器的事态改换为“problem”

示范10—触发器名称:Check if client local time is in sync with Zabbix server time,使用函数 fuzzytime():

{MySQL_DB:system.localtime.fuzzytime(10)}=0

主机MySQL_DB当前服务器时间即使与zabbix
server之间的日子相差十秒以上,表明式再次来到true,触发器状态改造为“problem”

演示10一—触发器名称:Comparing average load today with average load of the same time yesterday (使用 time_shift 时间偏移量参数).

{server:system.cpu.load.avg(1h)}/{server:system.cpu.load.avg(1h,1d)}>2

This expression will fire if the average load of the last hour tops the
average load of the same hour yesterday more than two times.

Hysteresis(迟滞,滞后)

编程,轻易易行的说触发器状态转换为problem必要2个尺度,从problem转变回来还索要2个尺码才行。一般触发器只须求不满意触发器为problem条件就能够复苏。精通了么?不精晓就看例子吗。
有时触发器须求采取区别的尺度来代表不一致的情事,举个官方网址很风趣的例子:机房温度寻常稳固为一伍-20°,当温度超越20°,触发器值为problem,直到温度低于一伍°才会接触警报,相当会去掉。别整那么些没用的,大家看实例.

为了到达这些效果,大家须要采纳如下触发器表明式:

示例1—触发器名称:Temperature in server room is too high

({TRIGGER.VALUE}=0&{server:temp.last(0)}>20)|
({TRIGGER.VALUE}=1&{server:temp.last(0)}<15)

如上有四个小括号,前面贰个表示触发格外的尺码,前边贰个表明式表示免除分外的规范化。

瞩目:宏变量 {T君越IGGE本田CR-V.VALUE}将会回来当前触发器的值

演示2—触发器名称:Free disk space is too low

Problem: 近日五分钟剩余磁盘空间小于10GB。(相当)

Recovery: 如今10分钟磁盘空间大于40GB。(恢复生机)

简单的说说便是一旦剩余空间小于10G就接触格外,然后接下去剩余空间必须超越40G才能清除那个尤其,即便你剩余空间到达了3玖G(不在报告警察方条件里)那也是没用的,有趣不!

({TRIGGER.VALUE}=0&{server:vfs.fs.size[/,free].max(5m)}<10G) |
({TRIGGER.VALUE}=1&{server:vfs.fs.size[/,free].min(10m)}<40G)

结尾

那篇文章很有需要细细读,很要紧。

有的Zabbix相关学科集结

Ubuntu
1四.0四下Zabbix二.四.伍 源码编写翻译安装 
http://www.linuxidc.com/Linux/2015-05/117657.htm

CentOS 7LNMP情形搭建Zabbix三.0 
http://www.linuxidc.com/Linux/2017-02/140134.htm

Ubuntu 1陆.0四安装配备监督种类Zabbix2.4 
http://www.linuxidc.com/Linux/2017-03/141436.htm

Zabbix监察和控制装置配置及警报配置 
http://www.linuxidc.com/Linux/2017-03/141611.htm

Ubuntu 16.04下安装配置Zabbix三.0 
http://www.linuxidc.com/Linux/2017-02/140395.htm

CentOS 6.3下Zabbix监控apache server-status
http://www.linuxidc.com/Linux/2013-05/84740.htm

CentOS 七 下 Zabbix 3.0设置详解
http://www.linuxidc.com/Linux/2017-03/141716.htm

64位CentOS 6.2下安装Zabbix 2.0.6 
 http://www.linuxidc.com/Linux/2014-11/109541.htm

ZABBIX
的详细介绍
:请点这里
ZABBIX
的下载地址
:请点这里

正文永恒更新链接地址:http://www.linuxidc.com/Linux/2017-03/141921.htm

编程 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 澳门新葡亰官网app 版权所有