Zabbix – Remoção de picos nos gráficos

Ao selecionar um tempo maior em um gráfico às vezes podemos nos deparar com picos que sabemos que
são informações incorretas (portas de 1Gb com picos de 1Tb por exemplo devido a mudança de unidades ou
multiplicadores) e que impossibilitam a visualização correta dos dados no gráfico (já que os valores reais
ficam irrisórios para serem visualizados).
Vou utilizar como exemplo um gráfico de uma porta de 1Gbps onde a média de tráfego é de 400Mbps em
horários de pico mas ao visualizar o gráfico de 6 meses aparece um pico de 28Tbps. Com isso o tráfego em
real em Mbps fica representado por uma linha na horizontal.

Ao dar o zoom nesse pico vejo pelo gráfico o momento desse registro no meu horário local (UTC-3):
14/dezembro/2015 às 14:00. Como já faz alguns meses, pela minha configuração esse registro não se
encontra mais no histórico do zabbix, sendo somente um valor por hora na tabela de trends para cada item
que forma o gráfico.
No caso desse gráfico de exemplo, ele é composto pelo item de tráfego de download (com id 23778, que
pode ser obtido pela URL do item na lista de itens do host) e pelo item de tráfego de upload (id 23773).
Com a informação do horário do pico e dos itens que compõem o gráfico, podemos remover essas duas
entradas do banco de dados. Sabendo que esses dados ficam na tabela trends_uint do Zabbix, falta conhecer
como os valores ficam registrados:
MariaDB [zabbix]> SELECT * FROM trends_uint LIMIT 1;
+--------+------------+-----+-----------+-----------+-----------+
| itemid | clock
| num | value_min | value_avg | value_max |
+--------+------------+-----+-----------+-----------+-----------+
| 23271 | 1438056000 |
6 |
0 |
0 |
0 |
+--------+------------+-----+-----------+-----------+-----------+
1 row in set (0.00 sec)

O horário do registro do item (clock) fica no formato unix time (e em UTC). Para visualizar os valores no banco
de dados, precisamos agora converter o horário antes e após o pico para fazer uma busca por valores
anormais. Como o pico foi em 14/dezembro/2015 às 14:00 (UTC: 17:00), convertendo para unix time temos:
$ date -ud "12/14/2015 17:00:00" "+%s"
1450112400

Como quero fazer uma busca por registros ao redor desse horário para ficar mais didático e fácil de visualizar
um valor anormal, faço:
$ date -ud "12/14/2015 15:00:00" "+%s" && date -ud "12/14/2015 19:00:00" "+%s"
1450105200
1450119600

Agora posso fazer uma busca por registros desses itens dentro dessa faixa de tempo:
MariaDB [zabbix]> SELECT * FROM trends_uint WHERE itemid in (23773,23778)
AND clock > 1450105200 AND clock < 1450119600;
+--------+------------+-----+-----------+-------------+----------------+
| itemid | clock
| num | value_min | value_avg
| value_max
|
+--------+------------+-----+-----------+-------------+----------------+
| 23773 | 1450108800 | 719 |
1906104 |
7703231 |
41361016 |
| 23773 | 1450112400 | 719 |
2323448 | 8490750769 | 6095932032440 |
| 23773 | 1450116000 | 720 |
2585440 |
6326208 |
31320464 |
| 23778 | 1450108800 | 710 | 28301760 |
96702255 |
283796704 |
| 23778 | 1450112400 | 713 | 16378672 | 39526630539 | 28129790519632 |
| 23778 | 1450116000 | 720 | 28852880 |
71812671 |
151712360 |
+--------+------------+-----+-----------+-------------+----------------+
6 rows in set (0.00 sec)

Podemos ver que as entradas onde constam os valores anormais possuem clock com o valor 1450112400
que havia sido obtido inicialmente ao converter o horário do pico para unit time. Ou seja, se não fosse para
exemplificar, o DELETE já poderia ter sido realizado especificando o horário desde o começo:
MariaDB [zabbix]> DELETE FROM trends_uint WHERE itemid in (23773,23778) and
clock=1450112400;
Query OK, 2 rows affected (0.02 sec)

Após isso, teremos um gráfico mais real: