zoukankan      html  css  js  c++  java
  • Zabbix触发器函数(取前后差值)

    获取最新值last

    zabbix触发器方法last用于获取item最新值或者第几个值以及某个时间的哪一个值。

    Last (most recent) T value is > N
    Last (most recent) T value is < N
    Last (most recent) T value is = N
    Last (most recent) T value is NOT N
    

    触发器方法last - 语法

    last (sec|#num,<time_shift>)
    sec:暂时没用
    #num:倒数第几个,例如#1,#2,默认为#1,即last()与last(#1)是一样的,zabbix 1.6.2开始支持
    <time_shift>:时间偏移,1d表示昨天的这个时候,1h表示一小时前的这个时候,zabbix 1.8.2开始支持。几乎每次有这个我都解释一遍,怕有些同学没看到那几篇文章。
    

    触发器方法last - 实例

    CPU前一个上一个负载大于0.7

    {web:system.cpu.load[percpu,avg1].last(#2)}>0.7
    

    昨日此时CPU负载大于0.7

    {web:system.cpu.load[percpu,avg1].last(,1d)}>0.7
    

    zabbix触发器方法last - 支持类型

    它支持类型包括:float, int, str, text, log

    值匹配字符串str

    zabbix触发器方法str用于获取item值是否包含你需要匹配的字符串

    如下是web界面提供的功能:

    Find string V in last (most recent) value. N = 1 - if found, 0 - otherwise
    Find string V in last (most recent) value. N NOT 1 - if found, 0 - otherwise
    

    触发器方法str - 语法

    str (pattern,<sec|#num>)
    pattern:要匹配的字符串
    <sec|#num>:时间段,或者最近几个值
    

    触发器方法str - 实例

    当前agent版本是3.0.0.alpha2

    {dd-pre-01:agent.version.str('3.0.0alpha2')}=1
    

    zabbix触发器方法str - 支持类型

    它支持类型包括:str, text, log
    

    获取字符串长度strlen

    zabbix触发器方法strlen用于获取item返回值长度

    如下是web界面提供的功能:

    Length of last (most recent) T value in characters is > N
    Length of last (most recent) T value in characters is < N
    Length of last (most recent) T value in characters is = N
    Length of last (most recent) T value in characters is NOT N
    

    触发器方法strlen - 语法

    strlen (sec|#num,<time_shift>)
    sec|#num:#num可以用,最近哪个值,#1表示最后一个值,#10表示倒数第10个值
    time_shift:时间偏移,比如1d,那么就是一天前的这个时候。
    

    触发器方法strlen - 实例

    获取agent版本长度为4

    {web:agent.version.strlen()}=4
    

    获取agent版本倒数第二个值长度为4

    {web:agent.version.strlen(#2)}=4
    

    获取agent版本做这个这个时候值长度为4

    {web:agent.version.strlen(,1d)}=4
    

    等同于

    {web:agent.version.strlen(#1,1d)}=4
    

    触发器方法strlen - 支持类型

    它支持类型包括:str, text, log

    值比较diff

    zabbix触发器方法diff用于获取item值是否发生变化

    Difference between last and preceding values, then N = 1, 0 - otherwise
    Difference between last and preceding values, then N NOT 1, 0 - otherwise
    

    触发器方法diff - 语法

    diff()
    返回值
    1 - 值发生变化
    0 - 无变化 。
    

    触发器方法diff - 实例

    agent版本号发发生触发告警

    {web:agent.version.diff()}=1
    

    zabbix触发器方法diff - 支持类型

    它支持类型包括:float,int,str, text, log

    获最小值min

    zabbix触发器函数min - 作用

    获取一个时间周期内最小值

    获取几个返回值中的最小值

    以上方法,时间往前推移1分钟,1小时,1天等等

    Minimum value for period T is > N
    Minimum valuefor period T is < N
    Minimum value for period T is = N
    Minimum value for period T is NOT N
    

    触发器函数min - 例子

    语法:min(sec|#num,<time_shift>) 一个小时内cpu负载最小值小于0.2

    {dd-pre-01:system.cpu.load[percpu,avg1].min(1h)}<0.2
    

    cpu负载最近10个返回值,最小值小于0.2

    {dd-pre-01:system.cpu.load[percpu,avg1].min(#10)}<0.2
    

    zabbix触发器函数min/max - 实例

    触发器名称:Free disk space is too low

    Problem: 最近5分钟剩余磁盘空间小于10GB。(异常)

    Recovery: 最近10分钟磁盘空间大于40GB。(恢复)

    讲解:简单说便是一旦剩余空间小于10G就触发异常,然后接下来剩余空间必须大于40G才能解除这个异常,就算剩余空间达到了39G(不在报警条件里)那也是没用的.

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

    获取最大值max

    获取一个时间周期内最大值

    获取几个返回值中的最大值

    以上方法,时间往前推移1分钟,1小时,1天等等

    Maximum value for period T is > N
    Maximum value for period T is < N
    Maximum value for period T is = N
    Maximum value for period T is NOT N
    

    触发器函数max - 例子

    语法:max (sec|#num,<time_shift>) 一个小时内cpu负载最大值超过10

    {dd-pre-01:system.cpu.load[percpu,avg1].max(1h)}>10
    

    cpu负载最近10个返回值,最大值超过10

    {dd-pre-01:system.cpu.load[percpu,avg1].max(#10)}>10
    

    取平均值avg

    取前后两个值对比,avg有如下取值方式:

    最后N个值

    最近XX时间,例如最近1h

    以上1和2还要结合time_thift时间偏移参数,例如1h

    Average value of a period is < N
    Average value of a period is > N
    Average value of a period is = N
    Average value of a period is NOT N
    

    触发器方法avg - 实例

    CPU负载最近一小时平均值等于1

    {dd-pre-01:system.cpu.load[percpu,avg1].avg(1h)}=1
    

    CPU负载昨天当前时间的上一小时平均值等于1,1d表示时间往前推移1天,你可以写1h,1m,10d,现在明白了time_thrift的用法了吧?

    {dd-pre-01:system.cpu.load[percpu,avg1].avg(1h,1d)}=1
    

    CPU负载最近10次的平均值等于1

    {dd-pre-01:system.cpu.load[percpu,avg1].avg(#10)}=1
    

    昨天同一时间CPU负载最近10次的平均值等于1

    {dd-pre-01:system.cpu.load[percpu,avg1].avg(#10,1d)}=1
    

    zabbix触发器方法avg - 支持类型

    它支持类型包括:float, int

    前后差值abschange

    zabbix取前后差值(绝对值)- abschange

    Absolute difference between last and previous value is = N
    Absolute difference between last and previous value is > N
    Absolute difference between last and previous value is < N
    Absolute difference between last and previous value is NOT N
    

    如果(每核)CPU 1分钟负载浮动1(突然增加1,1分钟后又降低1)

    {web:system.cpu.load[percpu,avg1].abschange()}=1
    

    如果(每核)CPU 1分钟负载浮动大于1

    {web:system.cpu.load[percpu,avg1].abschange()}>1
    

    如果(每核)CPU 1分钟负载浮动小于1

    {web:system.cpu.load[percpu,avg1].abschange()}<1
    

    如果(每核)CPU 1分钟负载浮动不等于1

    {web:system.cpu.load[percpu,avg1].abschange()}<>1
    

    abschange支持类型

    它支持类型包括:float, int, str, text, log,它不仅仅支持数值,还支持字符串。如果取值为字符串,那么字符串相同值为0,不同则为1

    如下为主机名发生变更的触发器表达式

    {web:system.hostname.abschange()}=1

  • 相关阅读:
    2018年12月29日 Oracle查询性能优化
    B
    A
    洛谷 P2447 [SDOI2010]外星千足虫
    洛谷 P5358 [SDOI2019]快速查询
    欠的题目
    ZJU-ICPC Summer 2020 Contest 8 B-Picnic
    洛谷 P3164 [CQOI2014]和谐矩阵
    K
    J
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/9166792.html
Copyright © 2011-2022 走看看