F3097F699F0D.jpg
常用触发器函数,截止到3.2版本
<>为可选参数

abschange
    前后两值只差的绝对值,支持类型float, int, str, text, log,字符串相等返回0,不等返回1
    如:
        (previous value;last value=abschange)
        3;1=2
        0;-2.5=2.5
avg (sec|#num,)
    返回指定时间间隔的平均值。第一个参数默认是秒,加#则代表最近次数;若有第二个参数,代表漂移。
    如:
        avg(5)          5秒均值
        avg(5#)     最近5次均值
        avg(1h,1d)  昨日的一小时均值
band (sec|#num,mask,)
    b-and 项目值和掩码的“按位与”的值。mask是64位无符号整数。
    #号指的是最近第N个,而不再是范围。
    虽然比较是以位方式进行的,但是所有的值必须以十进制提供和返回:
    band(,12)=8
    band(,20)=16 
change
    本次与上次值的代数差,支持类型float, int, str, text, log,字符串相等返回0,不等返回1
    如:
        (previous value;last value=abschange)
        3;1=2
        0;-2.5=-2.5 #与abschange的区别
count (sec|#num,,,)
    返回指定时间间隔内的数值统计。
    pattern对比样本,可不传     ,监控项的值为整数(iteger)时使用精确匹配,监控项的值为浮点型   (float)时允许偏差0.0000001。
    operator操作,可不传 ,支持操作:
         eq:相等       ne:不相等     gt:大于     lt:小于     ge:大于或等于      le:小于或等于      like:内容匹配
         对于整数和浮点型的监控项目,支持eq(default),ne、gt、ge、lt、le
         对于string、text、log监控项,支持like(default)、eq、ne
    例如:
               count(10m):最近10分钟值的个数
    
               count(10m,12):最近10分钟值等于12的个数 eq可不传

               count(10m,12,"gt"):最近10分钟值大于12的个数

               count(#10,12,"gt"):最近10个值中,值大于12的值的个数

               count(600,12,"gt",1d):24小时前的前10分钟数据中,值大于12的个数

               count(600,,,1d):24小时前的前10分钟值的个数
date
    YYYYMMDD 返回当前时间
    
dayofmonth
    1-31格式返回当前日期
dayofweek
    1-7格式返回当前星期 (Mon - 1, Sun - 7)
delta (sec|#num,)
    返回指定时间间隔内的最大值与最小值的差值(max()-min())
    支持数据类型 float, int
diff
    比较本次与上次返回值的一致性 不同为1,否则为0
    支持数据类型 float, int, str, text, log
forecast (sec|#num,,time,,)
    3.0支持预测。3.2.2支持负时间值。
    预测:项目值,最大值,最小值,增量或平均值。 支持数据类型float, int
    sec|#num 评估周期   time_shift (optional) 
    time 预测范围 s为单位
    fit适配(可选) - 用于拟合历史数据的函数
        支持的fit:
            linear  - 线性函数
            polynomialN  N次多项式N多项式(1 <= N <= 6)
            exponential     指数函数
            logarithmic  - 对数函数
            power 幂函数
    如果返回值大于999999999999.9999或小于-999999999999.9999,则返回值将相应裁剪为999999999999.9999或-999999999999.9999
    在表达式中使用错误项类型,无效的参数,则返回值为-1
    例如:
        forecast(#10,,1h) →基于最后10个值预测1小时后的项目值
        forecast(1h,,30m) →基于最近1小时数据预测30分钟后的项目值
        forecast(1h,1d,12h) → 基于昨天最近1小时数据预测12小时后的项目值
        forecast(1h,,10m,exponential) → 基于最近1小时和指数趋势预测10分钟后的项目值
        forecast(1h,,2h,polynomial3,max) → 基于前一小时数据和三次(立方)多项式函数预测下两个小时项目值的最大值
        forecast(#​2,,​-20m) →基于最后两次值预测20分钟前的项目值(可以比使用last()或prev()更精确,特别是如果项目更新很少,比如每小时一次)
fuzzytime (sec)
    比较检测项的时间戳与zabbix_server时间的差别,支持数据类型 float, int  返回值为1,表示监控项值的时间戳比zabbix_server的时间超N秒,0为其他情况。
    常使用system.localtime来检查本地时间是否与zabbix_server的时间相同。
    也可用vfs.file.time[/path/file,modify] 这个值来检查文件长时间得不到更新。
        如:fuzzytime(60)=0  说明时间差超过60s
last (sec|#num,)
    最近值
    注意,#num与许多其他函数不同,指第几。
    如:  
        last()  相当于last(#1) 倒数第一次
        last(#3) third most recent  倒数第三次,只是一个,不是倒数三次的三个
logeventid (pattern)
    参数 string
    检查最近的日志条目的EventId是否匹配正则表达式。参数为正则表达式、POSIX扩展样式。当返回值为0时,表示不匹配,1表示匹配。
    支持值类型:log
    
logseverity
    返回最近日志条目的日志等级(log severity)。当返回值为0时,表示默认等级,N为具体对应的等级(整数,常用于Windows event logs)
     1 - Information, 2 - Warning, 4 - Error, 7 - Failure Audit, 8 - Success Audit, 9 - Critical, 10 - Verbose
     zabbix从windows事件日志的Information 区域获取等级。
logsource
    检查最近的日志条目是否匹配参数的日志来源。当返回值为0时,表示不匹配,1表示匹配。
    常用于Windows事件日志,如logsource("VMware Server").
max (sec|#num,)
    最大值
min (sec|#num,)
    最小值
nodata (sec)
    当返回值为1时,表示指定的间隔(间隔不应小于30s)没有接收到数据,0表示其他情况
    以下情况,这个函数在sec周期内将报错,错误显示在触发器配置中的信息列中:
        无数据,Zabbix服务器重新启动
        无数据,维护完毕
        无数据,监控项新增或重载
now
    返回距离Epoch(1970年1月1日 00:00:00 UTC)时间的秒数
percentile (sec|#num,,percentage)
    周期的P百分位数,其中P(百分比)由第三个参数指定。
    percentage - 一个0到100(含)之间的浮点数,小数点后最多4个数字
prev
    返回之前的值,类似于last(#2)
    
regexp (pattern,)
    检查最近的值是否匹配正则表达式,参数的正则表达式为POSIX扩展样式,第二个参数为秒数或收集值的数目,将会处理多个值。本函数区分大小写,当返回值为1时,表示找到,0为其他情况
iregexp (pattern,)
    与regexp类似,区别是不区分大小写
str (pattern,)
    查找最近值中的字符串。第一个参数指定查找的字符串,大小写敏感。
    第二个可选的参数指定秒数或收集值的数目,将会处理多个值。
    当返回值为1时,表示找到,0为其他情况
strlen (sec|#num,)
    指定最近值的字符串长度(并非字节),参数值类似于last函数。
    例如,strlen(0)等价于strlen(#1),strlen(#3)表示最近的第三个值,strlen(0,86400)表示一天前最近的值。
sum (sec|#num,)
    返回指定时间间隔中收集到的值的总和。时间间隔作为第一个参数,支持秒或收集值的数目(以#开始)。本函数支持time_shift作为第二个参数。
time
    以HHMMSS 返回当前时间
timeleft (sec|#num,,threshold,)
    Zabbix 3.0.0开始支持此功能。
    Zabbix 3.2.2支持阈值参数中的单位符号。
    预测监控项达到指定阈值所需的时间(秒)。
    threshold 阈值 
    如果要返回的值大于999999999999.9999,返回值将裁剪为999999999999.9999。
    如果无法达到阈值,则返回999999999999.9999。
    在表达式中使用错误项类型,无效的参数,则返回值为-1
    例如:
        timeleft(#10,,0) →基于最后10个值预测监控项值到达0的时间
        timeleft(1h,,100) →基于最近1h值预测监控项值到达100的时间
        timeleft(1h,1d,0) → 基于前一天最近1h值预测监控项值到达0的时间
        timeleft(1h,,200,polynomial2) → 基于最近1h值和二次函数预测监控项值到达200的时间

发表评论

您的电子邮箱地址不会被公开。

Captcha Code