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 parâmetro obrigatório comum para as funções que referenciam o histórico de item do host(sec|#num)<:deslocamento de tempo>é um parâmetro comum para as funções que referenciam o histórico de 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/keye(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, como 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 (relativo ao valor adjacente) entre os últimos 10 valores
changecount(/host/key,24h,"dec") #o número de diminuições de valor (relativo 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)
operatorssuportados:
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 - corresponde à expressão regular fornecida empattern(case-sensitive)
iregexp - corresponde à expressão regular fornecida empattern(case-insensitive) - 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 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
patternpode 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
patternpode 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 valor suportados: Float, Integer, String, Text, Log.
Parâmetros:
- Veja parâmetros comuns
- operator (deve ser colocado entre aspas duplas).
operatorssuportados:
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 empattern
iregexp - correspondência case-insensitive da expressão regular fornecida empattern - 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
patternpode 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
patternpode 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 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>)
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)
operatorssuportados:
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 empattern(case-sensitive)
bitand - AND bit a bit
regexp - correspondência case-sensitive da expressão regular fornecida empattern
iregexp - correspondência case-insensitive da expressão regular fornecida empattern - pattern - o padrão necessário (argumentos de string devem estar entre aspas duplas); expressão regular Perl Compatible Regular Expression (PCRE) se
operatorfor 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
patternpode 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 parâmetros comuns
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:
- Veja parâmetros comuns.
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 Zabbix server/proxy.
Tipos de valor 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:
- Veja parâmetros comuns.
Comentários:
- Normalmente usado com o item 'system.localtime' para verificar se o horário local está sincronizado com o horário local do Zabbix server. Note que 'system.localtime' deve ser configurado como uma verificação passiva para o Zabbix agent; no Zabbix agent 2 pode ser configurado como uma verificação ativa.
- 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 items 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<br><br>
last(/host/key,<#num<:time shift>>)
O valor mais recente.
Tipos de valores suportados: Float, Integer, String, Text, Log.
Parâmetros:
- Veja parâmetros comuns
- #num (opcional) - o N-ésimo valor mais recente
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 alast(/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:
- Veja parâmetros comuns;
- #num (opcional) - o N-ésimo valor mais recente.
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:
- Veja parâmetros comuns;
- #num (opcional) - o N-ésimo valor mais recente.
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 log 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º valor mais recente
- pattern (opcional) - a expressão regular que descreve o padrão necessário, estilo Expressão Regular Compatível com Perl (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:
- Veja parâmetros comuns;
- #num (opcional) - o N-ésimo valor mais recente.
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 ser colocado 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 espaço de 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 tem aumentado 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 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 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 reativado. - 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.
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:
- Veja parâmetros comuns
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.