Zabbix Trigger Fountcion

        Zabbix的Trigger Founction作为判断标准还是挺重要的,以下是照着Zabbix 2.4官方文档,对着翻译半翻译半猜的。反正只是作为个人的一个查询而已。

         注:其中还缺少一个band函数,看原文应该是“按位与”运算,个人感觉用的不多就没管。


abschange:

        描述:

               返回最近获取的值与之前的值的差值的绝对值。对于字符串类型,0表示值相等,1表示值不同

        支持的数值类型:

                float,init,str,text,log

         例如:1/5=4       后值减前值


avg(sec|#num,<time_shift>)

        描述:

                一段范围内取平均值

        参数:

                sec或#num:返回指定时间间隔的平均值。时间间隔可以通过第一个参数通过秒数或收集的值的数目(需要前面加上#,比如#5表示最近5次的值)

                time_shift:类似偏移量,查询之前的时间,单位为秒。

        支持值类型:float,int

        例:avg(#5) 最近5次取值的平均值

               avg(3600) 一个小时的平均值

               avg(3600,86400)  一天前的一个小时内的平均值


change:

        描述:

               后值减前值得出的差,有+|-号

       支持值类型:

               float,int,str,text,log,对于字符串类型,0表示值相等,1表示值不同

        例: 1/5=+4

                 3/1=-2


count(set|#num,<pattern>,<operator>,<time_shift>)

          描述:

                返回指定时间间隔内的数值统计

           参数:

               set | #num:同avg

               pattern:匹配,对整型item使用精确匹配,对float item支持最大精度为0.0000001

               operators:

                     eq,ne,gt,ge,lt,le,like(内容匹配),band(按位做与计算)

                     整型item支持所有操作,默认eq

                     fload item不支持band操作,默认eq

                     text 和 log item仅支持like,eq,ne,默认like

              time_shift:同avg

         支持值类型:

              fload,int,str,text,log

         例子:count(600)  最近10分钟的值的个数

                    count(600,12)   最近10分钟,值等于12的个数

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

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

                    count(600,,,86400)   24小时之前的前10分钟数据的值的个数


date:

          描述:

               返回以YYYYMMDD格式的挡墙日期

          支持所有值类型

          例:20150731


dayofmonth:

          描述:

               返回当前是本月第几天,取值为1-31

          支持所有值类型

  

dayofweek:

          描述:

                返回当前是本周第几天,取值为1-7

          支持所有值类型


delta(sec|#num,<time_shift>)

          描述: 

                 返回指定时间间隔内的最大值与最小值的差值(max()-min())

          

diff:

          描述:

                  检查最近一次的值和之前的值是否有不同

          支持值类型:

                  float,int,str,text,log

           返回值:

                 1:最近的值和之前的值不同,返回1

                 0:其他情况,则返回0

                   

fuzzytime(sec)

         描述:

                判断item值与Zabbix server 的时间戳差值是否超过限定

         支持值类型:

                  float,int

         返回参数:

                 0:item与zabbix server的时间相差T秒,则返回0

                 1:其他则返回1

          注:通常与system.localtime来检查本地事件与服务器时间是否同步。也可以用vfs.file.time[/path/file,modify]查看文件是否长时间未更新。


regexp(pattern,<sec|#num>)

          描述:

                 检查最近的值是否匹配正则表达式

           参数:

                 pattern:正则表达式为POSIX扩展样式

                 sec|#num:可见avg

           支持值类型:

                str,log,text

            返回值:匹配时区分大小写

                1 表示找到匹配项

                0 表示其他


iregexp(pattern,<sec|#num>)

        描述:

             检查最近的值是否匹配正则表达式

        参数:不区分字符大小写

             可查看regexp

         支持值类型:

              str,log,text


last(sec|#num,<time_shift>)

        描述:

               最近的值

         支持值类型:

                float,int,str,text,log

         例子:

               last()  等价于 last(#1)

               last(#3) 表示最近的第三个值

               last(0,86400)   返回一天前的最近的值

           注:last的num与其他的不同,#3表示的是最近第三个值而不是最近的三个值。且如果同一时间有多个值,zabbix将无法保证其准确性。


logeventid(pattern):

          描述:

                检查最近的日志条目的Event ID是否匹配正则表达式。

          参数:

               pattern:正则表达式,POSIX扩展样式。

          支持值类型:

               log

           返回值:

               0:表示不匹配

               1:表示匹配


logseverity:

          描述:

               最近日志的日志告警级别。

          支持值类型:

               log

           返回值:

               0:默认警告级别

               N:告警级别(为整型,常用于Windows event logs,1 信息,2 警告,4 错误, 7 审核失败,8 审核成功,9 议论,10 冗长)。Zabbix日志等级来源于Windows event log的 Information列


logsource(pattern)

          描述:

                 判断最近的日志条目与参数的日志来源是否一致

          支持值类型:

                 log

           返回值:通常用于Windows event logs

                 0:不匹配返回0

                 1:匹配返回1

            例如: logsource("VMWare Server")


max(sec|#num,<time_shift>)

           描述:

                 返回指定时间间隔内的最大值

           支持值类型:

                 float,int


min(sec|#num,<time_shift>)

           描述:

                 返回指定时间间隔内的最小值

           支持值类型:

                 float,int


nodata(sec)

            描述:

                  检查是否无数据返回

             参数:

                   sec:以秒为单位的时间间隔

                       注:但最小不能少于30s

              支持值类型:

                   any

               返回值:

                   1:如果一定范围内无数据,则返回1

                   0:其他则为0

              注:第一个周期内,该函数可能会显示一个错误

now:

           描述:

                 返回从1970年1月1日至今过去的秒数

        

prev:

           描述:

                  返回之前的值

           支持值类型:

                  float,int,str,text,log

           类似于last(#2)

str(pattern,<sec|#num>)

         描述:

             从最近的值进行字符串匹配

          支持值类型:

             str,text,log

          返回值:  该函数区分字符大小写

             1:匹配到,返回1

             0:其他返回0

strlen(sec|#num,<time_shift>)

         描述:

             计算最近的值的字符串长度(非字节)

          支持值类型:

             str,text,log

          参数:

              sec | #num:此处的 #num 和last类似,取最近的第num个值进行计算长度。

               例:strlen(0)等价与strlen(#1) 表示最后一个值

                      strlen(#3)表示最近的第三个值

sum(sec|#num,<time_shift>)              

         描述:

               计算指定时间间隔的值的和

         支持值类型:

                fload,int

time:

        描述:

             以HHMMSS为格式返回当前时间,例如123055

        注:(1) 所有的返回值只能是数值型,不支持字符串返回值

               (2) 一些函数不能用于非数字参数

               (3) 字符串参数应该用双引号。否则,他们可能会报错