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.
Footnotes

1 The evaluation period is up to the latest collected value (not the server 'now' time). A function is evaluated as soon as at least one value is received (unless the time_shift parameter is used), i.e. Zabbix will not wait for all the values within the defined evaluation period before evaluating the function.

Functions and unsupported items

Since Zabbix 3.2, nodata(), date(), dayofmonth(), dayofweek(), now() and time() functions are calculated for unsupported items, too. Other functions require that the referenced item is in a supported state.