1 Funções de trigger suportadas

Todas as funções de trigger suportadas em suas expressões são aqui listadas.

FUNÇÃO
Descrição Parâmetros Comentários
abschange
A diferença absoluta entre o último valor e seu antecessor. Tipo de valores suportados: float, int, str, text, log

Por exemplo:
(penúltimo valor/último valor=diferença)
1/5=4
3/1=2
0/-2.5=2.5
Observe que enquanto a função abschange retorna sempre valores positivos, a função change retornará valores positivos ou negativos.
Para textos retorna:
0 - valores iguais
1 - valores diferentes
avg (sec|#num,<time_shift>)
O valor médio de um item em um determinado período analisado. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#"). Ambas as análises começam do mais recente para o mais antigo.
time_shift (opcional) - o ponto inicial de análise é movido uma quantidade de segundos atrás no tempo.
Tipos de valores suportados: float, int

Exemplos:
=> avg(#5) → valor médio dos últimos cinco valores
=> avg(1h) → valor médio da última hora
=> avg(1h,1d) → valor médio da última hora, começando a analisar um dia antes.

O parâmetro time_shift é suportado desde o Zabbix 1.8.2. É muito útil quando se precisa comparar a média atual com a média de algum momento no passado.
band (sec|#num,mask,<time_shift>)
Valor da "verificação AND bit a bit" de um item e máscara. sec (ignorado) ou #num - o eNésimo valor mais recente
mask (obrigatório) - inteiro de 64-bit sem sinal (0 - 18446744073709551615)
time_shift (opcional) - consulte avg()
Tipos de valores suportados: int

Observe que #num funciona diferentemente das demais funções (consulte last()).

Emboara a comparação seja feita bit a bit, todos os valores devem ser informados e serão retornados no formato decimal. Por exemplo, a verificação do 3.o. bit é feita ao se comparar com o 4.o., não 100.

Exemplos:
=> band(,12)=8 ou band(,12)=4 → 3rd ou 4th bit definido, mas não ambos ao mesmo tempo
=> band(,20)=16 → 3rd bit não definido e 5th bit definido.

Esta função é suportada desde o Zabbix 2.2.0.
change
A diferença entre o último valor e seu antecessor. Tipos de valores suportados: float, int, str, text, log

Por exemplo:
(penúltimo valor/último valor=modificação)
1/5=+4
3/1=-2
0/-2.5=-2.5
Observe que enquanto a função abschange retorna sempre valores positivos, a função change retornará valores positivos ou negativos.
Para strings retorna:
0 - valores iguais
1 - valores diferentes.
count (sec|#num,<pattern>,<operator>,<time_shift>)
Quantidade de valores em determinado período analisado. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
pattern (opcional) - padrão desejado (itens inteiros - valor exato; itens numéricos (ponto flutuante) - com a margem de erro 0.000001)
operator (opcional)

Operadores suportados:
eq - igual
ne - diferente
gt - maior
ge - maior ou igual
lt - menor
le - menor ou igual
like - confere se contiver o valor (sensível ao caso)
band - verificação bit a bit AND (suportado desde o Zabbix 2.2.0).

Observe que os operadores:
eq (padrão), ne, gt, ge, lt, le, band são suportados para itens inteiros
eq (padrão), ne, gt, ge, lt, le são suportados para itens numéricos
like (padrão), eq, ne são suportados para itens string, texto e log

time_shift (opcional) - consulte avg()
Tipos de valores suportados: float, int, str, text, log

Com band como o terceiro parâmetro, o segundo deverá possuir dois números separados pelo caractere '/': número_a_comparar/máscara. A função count() calcula a "verificação bit a bit AND" do valor com sua máscara e compara o resultado com número_a_comparar. Se o resultado da "verificação bit a bit AND" for igual ao número_a_comparar, o valor é contado.
Se o número_a_comparar e a máscara forem iguais, apenas a máscara precisa ser definida (sem '/').

Exemplos:
=> count(10m) → quantidade de valores nos últimos 10 minutos
=> count(10m,12) → quantidade de valores nos últimos 10 minutos que são iguais a '12'
=> count(10m,12,"gt") → quantidade de valores nos últimos 10 minutos que são maiores que '12'
=> count(#10,12,"gt") → entre os 10 últimos valores, a quantidade que é maior que '12'
=> count(10m,12,"gt",1d) → quantidade de valores nos últimos 10 minutos, começando a análise 24 horas atrás, que são maiores que '12'
=> count(10m,6/7,"band") → quantidade de valores nos últimos 10 minutos tendo '110' (em binário) nos 3 bits mais significantes.
=> count(10m,,,1d) → quantidade de valores nos últimos 10 minutos, começando a análise 24 horas atrás

O parâmetro #num é suportado desde o Zabbix 1.6.1.
O parâmetro time_shift e os operadores de texto são suportados desde o Zabbix 1.8.2.
date
Data atual no formato YYYYMMDD. Tipos de valores suportados: qualquer tipo

Exemplo de valor retornado: 20150731
dayofmonth
Dia do mês no intervalo de 1 a 31. Tipos de valores suportados: qualquer tipo

Esta função é suportada desde o Zabbix 1.8.5.
dayofweek
Dia da semana no intervalo de 1 a 7 (Segunda - 1, Domingo - 7). Tipos de valores suportados: qualquer tipo
delta (sec|#num,<time_shift>)
Diferença entre o maior e o menor valor no período de análise ('max()' menos 'min()'). sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
time_shift (opcional) - consulte avg()
Tipos de valores suportados: float, int

O parâmetro time_shift é suportado desde o Zabbix 1.8.2.
diff
Verifica se o valor atual e seu predecessor são diferentes. Tipos de valores suportados: float, int, str, text, log

Retorna:
1 - o último valor e o penúltimo são diferentes
0 - são iguais
forecast (sec|#num,<time_shift>,time,<fit>,<mode>)
Future value, max, min, delta ou avg of the item. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
time_shift (opcional) - consulte avg()
time - horizonte de previsão em segundos
fit (opcional) - função usada para ajustar com o histórico de dados

Ajustes suportados:
linear - função linear
polynomialN - polinomial de grau N (1 <= N <= 6)
exponential - função expotencial
logarithmic - função logarítmica
power - função de força

Observe que:
linear é o padrão, polynomial1 é equivalente a linear

mode (opcional) - saída exigida

Modos suportados:
value - valor (padrão)
max - máximo
min - mínimo
delta - max-min
avg - média

Observe que:
value estima o valor do item no momento now + time
max, min, delta e avg investiga o valor do item para estimar no intervalo now e now + time
Tipos de valores suportados: float, int

Se o valor retornado é maior que 999999999999.9999 ou menor que -999999999999.9999, o valor será limitado a 999999999999.9999 ou -999999999999.9999 respectivamente.

Se tornará não suportada somente se for usada errada na expressão (tipo errado de item, parâmetros inválidos), qualquer outra forma retornará -1 em caso de erro.

Exemplos:
=> forecast(#10,,1h) → previsão do item após uma hora, analisando os últimos 10 valores
=> forecast(1h,,30m) → previsão do item após 30 minutos, analisando os dados da última hora
=> forecast(1h,1d,12h) → previsão do item após 12 horas baseado em uma hora de 1 dia atrás
=> forecast(1h,,10m,exponential) → previsão do valor do item após 10 minutos baseado nos dados da última hora em função expotencial
=> forecast(1h,,2h,polynomial3,max) → previsão se o valor máximo do item pode ser alcançado nas próximas 2 horas baseado nos dados da última hora e polinômio cúbico (terceiro grau)

Esta função é suportada desde o Zabbix 3.0.0.
Consulte informações adicionais em funções preditivas de trigger.
fuzzytime (sec)
Verifica se o horário local do dispositivo monitorado está sincronizado com o horário do Zabbix Server. sec - segundos Tipos de valores suportados: float, int

Retorna: '1' - o horário local do dispositivo não difere mais que N segundos, 0 - outro caso. Normalmente utilizado com system.localtime para verificar se o horário local está sincronizado com o horário do Zabbix Server.
iregexp (pattern,<sec|#num>)
Esta função é uma versão análoga da função regexp(), mas sem ser sensível ao caso. Consulte regexp() Tipos de valores suportados: str, log, text
last (sec|#num,<time_shift>)
O último valor. sec (ignorado) ou #num - o eNésimo valor mais recente
time_shift (opcional) - consulte avg()
Tipos de valores suportados: float, int, str, text, log

Observe que o parâmetro #num funciona diferente das demais funções.
Por exemplo:
last() é o mesmo que last(#1)
last(#3) - terceiro valor mais recente (não os três últimos valores)

O Zabbix não garante a ordem exata dos valores se existirem dois ou mais valores com o mesmo segundo no histórico.

O parâmetro #num é suportado desde o Zabbix 1.6.2.
O parâmetro time_shift é suportado desde o Zabbix 1.8.2.
logeventid (padrão)
Verifica se o ID de evento da última entrada de log combina com uma expressão regular. pattern - expressão regular descrevendo o padrão desejado, seguindo o padrão POSIX estendido . Tipos de valores suportados: log

Retorna:
0 - não encontrado
1 - encontrado

Esta função é suportada desde o Zabbix 1.8.5.
logseverity
Severidade da última entrada do log. Tipos de valores suportados: log

Retorna:
0 - severidade padrão
N - severidade (inteiro, útil para logs de eventos no Windows: 1 - Informação, 2 - Aviso, 4 - Erro, 7 - Falha na auditoria, 8 - Auditoria com sucesso, 9 - Crítico, 10 - depuração).
O Zabbix recupera a severidade do campo Information no log de eventos do Windows.
logsource (pattern)
Verfifica se a fonte do log da última entrada combina com determinado padrão. pattern - texto necessário Tipos de valores suportados: log

Retorna:
0 - não confere
1 - confere
Normalmente utilizado para o log de eventos do Windows. Exemplo, logsource("VMware Server").
max (sec|#num,<time_shift>)
Maior valor de um item em determinado período de análise. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
time_shift (opcional) - consulte avg()
Tipos de valores suportados: float, int

O parâmetro time_shift é suportado desde o Zabbix 1.8.2.
min (sec|#num,<time_shift>)
Menor valor de um item em determinado período de análise. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
time_shift (opcional) - consulte avg()
Tipos de valores suportados: float, int

O parâmetro time_shift é suportado desde o Zabbix 1.8.2.
nodata (sec)
Verifica se não foram recebidos dados nos últimos N segundos. sec - período de análise em segundos. O período não pode ser menor que 30 segundos. Tipos de valores suportados: qualquer tipo

Retorna:
1 - se não foi recebido nenhum dado durante o período definido
0 - outro caso

Observe que esta função irá retornar um erro se, durante o período definido em sec:
- não tiver dados, mas o servidor Zabbix tiver sido reiniciado
- não tiver dados e um período de manutenção tiver sido concluído
- não tiver dados e o item tiver sido adicionado ou reativado
now
Quantidade de segundos desde Epoch (00:00:00 UTC, 1 de Janeiro de 1970). Tipos de valores suportados: qualquer tipo
percentile (sec|#num,<time_shift>,percentage)
P-th percentil de um período, onde P (percentual) é definido pelo terceiro parâmetro. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
time_shift (opcional) - consulte avg()
percentage - um número em ponto flutuante entre 0 e 100 (inclusive) com até 4 dígitos na parte decimal
Tipos de valores suportados: float, int

Esta função é suportada desde o Zabbix 3.0.0.
prev
Valor anterior. Tipos de valores suportados: float, int, str, text, log

Retorna o mesmo que last(#2).
regexp (pattern,<sec|#num>)
Verifica se o último (mas recente) valor confere com determinada expressão regular. pattern - expressão regular, seguindo o padrão POSIX estendido.
sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#"). Nestes casos mais de um valor poderá ser analisado.
Tipos de valores suportados: str, text, log

Retorna:
1 - encontrado
0 - outro caso

Esta função é sensível ao caso.
str (pattern,<sec|#num>)
Procura um texto no último (mais recente) valor. pattern - string desejada
sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#"). Nestes casos mais de um valor poderá ser analisado.
Tipos de valores suportados: str, text, log

Retorna:
1 - encontrado
0 - outro caso

Esta funç]ap é sensível ao caso.
strlen (sec|#num,<time_shift>)
Tamanho do último valor (mais recente) em caracteres (não bytes). sec (ignorado) ou #num - o eNésimo valor mais recente
time_shift (opcional) - consulte avg()
Tipos de valores suportados: str, text, log

Observe que o parâmetro #num aqui funciona de forma diferente de outras funções.

Exemplos:
=> strlen() é o mesmo que strlen(#1) → tamanho do último valor
=> strlen(#3) → tamanho do terceiro valor mais recente
=> strlen(,1d) → tamanho do valor mais recente de um dia atrás.

Esta função é suportada desde o Zabbix 1.8.4.
sum (sec|#num,<time_shift>)
Total dos valores coletados em determinado período de análise. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
time_shift (opcional) - consulte avg()
Tipos de valores suportados: float, int

O parâmetro time_shift é suportado desde o Zabbix 1.8.2.
time
Hora atual no formato HHMMSS. Tipos de valores suportados: any

Exemplo de valor retornado: 123055
timeleft (sec|#num,<time_shift>,threshold,<fit>)
Tempo necessário em segundos para um item alcançar determinado limite. sec ou #num - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "#")
time_shift (opcional) - consulte avg()
threshold - valor a alcançar
fit (opcional) - veja forecast()
Tipos de valores suportados: float, int

Se o valor retornado for maior que 999999999999.9999, será reduzido a 999999999999.9999.

Retorna 999999999999.9999 se o limite não puder ser alcançado.

Passa a ser não suportado somente se for mal utilizado na expressão (tipo errado de item, parâmetros inválidos), qualquer outra situação retorna -1 em caso de erros.

Exemplos:
=> timeleft(#10,,0) → tempo para o item alcançar o valor '0' baseado nos últimos 10 valores
=> timeleft(1h,,100) → tempo até o item alcançar o valor '100' baseado nos dados da última hora
=> timeleft(1h,1d,0) → tempo para o item alcançar o valor '0' baseado em 1 hora de 24 horas atrás
=> timeleft(1h,,200,polynomial2) → tempo até o item alcançar o valor '200' baseado na última hora, assumindo que o item se comporte como um polinomial quadrado (segundo grau)

Esta função é suportada desde o Zabbix 3.0.0.
Consulte informações adicionais no manual de funções preditivas de trigger.
  1. Todas as funções retornam apenas valores numéricos. A comparação com textos não é suportada, por exemplo.
  2. Algumas das funções não podem ser utilizadas com parâmetros não numéricos!
  3. Argumentos de texto precisam estar entre aspas duplas, de outra forma poderão ser mal interpretados.