Funções de histórico

Todas as funções listadas aqui são compatíveis com:

As funções são listadas sem informações adicionais. Clique na função para ver todos os detalhes.

Função Descrição
change A diferença entre o valor anterior e o mais recente.
changecount O número de alterações entre valores adjacentes dentro do período de avaliação definido.
count O número de valores dentro do período de avaliação definido.
countunique O número de valores exclusivos dentro do período de avaliação definido.
find Localiza uma correspondência de valor dentro do período de avaliação definido.
first O primeiro valor (o mais antigo) dentro do período de avaliação definido.
firstclock O timestamp do primeiro valor (o mais antigo) dentro do período de avaliação definido.
fuzzytime Verifica quanto o horário do agent passivo difere do horário do Zabbix server/proxy.
jsonpath Retorna uma matriz com os resultados da consulta JSONPath.
last O valor mais recente.
lastclock O timestamp do N-ésimo valor mais recente dentro do período de avaliação definido.
logeventid Verifica se o ID do evento da última entrada de log corresponde a uma expressão regular.
logseverity A severidade do log da última entrada de log.
logsource Verifica se a origem do log da última entrada de log corresponde a uma expressão regular.
logtimestamp O timestamp da mensagem de log do N-ésimo valor mais recente do item de log.
monodec Verifica se houve uma diminuição monótona nos valores.
monoinc Verifica se houve um aumento monótono nos valores.
nodata Verifica se nenhum dado foi recebido.
percentile O percentil P de um período, em que P (porcentagem) é especificado pelo terceiro parâmetro.
rate A taxa média por segundo do aumento de um contador que cresce monotonicamente dentro do período definido.
xmlxpath Retorna uma matriz com os resultados da consulta XML XPath.
Parâmetros comuns
  • /host/key é um primeiro parâmetro obrigatório comum para as funções que fazem referência ao histórico do item do host.
  • (sec|#num)<:time shift> é um segundo parâmetro comum para as funções que fazem referência ao histórico do item do host, em que:
    • sec - período máximo de avaliação em segundos (podem ser usados sufixos de tempo), ou
    • #num - intervalo máximo de avaliação em valores coletados mais recentes (se precedido por um símbolo de cerquilha).
    • time shift (opcional) permite mover o ponto de avaliação para trás no tempo. Consulte mais detalhes sobre como especificar o deslocamento de tempo.

Detalhes da função

Algumas observações gerais sobre os parâmetros da função:

  • Os parâmetros da função são separados por vírgula
  • Parâmetros opcionais da função (ou partes do parâmetro) são indicados por < >
  • Parâmetros específicos da função são descritos com cada função
  • Os parâmetros /host/key e (sec|#num)<:deslocamento de tempo> nunca devem ser colocados entre aspas
change(/host/key)

A quantidade de diferença entre o valor anterior e o mais recente.
Tipos de valores suportados: Float, Integer, String, Text, Log.
Para strings retorna: 0 - valores são iguais; 1 - valores diferem.

Parâmetros: veja parâmetros comuns.

Comentários:

  • A diferença numérica será calculada, conforme visto nestes valores de exemplo recebidos ('valor anterior' e 'valor mais recente' = diferença):
    '1' e '5' = +4
    '3' e '1' = -2
    '0' e '-2.5' = -2.5.
  • Em triggers, útil para capturar picos repentinos (ou quedas), reinicializações de contadores, transições de estado numérico.
  • Veja também: abs para comparação.

Exemplos:

change(/host/system.uptime)<0 #a alteração no tempo de atividade do sistema foi negativa desde o último valor (indicando uma reinicialização)
change(/host/system.cpu.load[all,avg1])>2 #a carga da CPU (por um minuto) aumentou em mais de 2 desde o último valor
change(/host/vfs.fs.size[/,free])<-1G #o espaço livre em disco caiu mais de 1 GB entre as verificações
changecount(/host/key,(sec|#num)<:time shift>,<mode>)

O número de alterações entre valores adjacentes dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer, String, Text, Log.

Parâmetros:

  • Veja parâmetros comuns
  • mode (deve estar entre aspas duplas) - valores possíveis: all - conta todas as alterações (padrão); dec - conta apenas as diminuições; inc - conta apenas os aumentos

Comentários:

  • Para tipos de valor não numéricos, o parâmetro mode é ignorado.
  • Em triggers, útil para capturar mudanças frequentes de estado (indicando instabilidade).

Exemplos:

changecount(/host/icmpping,10m)>5 #o status do ping mudou mais de 5 vezes em 10 minutos
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #o estado operacional da eth0 mudou mais de 5 vezes em uma hora
changecount(/host/proc.num[httpd],15m)>10 #o número de processos httpd mudou mais de 10 vezes em 15 minutos
changecount(/host/key,#10,"inc") #o número de aumentos de valor (em relação ao valor adjacente) entre os últimos 10 valores
changecount(/host/key,24h,"dec") #o número de diminuições de valor (em relação ao valor adjacente) nas últimas 24 horas até agora
count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

O número de valores dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer, String, Text, Log.

Parâmetros:

  • Veja parâmetros comuns
  • operator (deve estar entre aspas duplas) Operadores supported:
    eq - igual (padrão para integer, float)
    ne - diferente
    gt - maior
    ge - maior ou igual
    lt - menor
    le - menor ou igual
    like (padrão para string, text, log) - corresponde se contiver o padrão (sensível a maiúsculas e minúsculas)
    bitand - AND bit a bit
    regexp - corresponde, com sensibilidade a maiúsculas e minúsculas, à expressão regular fornecida em pattern
    iregexp - corresponde, sem sensibilidade a maiúsculas e minúsculas, à expressão regular fornecida em pattern
  • pattern - o padrão necessário (argumentos de string devem estar entre aspas duplas)

Comentários:

  • Itens Float correspondem com a precisão de 2.22e-16.
  • like não é suportado como operador para valores integer.
  • like e bitand não são suportados como operadores para valores float.
  • Para valores string, text e log, apenas os operadores eq, ne, like, regexp e iregexp são suportados.
  • Com bitand como operador, o quarto parâmetro pattern pode ser especificado como dois números, separados por '/': number_to_compare_with/mask. count() calcula o "AND bit a bit" do valor e da mask e compara o resultado com number_to_compare_with. Se o resultado do "AND bit a bit" for igual a number_to_compare_with, o valor é contado.
    Se number_to_compare_with e mask forem iguais, apenas a mask precisa ser especificada (sem '/').
  • Com regexp ou iregexp como operador, o quarto parâmetro pattern pode ser uma expressão regular comum ou global (começando com '@'). No caso de expressões regulares globais, a sensibilidade a maiúsculas e minúsculas é herdada das configurações da expressão regular global. Para fins de correspondência de regexp, valores float sempre serão representados com 4 dígitos decimais após '.'. Observe também que, para números grandes, a diferença entre a representação decimal (armazenada no banco de dados) e a binária (usada pelo Zabbix server) pode afetar o 4º dígito decimal.

Exemplos:

count(/host/icmpping,30m,,"0")>5 #ping falhou mais de 5 vezes em 30 minutos
count(/host/key,10m,"like","error") #o número de valores dos últimos 10 minutos até agora que contêm 'error'
count(/host/key,10m,,12) #o número de valores dos últimos 10 minutos até agora que são iguais a '12'
count(/host/key,10m,"gt",12) #o número de valores dos últimos 10 minutos até agora que são maiores que '12'
count(/host/key,#10,"gt",12) #o número de valores dentro dos últimos 10 valores até agora que são maiores que '12'
count(/host/key,10m:now-1d,"gt",12) #o número de valores entre 24 horas e 10 minutos e 24 horas atrás a partir de agora que eram maiores que '12'
count(/host/key,10m,"bitand","6/7") #o número de valores dos últimos 10 minutos até agora que têm '110' (em binário) nos 3 bits menos significativos
count(/host/key,10m:now-1d) #o número de valores entre 24 horas e 10 minutos e 24 horas atrás a partir de agora
countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

O número de valores únicos dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer, String, Text, Log.

Parâmetros:

  • Veja parâmetros comuns
  • operator (deve estar entre aspas duplas). operators suportados:
    eq - igual (padrão para integer, float)
    ne - diferente
    gt - maior
    ge - maior ou igual
    lt - menor
    le - menor ou igual
    like (padrão para string, text, log) - corresponde se contiver o padrão (sensível a maiúsculas e minúsculas)
    bitand - AND bit a bit
    regexp - correspondência sensível a maiúsculas e minúsculas da expressão regular fornecida em pattern
    iregexp - correspondência insensível a maiúsculas e minúsculas da expressão regular fornecida em pattern
  • pattern - o padrão necessário (argumentos de string devem estar entre aspas duplas)

Comentários:

  • Itens Float correspondem com a precisão de 2.22e-16.
  • like não é suportado como operator para valores integer.
  • like e bitand não são suportados como operators para valores float.
  • Para valores string, text e log, apenas os operators eq, ne, like, regexp e iregexp são suportados.
  • Com bitand como operator, o quarto parâmetro pattern pode ser especificado como dois números, separados por '/': number_to_compare_with/mask. countunique() calcula "AND bit a bit" do valor e da mask e compara o resultado com number_to_compare_with. Se o resultado do "AND bit a bit" for igual a number_to_compare_with, o valor é contado.
    Se number_to_compare_with e mask forem iguais, apenas a mask precisa ser especificada (sem '/').
  • Com regexp ou iregexp como operator, o quarto parâmetro pattern pode ser uma expressão regular comum ou global (começando com '@'). No caso de expressões regulares globais, a sensibilidade a maiúsculas e minúsculas é herdada das configurações da expressão regular global. Para fins de correspondência de regexp, valores float sempre serão representados com 4 dígitos decimais após '.'. Observe também que, para números grandes, a diferença entre a representação decimal (armazenada no banco de dados) e binária (usada pelo Zabbix server) pode afetar o 4º dígito decimal.

Exemplos:

countunique(/host/key,10m) #o número de valores únicos nos últimos 10 minutos até agora
countunique(/host/key,10m,"like","error") #o número de valores únicos nos últimos 10 minutos até agora que contêm 'error'
countunique(/host/key,10m,,12) #o número de valores únicos nos últimos 10 minutos até agora que são iguais a '12'
countunique(/host/key,10m,"gt",12) #o número de valores únicos nos últimos 10 minutos até agora que são maiores que '12'
countunique(/host/key,#10,"gt",12) #o número de valores únicos nos últimos 10 valores até agora que são maiores que '12'
countunique(/host/key,10m:now-1d,"gt",12) #o número de valores únicos entre 24 horas e 10 minutos e 24 horas atrás a partir de agora que eram maiores que '12'
countunique(/host/key,10m,"bitand","6/7") #o número de valores únicos nos últimos 10 minutos até agora que têm '110' (em binário) nos 3 bits menos significativos
countunique(/host/key,10m:now-1d) #o número de valores únicos entre 24 horas e 10 minutos e 24 horas atrás a partir de agora
find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Encontra uma correspondência de valor dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer, String, Text, Log.
Retorna: 1 - encontrado; 0 - caso contrário.

Parâmetros:

  • Veja parâmetros comuns
  • sec ou #num (opcional) - usa o valor mais recente por padrão, se não for especificado
  • operator (deve estar entre aspas duplas) operators suportados:
    eq - igual (padrão para integer, float)
    ne - diferente
    gt - maior
    ge - maior ou igual
    lt - menor
    le - menor ou igual
    like (padrão para string, text, log) - corresponde se contiver a string fornecida em pattern (sensível a maiúsculas e minúsculas)
    bitand - AND bit a bit
    regexp - correspondência sensível a maiúsculas e minúsculas com a expressão regular fornecida em pattern
    iregexp - correspondência insensível a maiúsculas e minúsculas com a expressão regular fornecida em pattern
  • pattern - o padrão necessário (argumentos de string devem estar entre aspas duplas); expressão regular Perl Compatible Regular Expression (PCRE) se operator for regexp, iregexp

Comentários:

  • Se mais de um valor for processado, '1' será retornado se houver pelo menos um valor correspondente.
  • like não é suportado como operator para valores integer.
  • like e bitand não são suportados como operators para valores float.
  • Para valores string, text e log, apenas os operators eq, ne, like, regexp e iregexp são suportados.
  • Com regexp ou iregexp como operator, o quarto parâmetro pattern pode ser uma expressão regular comum ou global (começando com '@').
    No caso de expressões regulares globais, a sensibilidade a maiúsculas e minúsculas é herdada das configurações da expressão regular global.

Exemplos:

find(/host/key,10m,"like","error") #encontra um valor que contém 'error' nos últimos 10 minutos até agora
find(/host/agent.version,,"like","beta")=1 #o Zabbix agent tem versão beta, deve ser atualizado
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #foi encontrado um erro interno do web server
first(/host/key,sec<:time shift>)

O primeiro (mais antigo) valor dentro do período de avaliação definido.
Tipos de valores suportados: Float, Integer, String, Text, Log.

Parâmetros:

Veja também last().

Exemplo:

first(/host/key,1h) #recupera o valor mais antigo dentro da última hora até agora
firstclock(/host/key,sec<:time shift>)

O carimbo de data/hora do valor mais antigo dentro do período de avaliação definido.
Tipos de valores suportados: Float, Integer, String, Text, Log.

Parâmetros:

A função falha com um erro se nenhum dado tiver sido coletado no período fornecido.

Veja também lastclock().

Exemplos:

firstclock(/host/key,1h) #recupera o carimbo de data/hora do valor mais antigo dentro da última hora
firstclock(/host/key,1h:now-24h) #recupera o carimbo de data/hora do valor mais antigo dentro da última hora de um dia atrás
fuzzytime(/host/key,sec)

Verifica quanto o tempo do agent passivo difere do tempo do server/proxy do Zabbix.
Tipos de valor suportados: Float, Integer.
Retorna: 1 - a diferença entre o valor do item passivo (como timestamp) e o timestamp do server/proxy do Zabbix (o relógio da coleta do valor) é menor ou igual a sec segundos; 0 - caso contrário.

Parâmetros:

Comentários:

  • Normalmente usado com o item 'system.localtime' para verificar se a hora local está sincronizada com a hora local do server do Zabbix. Observe que 'system.localtime' deve ser configurado como uma verificação passiva para o agent do Zabbix; no Zabbix agent 2, ele pode ser configurado como uma verificação ativa.
  • Também pode ser usado com a chave vfs.file.time[/path/file,modify] para verificar se o arquivo não recebe atualizações há muito tempo.
  • Esta função não é recomendada para uso em expressões complexas de trigger (com vários items envolvidos), porque pode causar resultados inesperados (a diferença de tempo será medida com a métrica mais recente), por exemplo, em fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0.

Exemplos:

fuzzytime(/host/system.localtime,5m)=0 #a hora local do cliente difere da hora do server/proxy do Zabbix em mais de 5 minutos
fuzzytime(/host/system.localtime,5m)=0 and nodata(/host/system.localtime,10m)=0 #a hora local do cliente difere da hora do server/proxy do Zabbix em mais de 5 minutos (garantindo ao mesmo tempo que o item não parou de reportar dados)
jsonpath(/host/key,(sec|#num)<:time shift>,pattern)

Retorna uma matriz de resultados de consultas JSONPath.
Tipos de valor compatíveis: String, Text, Log.

Parâmetros:

  • Consulte os parâmetros comuns
  • pattern - o padrão obrigatório (os argumentos de string devem estar entre aspas duplas)

Comentários:

  • Esta função é usada com funções de agregação.
  • Uma consulta JSONPath é executada em cada valor de histórico selecionado; cada resultado bem-sucedido e não vazio da consulta é adicionado à matriz. Se o resultado de uma consulta para um único valor de histórico contiver várias correspondências, cada correspondência será adicionada à matriz separadamente.
  • A função falha com um erro se:
    • O formato de pattern for inválido.
    • Algum dos valores de histórico contiver JSON inválido ou a consulta JSONPath falhar para esse valor.
  • A função retorna uma matriz vazia se:
    • Nenhum valor de histórico tiver sido selecionado.
    • Todos os valores de histórico selecionados contiverem JSON inválido.

Exemplo:

max(jsonpath(/host/http.response,5m,"$.response_time")) > 500
last(/host/key,<#num<:time shift>>)

O valor mais recente.
Tipos de valores suportados: Float, Integer, String, Text, Log.

Parâmetros:

Comentários:

  • Observe que um período de tempo com hash (#N) funciona de forma diferente aqui do que em muitas outras funções. Por exemplo: last(/host/key) é sempre igual a last(/host/key,#1); last(/host/key,#3) - o terceiro valor mais recente (não os três valores mais recentes).
  • O Zabbix não garante a ordem exata dos valores se mais de dois valores existirem dentro de um segundo no histórico.
  • Veja também first().

Exemplos:

last(/host/key) #recupera o último valor
last(/host/key,#2) #recupera o valor anterior
last(/host/key,#1)<>last(/host/key,#2) #os dois últimos valores são diferentes
lastclock(/host/key,<#num<:time shift>>)

O carimbo de data/hora do Nº valor mais recente dentro do período de avaliação definido.
Tipos de valores suportados: Float, Integer, String, Text, Log.

Parâmetros:

A função falha com um erro se nenhum dado tiver sido coletado no período fornecido ou se nenhum valor Nth tiver sido coletado.

Veja também firstclock().

Exemplos:

lastclock(/host/key) #recupera o carimbo de data/hora do valor mais recente
lastclock(/host/key,#2) #recupera o carimbo de data/hora do 2º valor mais recente
now()-lastclock(/host/heartbeat.item)>300 #mais de 5 minutos se passaram desde que o item de heartbeat foi atualizado
lastclock(/host/system.cpu.load[all,avg1])-lastclock(/host/system.cpu.load[all,avg1],#2)>300 #o intervalo de atualização entre os dois últimos valores está acima de 5 minutos
((now()-lastclock(/host/system.cpu.load[all,avg1])<120 and last(/host/system.cpu.load[all,avg1])>5)) #o valor da CPU está alto e o valor é recente (menos de 2 minutos)
logeventid(/host/key,<#num<:time shift>>,<pattern>)

Verifica se o ID do evento da última entrada de log corresponde a uma expressão regular.
Tipos de valor suportados: Log.
Retorna: 0 - não corresponde; 1 - corresponde.

Parâmetros:

  • Veja parâmetros comuns
  • #num (opcional) - o N-ésimo valor mais recente
  • pattern (opcional) - a expressão regular que descreve o padrão necessário, no estilo Perl Compatible Regular Expression (PCRE) (os argumentos de string devem estar entre aspas duplas)

Exemplos:

logeventid(/host/eventlog[Security],,"^4625$")=1 #uma entrada de log com ID correspondente a "4625" (autenticação falhou) encontrada
logeventid(/host/eventlog[System],,"^(6008|41)$")=1 #uma entrada de log com ID correspondente a "6008" ou "41" encontrada
logseverity(/host/key,<#num<:time shift>>)

Severidade do log da última entrada de log.
Tipos de valor suportados: Log.
Retorna: 0 - severidade padrão; N - severidade (inteiro, útil para logs de eventos do Windows: 1 - Informação, 2 - Aviso, 4 - Erro, 7 - Falha de Auditoria, 8 - Sucesso de Auditoria, 9 - Crítico, 10 - Verboso).

Parâmetros:

O Zabbix obtém a severidade do log a partir do campo Information do log de eventos do Windows.

Exemplos:

logseverity(/host/log[/var/log/syslog],10m)>3 #uma entrada de log com severidade acima de "3" encontrada
logseverity(/host/eventlog[System],10m)=4 #uma entrada de log com severidade igual a "Erro" encontrada
logsource(/host/key,<#num<:time shift>>,<pattern>)

Verifica se a origem do último registro de log corresponde a uma expressão regular.
Tipos de valor suportados: Log.
Retorna: 0 - não corresponde; 1 - corresponde.

Parâmetros:

  • Veja parâmetros comuns
  • #num (opcional) - o N-ésimo valor mais recente
  • pattern (opcional) - a expressão regular que descreve o padrão necessário, no estilo Perl Compatible Regular Expression (PCRE) (os argumentos de string devem estar entre aspas duplas)

Normalmente usado para logs de eventos do Windows.

Exemplos:

logsource(/host/eventlog[Application],,"MSSQLSERVER")=1 #uma entrada de log com origem correspondente a "MSSQLSERVER" encontrada
logsource(/host/eventlog[System],,"Service Control Manager")=1 #uma entrada de log com origem correspondente a "Service Control Manager" encontrada
logsource(/host/eventlog[System],,"Service Control Manager")=1 and logeventid(/host/eventlog[System],,"^7031$")=1 #uma entrada de log com origem correspondente a "Service Control Manager" e ID de evento correspondente a "7031" encontrada
logtimestamp(/host/key,<#num<:time shift>>)

O timestamp da mensagem de log do N-ésimo valor de item de log mais recente.
Tipos de valor suportados: Log.

Parâmetros:

Comentários:

  • O cálculo do deslocamento de tempo é baseado no clock do valor do item, não no timestamp da mensagem de log;
  • A função falha com erro se:
    • um item de tipo diferente de log for recebido;
    • nenhum dado tiver sido coletado no período especificado;
    • nenhum N-ésimo valor tiver sido coletado;
    • a mensagem de log não contiver um valor de timestamp.

Exemplos:

logtimestamp(/host/key) #recupera o timestamp da mensagem de log mais recente
logtimestamp(/host/key,#2) #recupera o timestamp da 2ª mensagem de log mais recente
logtimestamp(/host/key,#3:now-1d) #recupera o timestamp da 3ª mensagem de log mais recente de um dia atrás
monodec(/host/key,(sec|#num)<:time shift>,<mode>)

Verifica se houve uma diminuição monótona nos valores.
Tipos de valores suportados: Integer.
Retorna: 1 - se todos os elementos no período de tempo diminuíram continuamente; 0 - caso contrário.

Parâmetros:

  • Veja parâmetros comuns
  • mode (deve estar entre aspas duplas) - weak (todo valor é menor ou igual ao anterior; padrão) ou strict (todo valor diminuiu)

Exemplos:

monodec(/host/system.swap.size[all,free],60s) + monodec(/host2/system.swap.size[all,free],60s) + monodec(/host3/system.swap.size[all,free],60s) #calcula em quantos hosts houve uma diminuição no espaço de swap livre
monodec(/host/proc.num[nginx],10m,"strict")=1 #o número de processos nginx diminuiu monotonamente em 10 minutos
monoinc(/host/key,(sec|#num)<:time shift>,<mode>)

Verifica se houve um aumento monótono nos valores.
Tipos de valores suportados: Integer.
Retorna: 1 - se todos os elementos no período de tempo aumentarem continuamente; 0 - caso contrário.

Parâmetros:

  • Veja parâmetros comuns
  • mode (deve estar entre aspas duplas) - weak (todo valor é maior ou igual ao anterior; padrão) ou strict (todo valor aumentou)

Exemplos:

monoinc(/host/system.localtime,#3,"strict")=0 #o tempo local do sistema não aumentou consistentemente
monoinc(/host/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #dispara se a contagem de arquivos estagnar por 24 horas (espera-se que cresça)
nodata(/host/key,sec,<mode>)

Verifica se nenhum dado foi recebido.
Tipos de valor compatíveis: Integer, Float, Character, Text, Log.
Retorna: 1 - se nenhum dado tiver sido recebido durante o período definido; 0 - caso contrário.

Parâmetros:

  • Consulte os parâmetros comuns
  • sec - o período não deve ser inferior a 30 segundos, pois o processo history syncer calcula esta função somente a cada 30 segundos; nodata(/host/key,0) não é permitido
  • mode - se definido como strict (entre aspas duplas), esta função não será sensível à disponibilidade do proxy (consulte os comentários para obter detalhes)

Comentários:

  • por padrão, os triggers 'nodata' monitorados pelo proxy são sensíveis à disponibilidade do proxy - se o proxy ficar indisponível, os triggers 'nodata' não serão acionados imediatamente após o restabelecimento da conexão, mas ignorarão os dados referentes ao período de atraso. Observe que, para proxies passivos, a supressão será ativada se a conexão for restabelecida após mais de 15 segundos e não menos de 2 segundos depois. Para proxies ativos, a supressão será ativada se a conexão for restabelecida após mais de 15 segundos. Para desativar a sensibilidade à disponibilidade do proxy, use o terceiro parâmetro, por exemplo: nodata(/host/key,5m,"strict"); nesse caso, a função será acionada assim que o período de avaliação (cinco minutos) sem dados tiver transcorrido.
  • Esta função exibirá um erro se, dentro do período do primeiro parâmetro:
    - não houver dados e o Zabbix server tiver sido reiniciado
    - não houver dados e a manutenção tiver sido concluída
    - não houver dados e o item tiver sido adicionado ou reativado.
  • Os erros são exibidos na coluna Info da lista de triggers.
  • Esta função pode não funcionar corretamente se houver diferenças de horário entre o Zabbix server, o proxy e o agent. Consulte também: Requisito de sincronização de horário.

Exemplo:

nodata(/host/agent.ping,5m)=1 #trigger se nenhum dado tiver sido recebido do Zabbix agent por 5 minutos
percentile(/host/key,(sec|#num)<:time shift>,percentage)

O percentil P de um período, onde P (percentual) é especificado pelo terceiro parâmetro.
Tipos de valor suportados: Float, Integer.

Parâmetros:

  • Veja parâmetros comuns
  • percentage - um número de ponto flutuante entre 0 e 100 (inclusive) com até 4 dígitos após o ponto decimal

Exemplos:

percentile(/host/net.if.in[eth0,bytes],1h,95)>1000000 #o percentil 95 da entrada de rede (bytes/seg) em 1 hora ultrapassou um limite (por exemplo, 1 MB/s)
percentile(/host/system.cpu.util,5m,95)>80 #o percentil 95 da porcentagem de utilização da CPU no tempo de usuário ultrapassou 80
percentile(/host/icmppingsec[192.168.0.2],15m,95)>0.15 #a maioria das medições de latência está abaixo de 150 ms, mas a cauda superior (5% superiores) implica em atrasos regulares
percentile(/host/net.if.in[eth0,bytes],1h,50) #calcula o percentil 50 (o valor mediano) do tráfego de rede de entrada por uma hora; isso gera um resultado diferente de avg() (a média), pois percentile não considera valores discrepantes
(percentile(/host/net.if.in[eth0,bytes],1h,50)+percentile(/host/net.if.in[eth0,bytes],1h,51))/2 #calcula o valor mediano preciso com um número par de valores por uma hora
rate(/host/key,sec<:time shift>)

O aumento médio por segundo em um contador monotonicamente crescente dentro do período de tempo definido.
Tipos de valores suportados: Float, Integer.

Parâmetros:

Corresponde funcionalmente ao 'rate' do PromQL.

Exemplos:

rate(/host/key,30s) #se o aumento monotônico em 30 segundos for 20, esta função retorna 0,67.
rate(/host/net.if.in[eth0,bytes],5m)>500000 #a taxa de tráfego de entrada na interface eth0 excedeu 500 KB/s nos últimos 5 minutos
rate(/host/app.requests.count,1m)>100 #o contador de requisições aumentou em >100 requisições por segundo no último minuto
xmlxpath(/host/key,(sec|#num)<:time shift>,pattern)

Retorna uma matriz de resultados de consultas XPath XML.
Tipos de valor compatíveis: String, Text, Log.

Parâmetros:

  • Consulte os parâmetros comuns
  • pattern - o padrão obrigatório (os argumentos de string devem estar entre aspas duplas)

Comentários:

  • Esta função é usada com funções de agregação.
  • Uma consulta XPath XML é executada em cada valor de histórico selecionado; cada resultado bem-sucedido e não vazio é adicionado à matriz. Se o resultado da consulta para um único valor de histórico contiver várias correspondências, cada correspondência será adicionada à matriz separadamente.
  • A função falha com um erro se:
    • O formato de pattern for inválido.
    • O Zabbix tiver sido compilado sem suporte a XML.
    • Algum dos valores de histórico contiver XML inválido ou a consulta XPath falhar para esse valor.
  • A função retornará uma matriz vazia se:
    • Nenhum valor de histórico tiver sido selecionado.
    • Todos os valores de histórico selecionados contiverem XML inválido.

Exemplo:

max(xmlxpath(/host/http.response,5m,"/response/response_time")) > 500

Veja todas as funções suportadas.