I. str
(pattern,<sec|#num>)
发现在最新(最近)的值的字符串。
pattern:所需的字符串
<sec|#num> 评估期间以秒为单位或以最新收集的值(按井号开头)。在这种情况下,一个以上的值可被处理。支持: str, text, log,当返回1时说明找到,0为其他情况
示例:
{www.linuxea.com:agent.version.str("beta8")}=1
如果当前zabbix agent版本包含beta8(假设当前版本为1.0beta8),这个表达式会返回true.
{www.zabbix.com:jmx["Catalina:type=ProtocolHandler,port=8080",comprssin].str(off)}=1
表示设备www.zabbix.com从key中获取到了字符串off
{JMX Templates:jmx["java.lang:type=Runtime",VmName].str(Server**)**}<>1
runs suboptimal VM type
{JMX Templates:jmx["java.lang:type=Compilation",Name].str(Client)}=1
uses suboptimal JIT compiler
II. strlen
以字符(而不是字节)的最新(最近)的值的长度。支持str, text, log
(sec|#num,<time_shift>):秒(忽略)或#NUM - 第N个最近的值
strlen和last类似
示例如下
{www.linuxea.com.htpNUM.strlen(#3)}=2
如果拿到的第三个新值长度=2则触发
{www.linuxea.com.htpNUM.strlen()}=2
拿到的值等于2则触发
{www.linuxea.com.htpNUM.strlen(,1d)}=2
拿到的当前值和一天前当前值如果等于2则触发
也可以写成{www.linuxea.com.htpNUM.strlen(#1,1d)}=2
III. sum
(sec|#num,<time_shift>)秒或者num,支持str,log,text
返回指定时间间隔中收集到的值的总和。时间间隔作为第一个参数,支持秒或收集值的数目(以#开始)。本函数支持time_shift作为第二个参数。
IV. timeleft
在特定时间来达到指定的阈值。
(sec|#num,<time_shift>,threshold,<fit>
sec or #num:秒或#NUM - 评估期间以秒为单位或指定的收集最新值(由哈希标记开头),其他可选,支持浮动,INT
timeleft的意思是达到阈值需要多久时间
timeleft的意思是多久时间可以达到阈值
参考:https://www.zabbix.com/documentation/3.4/manual/config/triggers/prediction
⇒ timeleft(#10,,0) → 最近是个值如果是0
⇒ timeleft(1h,,100) → 最近一个小时的数据达到100
⇒ timeleft(1h,1d,0) → 最近一天前一个小时的值是0
{host:vfs.fs.size[/,free].timeleft(1h,,0)}<1h
如果最近一小时的值小于下一个一小时的值则触发
{host:vfs.fs.size[/,free].timeleft(1h,,0)}<1h and {host:vfs.fs.size[/,free].timeleft(1h,,0)}<>-1
如果最近一小时的值小于下一个一小时的值或者有其他问题则触发