quinta-feira, 16 de abril de 2020
[Sobre o Zabbix] Expurgo de dados na Tabela History para liberar espaço em disco
O procedimento que irei mostrar tem como principio realizar o expurgo de alguns dados da tabela history_uint, ou seja, mantendo dados específicos de uma data para frente.
Lembrando que este tipo de procedimento não é oficial e a execução desses passos é responsabilidade de quem executar. Para esse procedimento é necessário está habilitado innodb_file_per_table.
Obs : Foi validado no Zabbix 4.0, 4.4 e 5.0Beta com MariaDB 10.1.x
Vamos lá! \O/
##Verificar se innodb_file_per_table está habilitado##
MariaDB [(none)]> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec)
##Parando Serviço do Zabbix##
systemctl stop zabbix-server
##Tirando backup da base##
mysqldump --verbose -u <USUARIO> -p<SENHA> --databases zabbix > backup-zabbix.sql
##Criando a nova tabela history_uint##
use zabbix;
CREATE TABLE history_uint_new LIKE history_uint;
##Inserindo dados na nova tabela de um determinado período##
Defina o tempo “Unix Time” com a ferramenta online.
Inserindo dados a partir de 04/15/2020 @ 00:00am (UTC) (a data atual é 16/04/2020, deixei para teste dados a partir da data citada)
INSERT INTO history_uint_new SELECT * FROM history_uint WHERE clock > '1586908800';
##Validando o insert conforme período desejado na nova tabela##
SELECT FROM_UNIXTIME(MIN(clock)) FROM `history_uint_new`;
Essa query mostra o primeiro dado inserido na tabela.
##Setando a tabela atual como Old##
ALTER TABLE history_uint RENAME history_uint_old;
##Setando a tabela nova como Atual##
ALTER TABLE history_uint_new RENAME history_uint;
##Dropando a tabela antiga##
DROP TABLE history_uint_old;
##Iniciando o Zabbix Server##
systemctl start zabbix-server
Prontinho!
Espero ter ajudado.
Assinar:
Postar comentários (Atom)
Olá everaldo, vlw por compartilhar o artigo, uma dúvida, o que precisa ser feito na base de dados e ou no zabbix para que esse expurgo seja menos recorrente, estou com uma recorrencia de 7-8dias e os dados da tabela history_uint e history voltam novamente.
ResponderExcluirVocê precisa é verificar o período de retenção de histórico dos itens dos seus templates. Também verificar se realmente tudo que coleta é necessário. Ou seja, trabalho de formiguinha.
ExcluirEntendi, obrigado pela atenção Everaldo, vou fazer esse pente fino ;)
ExcluirNão entendi o formato do Clock "clock > '1586908800';"
ResponderExcluirEu deixei a ferramenta online para entendimento.
ExcluirShow de bola !!
ResponderExcluir