[comment]: # ({188108fa-226b9489})
# 1 Exemplos de triggers

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

Os exemplos estão organizados por caso de uso:

-   [Host indisponível](#detect-unavailable-host)
-   [Proxy indisponível](#detect-unavailable-proxy)
-   [Cluster SMTP indisponível](#detect-unavailable-smtp-cluster)
-   [Host inalcançável](#detect-unreachable-host)
-   [Reinicialização inesperada](#detect-unexpected-reboot)
-   [Alterações em arquivos importantes](#detect-changes-in-important-files)
-   [Alterações em consultas DNS](#detect-changes-in-dns-query)
-   [Software não correspondente em hosts diferentes](#detect-non-matching-software-on-different-hosts)
-   [Relógios dessicronizados](#detect-unsynchronized-clocks)
-   [Agent desatualizado](#detect-outdated-agent)
-   [Interface flapping](#detect-flapping-interface)
-   [Tráfego de entrada alto](#detect-high-incoming-traffic)
-   [Espaço em disco baixo](#detect-low-disk-space)
-   [Espaço em disco baixo (limite dinâmico)](#detect-low-disk-space-dynamic-threshold)
-   [Alta carga de CPU](#detect-high-cpu-load)
-   [Comparação de carga de CPU](#compare-cpu-loads)
-   [Comparação de carga de CPU a longo prazo](#compare-cpu-loads)
-   [String contendo caracteres especiais](#detect-string-containing-special-characters)

[comment]: # ({/188108fa-226b9489})

[comment]: # ({2116104b-1b661572})
##### Detectar host indisponível

```default
max(/host/zabbix[host,agent,available],5m)=0
```
Este trigger dispara se o agent Zabbix no host estiver indisponível por 5 minutos.<br>
Função: [`max`](/manual/config/triggers/expression/aggregate#max)<br>
Item de dados: [`zabbix[host,agent,available]`](/manual/config/items/itemtypes/internal#hostavailable)

Alternativa:

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

Este trigger dispara se nenhum dado for recebido do agent Zabbix por 5 minutos.<br>
Função: [`nodata`](/manual/config/triggers/expression/history#nodata)<br>
Item de dados: [`agent.ping`](/manual/config/items/itemtypes/zabbix_agent#agentping)

[comment]: # ({/2116104b-1b661572})

[comment]: # ({fedc75b0-de5361b9})
##### Detectar proxy indisponível

```default
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.<br>
Função: [`fuzzytime`](/manual/config/triggers/expression/history#fuzzytime)<br>
Item de dados: [`zabbix[proxy,{$PROXY_NAME},lastaccess]`](/manual/config/items/itemtypes/internal#proxy)

[comment]: # ({/fedc75b0-de5361b9})

[comment]: # ({a2a7ab26-7956e04e})
##### Detectar cluster SMTP indisponível

```default
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.<br>
Função: [`last`](/manual/config/triggers/expression/history#last)<br>
Item de dados: [`net.tcp.service`](/manual/config/items/itemtypes/simple_checks#nettcpservice)

[comment]: # ({/a2a7ab26-7956e04e})

[comment]: # ({c2c339fa-567b88a9})
##### Detectar host inacessível

```default
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.<br>
Função: [`count`](/manual/config/triggers/expression/history#count)<br>
Item de dados: [`icmpping`](/manual/config/items/itemtypes/simple_checks#icmpping)

[comment]: # ({/c2c339fa-567b88a9})

[comment]: # ({e9862861-b356d712})
##### Detectar reinicialização inesperada

```default
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).<br>
Função: [`change`](/manual/config/triggers/expression/history#change)<br>
Item de dados: [`system.uptime`](/manual/config/items/itemtypes/zabbix_agent#systemuptime)

[comment]: # ({/e9862861-b356d712})

[comment]: # ({1ee22f8b-49592749})
##### Detectar alterações em arquivos importantes

```default
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.<br>
Função: [`last`](/manual/config/triggers/expression/history#last)<br>
Item de dados: [`vfs.file.cksum`](/manual/config/items/itemtypes/zabbix_agent#vfsfilecksum)

[comment]: # ({/1ee22f8b-49592749})

[comment]: # ({7df0f916-c2b4949f})
##### Detectar alterações na consulta DNS

```default
last(/Zabbix server/net.dns.record[192.0.2.1,{$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 é acionado se o resultado da consulta não for igual ao que ela normalmente retorna:

```default
example.com           MX       0 mail.example.com
```

Função: [`last`](/manual/config/triggers/expression/history#last)<br>
Data item: [`net.dns.record[192.0.2.1,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1]`](/manual/config/items/itemtypes/zabbix_agent#net.dns.record), com macros definidas como:

```default
{$WEBSITE_NAME} = example.com
{$DNS_RESOURCE_RECORD_TYPE} = MX
```

[comment]: # ({/7df0f916-c2b4949f})

[comment]: # ({0fc019ff-adfc6b9d})
##### Detectar software diferente em hosts diferentes

```default
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.<br>
Função: [`last`](/manual/config/triggers/expression/history#last)<br>
Item de dados: [`vfs.file.contents`](/manual/config/items/itemtypes/zabbix_agent#vfsfilecontents)

[comment]: # ({/0fc019ff-adfc6b9d})

[comment]: # ({101c1203-0e6bfc51})
##### Detectar relógios dessincronizados

```default
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.<br>
Função: [`fuzzytime`](/manual/config/triggers/expression/history#fuzzytime)<br>
Item de dados: [`system.localtime`](/manual/config/items/itemtypes/zabbix_agent#system.localtime)

Observe que [`system.localtime`](/manual/config/items/itemtypes/zabbix_agent#systemlocaltime) deve ser configurado como uma [verificação passiva](/manual/appendix/items/activepassive#passive-checks) para o Zabbix agent; no Zabbix agent 2 pode ser configurado como uma verificação ativa.

[comment]: # ({/101c1203-0e6bfc51})

[comment]: # ({108d71c4-62cfb014})
##### Detectar agent desatualizado

```default
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.<br>
Função: [`find`](/manual/config/triggers/expression/history#find)<br>
Item de dados: [`agent.version`](/manual/config/items/itemtypes/zabbix_agent#agent.version)

[comment]: # ({/108d71c4-62cfb014})

[comment]: # ({b4fdf283-3f25a585})
##### Detectar interface instável

```default
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.<br>
Função: [`changecount`](/manual/config/triggers/expression/history#changecount)<br>
Item de dados: [`vfs.file.contents`](/manual/config/items/itemtypes/zabbix_agent#vfsfilecontents)

[comment]: # ({/b4fdf283-3f25a585})

[comment]: # ({984a4c2f-46e72843})
##### Detectar tráfego de entrada alto

```default
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.<br>
Função: [`min`](/manual/config/triggers/expression/aggregate#min)<br>
Item de dados: [`net.if.in[eth0,bytes]`](/manual/config/items/itemtypes/zabbix_agent#netifin)

[comment]: # ({/984a4c2f-46e72843})

[comment]: # ({2e223320-bddf0717})
##### Detectar pouco espaço em disco

```default
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:

```default
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.<br>
Função: [`min`](/manual/config/triggers/expression/aggregate#min)<br>
Item de dados: [`vfs.fs.size`](/manual/config/items/itemtypes/zabbix_agent#vfsfssize)

[comment]: # ({/2e223320-bddf0717})

[comment]: # ({e2a732dc-bb0f5278})
##### Detectar pouco espaço em disco (limite dinâmico)

```default
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`](/manual/config/triggers/expression/history#last)<br>

[comment]: # ({/e2a732dc-bb0f5278})

[comment]: # ({643d3a74-17b607dc})
##### Detectar alta carga de CPU

```default
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:

```default
min(/host/system.cpu.load[all,avg1],5m)>2 and time()<060000
```
```default
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)

```default
(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.<br>
Funções: [`last`](/manual/config/triggers/expression/history#last), [`min`](/manual/config/triggers/expression/aggregate#min), [`dayofweek`](/manual/config/triggers/expression/time#dayofweek), [`time`](/manual/config/triggers/expression/time#time)<br>
Item de dados: [`system.cpu.load`](/manual/config/items/itemtypes/zabbix_agent#systemcpuload)

[comment]: # ({/643d3a74-17b607dc})

[comment]: # ({49f3b448-47b2e2fd})
##### Comparar cargas de CPU

```default
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.<br>
Função: [`avg`](/manual/config/triggers/expression/aggregate#avg)<br>
Item de dados: [`system.cpu.load`](/manual/config/items/itemtypes/zabbix_agent#systemcpuload)

[comment]: # ({/49f3b448-47b2e2fd})

[comment]: # ({e83bf5a3-6906462b})
##### Comparar cargas de CPU de longo prazo

```default
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<br>
Função: [`trendavg`](/manual/config/triggers/expression/trends#trendavg)<br>
Item de dados: [`system.cpu.load`](/manual/config/items/itemtypes/zabbix_agent#systemcpuload)

Você também pode usar o campo [Nome do evento](/manual/config/triggers/trigger#configuration) 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:

```default
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.

[comment]: # ({/e83bf5a3-6906462b})

[comment]: # ({4ae4641e-60fad4fc})
##### Detectar string contendo caracteres especiais

```default
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}`:

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

Alternativamente, você pode comparar diretamente com a string:

```default
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`](/manual/config/triggers/expression/history#last)<br>
Item de dados: [`vfs.file.contents`](/manual/config/items/itemtypes/zabbix_agent#vfsfilecontents)

[comment]: # ({/4ae4641e-60fad4fc})

[comment]: # ({baa6a112-contribute})
::: note-contribute
Tem um exemplo de expressão de trigger que outros possam achar útil?<br>
Envie seu exemplo (incluindo expressão e contexto) usando nosso [formulário de sugestão](#report-example) para enviá-lo aos desenvolvedores do Zabbix.
:::

[comment]: # ({/baa6a112-contribute})
