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

4 Funções de histórico

Todas as funções listadas aqui são suportadas em:

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

Função Descrição
change A quantidade de diferença entre o valor anterior e o mais recente.
changecount O número de mudanças 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 únicos dentro do período de avaliação definido.
find Encontra uma correspondência de valor dentro do período de avaliação definido.
first O primeiro (mais antigo) valor dentro do período de avaliação definido.
firstclock O timestamp do primeiro (mais antigo) valor dentro do período de avaliação definido.
fuzzytime Verifica quanto o tempo do agent passivo difere do tempo do Zabbix server/proxy.
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 de item de log mais recente.
monodec Verifica se houve uma diminuição monótona nos valores.
monoinc Verifica se houve um aumento monótono nos valores.
nodata Verifica se não há dados recebidos.
percentile O percentil P de um período, onde P (porcentagem) é especificado pelo terceiro parâmetro.
rate A taxa média por segundo do aumento em um contador monotonicamente crescente dentro do período de tempo definido.
Parâmetros comuns
  • /host/key é um parâmetro obrigatório comum para as funções que referenciam o histórico do item do host
  • (sec|#num)<:deslocamento de tempo> é um parâmetro comum para as funções que referenciam o histórico do item do host, onde:
    • sec - período de avaliação máximo em segundos (sufixos de tempo podem ser usados), ou
    • #num - intervalo de avaliação máximo nos últimos valores coletados (se precedido por uma cerquilha)
    • deslocamento de tempo (opcional) permite mover o ponto de avaliação para trás no tempo. Veja 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)<:time shift> 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 com estes 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
  • Veja também: abs para comparação.

Exemplos:

change(/host/key)>10
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 ser 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

Para tipos de valor não numéricos, o parâmetro mode é ignorado.

Exemplos:

changecount(/host/key,1w) #o número de alterações de valor na última semana até agora
       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 valores suportados: Float, Integer, String, Text, Log.

