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 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 ú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.
fuzzytime Verifica quanto o tempo do agent passivo difere do tempo do Zabbix server/proxy.
last O valor mais recente.
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.
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 primeiro parâmetro obrigatório comum para as funções referenciando o histórico de itens do host
  • (sec|#num)<:time shift> é um segundo parâmetro comum para o funções que fazem referência ao histórico do item do host, onde:
    • sec - máximo avaliação period em segundos (tempo sufixos podem ser usados), ou
    • #num - máximo avaliação range na última valores coletados (se precedidos por uma marca de hash)
    • time shift (opcional) permite mover o ponto de avaliação volta no tempo. Ver mais detalhes](/manual/config/triggers/expression#time_shift) em especificando a mudança de horário.

Detalhes da função

Algumas observações gerais sobre os parâmetros das funções:

  • Os parâmetros das funções são separados por vírgula
  • Parâmetros opcionais das funções (ou partes do parâmetro) são indicados por < >
  • Parâmetros específicos das funções são descritos em 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 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
  • 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 valores 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

Para tipos de valores 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:

  • Os items 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. 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 diferenciação entre maiúsculas e minúsculas é herdada das configurações da expressão regular global. Para fins de correspondência regexp, os valores float serão sempre 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 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. 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 foram 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) - por padrão, utiliza o valor mais recente se não 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 (diferencia maiúsculas de minúsculas)
    bitand - AND bit a bit
    regexp - correspondência sensível a maiúsculas/minúsculas da expressão regular fornecida em pattern
    iregexp - correspondência insensível a maiúsculas/minúsculas 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 o 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 diferenciação de maiúsculas/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
fuzzytime(/host/key,sec)

Verifica quanto o tempo do agent passivo difere do tempo do server/proxy Zabbix.
Tipos de valores suportados: Float, Integer.
Retorna: 1 - a diferença entre o valor do item passivo (como timestamp) e o timestamp do server/proxy Zabbix (o relógio da coleta de 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 horário local está sincronizado com o horário local do server Zabbix. Note 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 com 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 mais recente e anterior diferem
logeventid(/host/key,<#num<:time shift>>,<pattern>)

Verifica se o ID do evento da última entrada do 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) (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 - Auditoria de Falha, 8 - Auditoria de Sucesso, 9 - Crítico, 10 - Detalhado).

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")
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).

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 diminuição no espaço livre de swap
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).

Exemplo:

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

Verifica se não há dados recebidos.
Tipos de valores 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 de 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 ficar indisponível, os triggers 'nodata' não serão disparados imediatamente após uma conexão restaurada, mas pularão os dados para o 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 na expressão sozinha; 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, consulte 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 valores 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.