- 1 Exemplos de triggers
- Detectar host indisponível
- Detectar proxy indisponível
- Detectar cluster SMTP indisponível
- Detectar host inacessível
- Detectar reinicialização inesperada
- Detectar alterações em arquivos importantes
- Detectar alterações na consulta DNS
- Detectar software diferente em hosts diferentes
- Detectar relógios dessincronizados
- Detectar agent desatualizado
- Detectar interface instável
- Detectar tráfego de entrada alto
- Detectar pouco espaço em disco
- Detectar pouco espaço em disco (limite dinâmico)
- Detectar alta carga de CPU
- Comparar cargas de CPU
- Comparar cargas de CPU de longo prazo
- Detectar string contendo caracteres especiais
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
- Proxy indisponível
- Cluster SMTP indisponível
- Host inalcançável
- Reinicialização inesperada
- Alterações em arquivos importantes
- Alterações em consultas DNS
- Software não correspondente em hosts diferentes
- Relógios dessicronizados
- Agent desatualizado
- Interface flapping
- Tráfego de entrada alto
- Espaço em disco baixo
- Espaço em disco baixo (limite dinâmico)
- Alta carga de CPU
- Comparação de carga de CPU
- Comparação de carga de CPU a longo prazo
- String contendo caracteres especiais
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 outros possam achar útil?
Envie seu exemplo (incluindo expressão e contexto) usando nosso formulário de sugestão para enviá-lo aos desenvolvedores do Zabbix.