zabbix item and tigger

zabbix item

  1. net.tcp.listen[port]
    检测端口是否开启:
    0 – 未监听
    1 – 监听中

zabbix tigger

  1. zabbix避免瞬时触发频繁报警

    1
    2
    3
    4
    5
    6
    7
    {HOST:ITEM.count(600,100,"ge")}>3 and {HOST:ITEM.last(0)}>100
    说明: 在600秒内大于100 3次 且 当前大于100,就会触发报警

    count(时间,监控值,判断参数,延时时间)>次数
    and 逻辑与

    判断参数:{eq:相等 ne:不相等 gt:大于 ge:大于等于 lt:小于 le:小于等于 like:内容匹配}
  2. Tigger last()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    {HOST:system.cpu.load[all,avg1].last(0)}>5
    解释: 如果cpu.load最新值大于5则触发报警

    {HOST:system.cpu.load[all,avg1].last(1)}>5
    解释: 如果cpu.load最近1秒值大于5则触发报警

    {HOST:cpu.load[cpu.avg1].last(#2)}>3
    解释: cpu.load上上一个值负载大于3则触发

    {HOST:cpu.load[cpu.avg1].last(,1d)}>3
    解释: 此时cpu.load负载 大于 昨日此时cpu.load负载 3则触发
    即: {此时cpu.load负载} - {昨日此时cpu.load负载} > 3

    {HOST:system.cpu.load[all,avg1].last(0)}>5 | {HOST:system.cpu.load[all,avg1].min(10m)}>2
    解释: 如果cpu.load大于5或者最后十分钟内cpu.load最小值大于2则触发报警

    {HOST:zabbix.ping.last(#5,3m)}=0
    解释: 如果最近3分钟内第5次取值结果为0,则触发报警
  3. Tigger max()

    1
    2
    3
    4
    5
    6
    7
    8
    {HOST:system.cpu.load.max(30m)}>5
    解释: 30分钟内cpu负载最大值如果大于5则触发

    {HOST:system.cpu.load.max(#5)}>10
    解释: cup的最近5个返回值里面,如果最大值超过10,则触发

    {HOST:vfs.fs.size[/,free].max(5m)}<1G
    解释: 最近5分钟内剩余磁盘空间小于1G则触发
  4. Tigger min()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {HOST:if.in[eth0,bytes].min(5m)}>20M
    解释: eth0的input网卡在5分钟内获取的最小值持续超过20M则触发

    {HOST:system.cpu.load[all,avg1].last(0)}>5 | {{HOST:system.cpu.load[all,avg1].min(10m)}>2
    解释: 最新的load值如果超过5 或 在10分钟内最小load值一直持续超过2则触发

    {HOST:system.cpu.load[all,avg1].min(5m)}>10 & \
    {HOST:system.cpu.load[all,avg1].time(0)}>000000 & \
    {HOST:system.cpu.load[all,avg1].time(0)}<060000
    解释: 在晚上0-6点这段时间内如果主机在5分钟内获取load的最小值一直持续大于10则报警

    {HOST.cpu.load.min(#30)}>7
    解释: cpu负载最近三十个返回值最小值大于7则触发
  5. Tigger nodata()

    1
    2
    3
    4
    5
    {HOST.tick.nodata(5m)}=1
    解释: 如果5分钟内部等于1(没有收到数据)则触发

    {HOST.agent.ping.nodata(5m)}=1
    解释: agent.ping在最近5分钟内都没有接收到数据,则触发
  6. Tigger count()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    这里可以为s(秒),也可以为m(分钟):
    * count(10m) 最后10分钟值的数量
    * count(600) 最后10分钟值的数量
    * count(600,12) 最后十分钟拿到的值等于12
    * count(10m,12) 最后十分钟拿到的值等于12
    * count(600,12,"gt") 最后十分钟拿到的值大于12
    * count(#10,12,"gt") 最近10个值中,值大于12的个数
    * count(600,12,"gt",86400) 24小时之前的10分钟内值大于12的个数
    * count(600,,,86400) 24小时之前的10分钟数据值的个数

    例如:
    {HOST:ITEM.count(2m,0)}>3
    解释: 如果2分钟内拿到的值为0,且大于3次则触发报警

    {HOST:icmpping.count(5m,0)}>2
    解释: 最近分5钟内有2次ping不通就触发报警(假设30秒ping一次,5分之可以ping 10次)

    {HOST:redis[,avg1].count(10m,10,"gt")}>2
    解释: 最近10分钟内的平均值大于10的次数超过2次则触发报警

    {HOST:redis.count(#10,5,"gt",86400)}>2
    解释: 24小时之前,最近10个值中,值大于5的个数,大于2次则触发报警
  7. tigger delta()

    1
    2
    3
    4
    #定义的评价期间内的最大和最小值之间的差异(max()-min())

    {HOST:net.if.in[eth1].delta(300)}>100M
    解释: eth1流量在300秒内,最大值和最小值之间差如果大于100M,则触发