Parâmetros:

  • Veja parâmetros comuns;
  • operator (deve ser colocado 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 (case-sensitive)
    bitand - AND bit a bit
    regexp - correspondência case-sensitive da expressão regular fornecida em pattern
    iregexp - correspondência case-insensitive da expressão regular fornecida em pattern
  • pattern - o padrão necessário (argumentos de string devem ser colocados 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 regexp, valores float sempre serão representados com 4 dígitos decimais após o '.'. Observe também que, para números grandes, a diferença na representação decimal (armazenada no banco de dados) e binária (usada pelo Zabbix server) pode afetar o 4º dígito decimal.

Exemplos:

count(/host/key,10m) #os valores dos últimos 10 minutos até agora
       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 valores suportados: Float, Integer, String, Text, Log.

Parâmetros:

  • Veja parâmetros comuns;
  • operator (deve ser colocado 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 (case-sensitive)
    bitand - AND bit a bit
    regexp - correspondência case-sensitive da expressão regular fornecida em pattern
    iregexp - correspondência case-insensitive da expressão regular fornecida em pattern
  • pattern - o padrão necessário (argumentos de string devem ser colocados entre aspas duplas).

Comentários:

  • Itens do tipo float correspondem com a precisão de 2.22e-16;
  • like não é suportado como operador para valores inteiros;
  • 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. countunique() 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 regexp, valores float sempre serão representados com 4 dígitos decimais após o '.'. Observe também que, para números grandes, a diferença na 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 possuem '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>)

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

Parâmetros:

  • Veja parâmetros comuns;
  • sec ou #num (opcional) - por padrão, utiliza o valor mais recente se não especificado
  • operator (deve ser 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 (case-sensitive)
    bitand - AND bit a bit
    regexp - correspondência case-sensitive da expressão regular fornecida em pattern
    iregexp - correspondência case-insensitive da 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 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 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.

Exemplo:

find(/host/key,10m,"like","error") #encontra um valor que contenha 'error' nos últimos 10 minutos até agora
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().

Exemplo:

firstclock(/host/key,1h) #recupera o carimbo de data/hora do valor mais antigo dentro da última hora até agora
       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 Zabbix server/proxy.
Tipos de valores suportados: Float, Integer.
Retorna: 1 - a diferença entre o valor do item passivo (como timestamp) e o timestamp do Zabbix server/proxy (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 o tempo local está sincronizado com o tempo local do Zabbix server. Observe que 'system.localtime' deve ser configurado como um cheque passivo.
  • Também pode ser usado com a chave vfs.file.time[/path/file,modify] para verificar se o arquivo não recebeu atualizações por muito tempo;
  • Esta função não é recomendada para uso em expressões de trigger complexas (com múltiplos itens envolvidos), pois 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.

Exemplo:

fuzzytime(/host/key,60s)=0 #detecta um problema se a diferença de tempo for superior a 60 segundos

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 hashtag (#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().

Exemplo:

last(/host/key) #recupera o último valor
       last(/host/key,#2) #recupera o valor anterior
       last(/host/key,#1) <> last(/host/key,#2) #os valores atual e anterior diferem
lastclock(/host/key,<#num<:time shift>>)

O carimbo de data/hora do N-ésimo valor mais recente dentro do período de avaliação definido.
Tipos de valor 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 N-ésimo tiver sido coletado.

Veja também firstclock().

Exemplo:

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
       lastclock(/host/key,#3:now-1d) #recupera o carimbo de data/hora do 3º valor mais recente há um dia atrás
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 valores 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) (argumentos de string devem estar entre aspas duplas).
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 - Verbose).

Parâmetros:

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

logsource(/host/key,<#num<:time shift>>,<pattern>)

Verifica se a fonte 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:

Normalmente usado para logs de eventos do Windows.

Exemplo:

logsource(/host/key,,"VMware Server")
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 valor N-ésimo tiver sido coletado;
    • a mensagem de log não contiver um valor de timestamp.

Exemplo:

logtimestamp(/host/key) #recupera o timestamp da última mensagem de log
       logtimestamp(/host/key,#2) #recupera o timestamp da 2ª última mensagem de log
       logtimestamp(/host/key,#3:now-1d) #recupera o timestamp da 3ª última mensagem de log 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: Inteiro.
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 ser colocado entre aspas duplas) - weak (cada valor é menor ou igual ao anterior; padrão) ou strict (cada valor diminuiu).

Exemplo:

monodec(/Host1/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 tamanho do swap livre
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 (cada valor é maior ou igual ao anterior; padrão) ou strict (cada valor aumentou).

Exemplo:

monoinc(/Host1/system.localtime,#3,"strict")=0 #verifica se o tempo local do sistema está aumentando consistentemente
nodata(/host/key,sec,<mode>)

Verifica se não há dados recebidos.
Tipos de valor suportados: Integer, Float, Character, Text, Log.
Retorna: 1 - se nenhum dado for recebido durante o período de tempo definido; 0 - caso contrário.

Parâmetros:

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

Comentários:

  • os triggers 'nodata' monitorados por proxy são, por padrão, sensíveis à disponibilidade do proxy - se o proxy se tornar indisponível, os triggers 'nodata' não serão disparados imediatamente após a restauração da conexão, mas pularão os dados pelo período atrasado. Observe que, para proxies passivos, a supressão é ativada se a conexão for restaurada mais de 15 segundos e não menos de 2 segundos depois. Para proxies ativos, a supressão é ativada se a conexão for restaurada mais de 15 segundos depois. Para desativar a sensibilidade à disponibilidade do proxy, use o terceiro parâmetro, por exemplo: nodata(/host/key,5m,"strict"); neste caso, a função será disparada assim que o período de avaliação (cinco minutos) sem dados tiver passado.
  • Esta função exibirá um erro se, dentro do período do 1º parâmetro:
    - não houver dados e o Zabbix server for reiniciado
    - não houver dados e a manutenção for concluída
    - não houver dados e o item for adicionado ou reabilitado
  • Os erros são exibidos na coluna Info na configuração do trigger;
  • Esta função pode não funcionar corretamente se houver diferenças de horário entre o Zabbix server, proxy e agent. Veja também: Requisito de sincronização de horário;
  • a função nodata() não pode ser usada sozinha na expressão; pelo menos uma função de outro grupo, referenciando o item do host, deve ser incluída na expressão (exceto funções de data e hora). Para informações detalhadas sobre como a função nodata() funciona dentro das expressões, veja Tempo de cálculo.
percentile(/host/key,(sec|#num)<:time shift>,percentage)

O percentil P de um período, onde P (porcentagem) é 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.
rate(/host/key,sec<:time shift>)

A taxa média por segundo do aumento em um contador monotonicamente crescente dentro do período de tempo definido.
Tipos de valor suportados: Float, Integer.

Parâmetros:

Corresponde funcionalmente ao 'rate' do PromQL.

Exemplo:

rate(/host/key,30s) #se o aumento monotônico em 30 segundos for 20, esta função retornará 0,67.

Veja todas as funções suportadas.