Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página inclui conteúdo traduzido automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

1 Exemplos de triggers

Esta página é uma coleção de exemplos de triggers.

Os exemplos estão organizados por caso de uso:

Detectar host indisponível
max(/host/zabbix[host,agent,available],5m)=0

Este trigger dispara se o agent Zabbix no host estiver indisponível por 5 minutos.
Função: max
Item de dados: zabbix[host,agent,available]

Alternativa:

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

Este trigger dispara se nenhum dado for recebido do agent Zabbix por 5 minutos.
Função: nodata
Item de dados: agent.ping

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

Este trigger é acionado se os dados do proxy Zabbix estiverem atrasados em relação ao horário do servidor Zabbix em 1 minuto.
Função: fuzzytime
Item de dados: zabbix[proxy,{$PROXY_NAME},lastaccess]

Detectar cluster SMTP indisponível
last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0

Este trigger dispara se ambos os servidores SMTP estiverem inativos.
Função: last
Item de dados: net.tcp.service

Detectar host inacessível
count(/host/icmpping,30m,,"0")>5

Este trigger dispara se o host estiver inacessível por ping mais de 5 vezes nos últimos 30 minutos.
Função: count
Item de dados: icmpping

Detectar reinicialização inesperada
change(/host/system.uptime)<0

Este trigger dispara se uma alteração negativa no valor do tempo de atividade do sistema for detectada (indicando uma reinicialização).
Função: change
Item de dados: system.uptime

Detectar alterações em arquivos importantes
last(/host/vfs.file.cksum[/etc/passwd],#1)<>last(/host/vfs.file.cksum[/etc/passwd],#2)

Este trigger dispara se /etc/passwd foi alterado. A expressão é verdadeira quando o checksum anterior de /etc/passwd difere do mais recente. Expressões semelhantes podem ser úteis para monitorar alterações em arquivos importantes, como /etc/passwd, /etc/inetd.conf, /kernel, etc.
Função: last
Item de dados: vfs.file.cksum

Detectar alterações na 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 as aspas ao redor do segundo operando.

Este trigger dispara se o resultado da consulta não for igual ao que normalmente retorna:

example.com           MX       0 mail.example.com

Função: last
Item de dados: net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1], com macros definidas como:

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

Este trigger dispara se a versão do Ubuntu for diferente em hosts diferentes. Observe como os operandos aqui são funções que retornam strings.
Função: last
Item de dados: vfs.file.contents

Detectar relógios dessincronizados
fuzzytime(/host/system.localtime,10s)=0

O trigger dispara se a hora local do cliente e a hora do Zabbix server diferirem em mais de 10 segundos.
Função: fuzzytime
Item de dados: system.localtime

Observe que system.localtime deve ser configurado como uma verificação passiva para o Zabbix agent; no Zabbix agent 2 pode ser configurado como uma verificação ativa.

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

Este trigger dispara se o agent Zabbix tiver uma versão beta. O agent Zabbix precisa ser atualizado.
Função: find
Item de dados: agent.version

Detectar interface instável
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 

Este trigger dispara se o estado operacional (up/down/unknown) da eth0 mudou mais de 5 vezes em uma hora.
Função: changecount
Item de dados: vfs.file.contents

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

Este trigger dispara se o número de bytes recebidos em eth0 nos últimos cinco minutos foi sempre superior a 100 kilobytes. Alguém provavelmente está baixando um arquivo grande.
Função: min
Item de dados: net.if.in[eth0,bytes]

Detectar pouco espaço em disco
max(/host/vfs.fs.size[/,free],5m)<10G

O trigger dispara se o espaço livre em disco estiver consistentemente (5 minutos) abaixo de 10 GB.

Você também pode definir uma expressão de recuperação:

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

O problema é resolvido apenas quando o espaço livre em disco está consistentemente (10 minutos) acima de 40 GB.
Função: min
Item de dados: vfs.fs.size

Detectar pouco espaço em disco (limite dinâmico)
last(/template/hrStorageFree[{#SNMPVALUE}])<last(/template/hrStorageSize[{#SNMPVALUE}])*0.1

O trigger dispara se o armazenamento livre (em unidades de alocação) cair abaixo de 10 por cento. Observe o valor de outro item sendo usado para obter um limite de trigger adaptativo, aplicável ao armazenamento descoberto de vários tamanhos. Função: last

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

O trigger dispara quando a carga média do processador está acima de 5 por um minuto.

Variações:

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)

Esses triggers analisam 5 minutos de dados e disparam apenas se a carga da CPU nunca estiver abaixo de 2. Além disso, esses triggers disparam:

  • apenas durante a noite (00:00-06:00)
  • a qualquer momento, exceto por 2 horas na mudança da semana (domingo, 23:00 - segunda-feira, 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 dispara se a carga do processador estiver muito alta em pelo menos dois dos três hosts.
Funções: last, min, dayofweek, time
Item de dados: system.cpu.load

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

O trigger dispara se a carga média de hoje ultrapassar a carga média da mesma hora de ontem (usando o deslocamento de tempo como now-1d) mais de duas vezes.
Função: avg
Item de dados: system.cpu.load

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

Este trigger dispara se a carga de CPU no host aumentou mais de 10% no último mês
Função: trendavg
Item de dados: system.cpu.load

Você também pode usar o campo Nome do evento na configuração do trigger para construir uma mensagem de alerta significativa, por exemplo, para receber algo como

"A carga do servidor Exchange aumentou em 24% em julho (0,69) em comparação com junho (0,56)"

o nome do evento deve ser definido como:

A carga do servidor {HOST.HOST} aumentou em {{?100*trendavg(//system.cpu.load,1M:now/M)/trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(0)}% em {{TIME}.fmttime(%B,-1M)} ({{?trendavg(//system.cpu.load,1M:now/M)}.fmtnum(2)}) em comparação com {{TIME}.fmttime(%B,-2M)} ({{?trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(2)})

Também é útil permitir o fechamento manual na configuração do trigger para esse tipo de problema.

Detectar string contendo caracteres especiais
last(/host/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}

O trigger dispara se o conteúdo de /tmp/hello for igual à string definida em {$HELLO_MACRO}:

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

Alternativamente, você pode comparar diretamente com a string:

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

Observe como os caracteres especiais (\\ e ") são escapados quando a string é comparada diretamente.

Função: last
Item de dados: vfs.file.contents

Tem um exemplo de expressão de trigger que pode ser útil para outras pessoas? Use o formulário de sugestão de exemplo para enviá-lo aos desenvolvedores do Zabbix.