Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página incluye contenido traducido automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

1 Ejemplos de triggers

Esta página es una colección de ejemplos de triggers.

Los ejemplos están ordenados por caso de uso:

Detectar host no disponible
max(/host/zabbix[host,agent,available],5m)=0

Este trigger se dispara si el agent de Zabbix en el host ha estado no disponible durante 5 minutos.
Función: max
Item de datos: zabbix[host,agent,available]

Alternativa:

nodata(/host/agent.ping,5m)=1

Este trigger se dispara si no se han recibido datos del agent de Zabbix durante 5 minutos.
Función: nodata
Item de datos: agent.ping

Detectar proxy no disponible
fuzzytime(/host/zabbix[proxy,{$PROXY_NAME},lastaccess],1m)=0

Este trigger se activa si los datos del proxy de Zabbix se retrasan respecto al tiempo del server de Zabbix en 1 minuto.
Función: fuzzytime
Item de datos: zabbix[proxy,{$PROXY_NAME},lastaccess]

Detectar clúster SMTP no disponible
last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0

Este trigger se activa si ambos servidores SMTP están caídos.
Función: last
Item de datos: net.tcp.service

Detectar host inaccesible
count(/host/icmpping,30m,,"0")>5

Este trigger se activa si el host no responde al ping más de 5 veces en los últimos 30 minutos.
Función: count
Item de datos: icmpping

Detectar reinicio inesperado
change(/host/system.uptime)<0

Este trigger se activa si se detecta un cambio negativo en el valor del tiempo de actividad del sistema (lo que indica un reinicio).
Función: change
Item de datos: system.uptime

Detectar cambios en archivos importantes
last(/host/vfs.file.cksum[/etc/passwd],#1)<>last(/host/vfs.file.cksum[/etc/passwd],#2)

Este trigger se activa si /etc/passwd ha sido modificado. La expresión es verdadera cuando la suma de verificación anterior de /etc/passwd difiere de la más reciente. Expresiones similares pueden ser útiles para monitorizar cambios en archivos importantes, como /etc/passwd, /etc/inetd.conf, /kernel, etc.
Función: last
Item de datos: vfs.file.cksum

Detectar cambios en la consulta DNS
last(/Zabbix server/net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1])<>"{$WEBSITE_NAME}           {$DNS_RESOURCE_RECORD_TYPE}       0 mail.{$WEBSITE_NAME}"

Observe las comillas alrededor del segundo operando.

Este trigger se activa si el resultado de la consulta no es igual a lo que normalmente devuelve:

example.com           MX       0 mail.example.com

Función: last
Item de datos: net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1], con macros definidas como:

{$WEBSITE_NAME} = example.com
       {$DNS_RESOURCE_RECORD_TYPE} = MX
Detectar software que no coincide en diferentes hosts
last(/host/vfs.file.contents[/etc/os-release])<>last(/host2/vfs.file.contents[/etc/os-release])

Este trigger se activa si la versión de Ubuntu es diferente en distintos hosts. Observe cómo los operandos aquí son funciones que devuelven cadenas de texto.
Función: last
Item de datos: vfs.file.contents

Detectar relojes no sincronizados
fuzzytime(/host/system.localtime,10s)=0

El trigger se activa si la hora local del cliente y la hora del servidor Zabbix difieren en más de 10 segundos.
Función: fuzzytime
Item de datos: system.localtime

Tenga en cuenta que system.localtime debe configurarse como una comprobación pasiva para el agent de Zabbix; en el agent de Zabbix 2 puede configurarse como una comprobación activa.

Detectar agent desactualizado
find(/host/agent.version,,"like","beta")=1

Este trigger se activa si el agent de Zabbix tiene una versión beta. Es necesario actualizar el agent de Zabbix.
Función: find
Item de datos: agent.version

Detectar interfaz inestable
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 

Este trigger se activa si el estado operativo (up/down/unknown) de eth0 ha cambiado más de 5 veces en una hora.
Función: changecount
Item de datos: vfs.file.contents

Detectar tráfico de entrada alto
min(/host/net.if.in[eth0,bytes],5m)>100K

Este trigger se activa si el número de bytes recibidos en eth0 durante los últimos cinco minutos fue siempre superior a 100 kilobytes. Probablemente alguien está descargando un archivo grande.
Función: min
Item de datos: net.if.in[eth0,bytes]

