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.
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 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 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 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 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 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 do tipo 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 sensibilidade a maiúsculas/minúsculas é herdada das configurações da expressão regular global. Para fins de correspondência regexp, os 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 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 (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).

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 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 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 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 (iniciando com '@'). No caso de expressões regulares globais, a sensibilidade a 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
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 há um dia atrás
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. Observe que 'system.localtime' deve ser configurado como uma verificação passiva.
  • 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 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().

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 timestamp 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 foi coletado no período dado ou se nenhum valor N-ésimo foi coletado.

Veja também firstclock().

Exemplo:

lastclock(/host/key) #recupera o timestamp do valor mais recente
       lastclock(/host/key,#2) #recupera o timestamp do 2º valor mais recente
       lastclock(/host/key,#3:now-1d) #recupera o timestamp 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 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>>)

Gravidade do log da última entrada de log.
Tipos de valor suportados: Log.
Retorna: 0 - gravidade padrão; N - gravidade (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 - Detalhado).

Parâmetros:

O Zabbix obtém a gravidade 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:

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

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 N-ésimo valor 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 segunda última mensagem de log
       logtimestamp(/host/key,#3:now-1d) #recupera o timestamp da terceira ú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: 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 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 (todo valor é maior ou igual ao anterior; padrão) ou strict (todo valor aumentou).

Exemplo:

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

Check for no data received.
Supported value types: Integer, Float, Character, Text, Log.
Returns: 1 - if no data received during the defined period of time; 0 - otherwise.

Parameters:

  • See common parameters;
  • sec - the period should not be less than 30 seconds because the history syncer process calculates this function only every 30 seconds; nodata(/host/key,0) is disallowed.
  • mode - if set to strict (double-quoted), this function will be insensitive to proxy availability (see comments for details).

Comments:

  • the 'nodata' triggers monitored by proxy are, by default, sensitive to proxy availability - if proxy becomes unavailable, the 'nodata' triggers will not fire immediately after a restored connection, but will skip the data for the delayed period. Note that for passive proxies suppression is activated if connection is restored more than 15 seconds and no less than 2 seconds later. For active proxies suppression is activated if connection is restored more than 15 seconds later. To turn off sensitiveness to proxy availability, use the third parameter, e.g.: nodata(/host/key,5m,"strict"); in this case the function will fire as soon as the evaluation period (five minutes) without data has past.
  • This function will display an error if, within the period of the 1st parameter:
    - there's no data and Zabbix server was restarted
    - there's no data and maintenance was completed
    - there's no data and the item was added or re-enabled
  • Errors are displayed in the Info column in trigger configuration;
  • This function may not work properly if there are time differences between Zabbix server, proxy and agent. See also: Time synchronization requirement;
  • nodata() function cannot be used in the expression by itself; at least one function from another group, referencing the host item, must be included in the expression (except date and time functions). For detailed information on how the nodata() function works within expressions, see Calculation time.
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 valores 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.