Detectar poco espacio en disco
max(/host/vfs.fs.size[/,free],5m)<10G

El trigger se dispara si el espacio libre en disco es consistentemente (5 minutos) inferior a 10 GB.

También puede definir una expresión de recuperación:

min(/host/vfs.fs.size[/,free],10m)>40G

El problema se resuelve sólo cuando el espacio libre en disco es consistentemente (10 minutos) superior a 40 GB.
Función: min
Item de datos: vfs.fs.size

Detectar poco espacio en disco (umbral dinámico)
last(/template/hrStorageFree[{#SNMPVALUE}])<last(/template/hrStorageSize[{#SNMPVALUE}])*0.1

El trigger se activa si el espacio libre (en unidades de asignación) cae por debajo del 10 por ciento. Observe que se utiliza el valor de otro item para obtener un umbral de trigger adaptativo, aplicable al almacenamiento descubierto de varios tamaños. Función: last

Detectar alta carga de CPU
last(/host/system.cpu.load[all,avg1])>5

El trigger se activa cuando la carga promedio del procesador ha estado por encima de 5 durante un minuto.

Variaciones:

min(/host/system.cpu.load[all,avg1],5m)>2 and time()<060000
min(/host/system.cpu.load[all,avg1],5m)>2 and not (dayofweek()=7 and time()>230000) and not (dayofweek()=1 and time()<010000)

Estos triggers analizan 5 minutos de datos y se activan solo si la carga de CPU nunca está por debajo de 2. Además, estos triggers se activan:

  • solo en horario nocturno (00:00-06:00)
  • en cualquier momento excepto durante 2 horas en el cambio de semana (domingo, 23:00 - lunes, 01:00)
(last(/host/system.cpu.load[all,avg1])>5) + (last(/host2/system.cpu.load[all,avg1])>5) + (last(/host3/system.cpu.load[all,avg1])>5)>=2

Este trigger se activa si la carga del procesador es demasiado alta en al menos dos de los tres hosts.
Funciones: last, min, dayofweek, time
Item de datos: system.cpu.load

Comparar cargas de CPU
avg(/Zabbix server/system.cpu.load,1h)/avg(/Zabbix server/system.cpu.load,1h:now-1d)>2

El trigger se activa si la carga promedio de hoy supera la carga promedio de la misma hora de ayer (usando el desplazamiento de tiempo como now-1d) más de dos veces.
Función: avg
Item de datos: system.cpu.load

Comparar cargas de CPU a largo plazo
trendavg(/host/system.cpu.load,1M:now/M)>1.1*trendavg(/host/system.cpu.load,1M:now/M-1M)

Este trigger se dispara si la carga de CPU en el host aumentó más del 10% el mes pasado
Función: trendavg
Item de datos: system.cpu.load

También puede utilizar el campo Nombre del evento en la configuración del trigger para construir un mensaje de alerta significativo, por ejemplo, para recibir algo como

"La carga del servidor Exchange aumentó un 24% en julio (0,69) en comparación con junio (0,56)"

el nombre del evento debe definirse como:

Load of {HOST.HOST} server increased by {{?100*trendavg(//system.cpu.load,1M:now/M)/trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(0)}% in {{TIME}.fmttime(%B,-1M)} ({{?trendavg(//system.cpu.load,1M:now/M)}.fmtnum(2)}) comparing to {{TIME}.fmttime(%B,-2M)} ({{?trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(2)})

También es útil permitir el cierre manual en la configuración del trigger para este tipo de problema.

Detectar cadena que contiene caracteres especiales
last(/host/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}

El trigger se activa si el contenido de /tmp/hello es igual a la cadena definida en {$HELLO_MACRO}:

{$HELLO_MACRO} = \" //hello ?\"

Alternativamente, puede comparar con la cadena directamente:

last(/Zabbix server/vfs.file.contents[/tmp/hello])="\\\" //hello ?\\\""

Observe cómo los caracteres especiales (\\ y ") se escapan cuando la cadena se compara directamente.

Función: last
Item de datos: vfs.file.contents

¿Tiene un ejemplo de expresión de trigger que pueda ser útil para otros? Utilice el formulario de sugerencia de ejemplo para enviarlo a los desarrolladores de Zabbix.