Sumarização de Dados

Objetivo

Descrever como realizar a sumarização de dados do OpMon.

Público-alvo

Administradores do ambiente OpMon que necessitam realizar a sumarização de dados.

Sobre a Sumarização

A sumarização serve para reunir, de maneira sintetizada, os dados coletados pelo OpMon, com o objetivo de otimizar o espaço utilizado. Os dados a serem sumarizados receberão um novo intervalo de checagem, por exemplo, se o intervalo de checagem utilizado era de 10 em 10 minutos, ao sumarizar, será utilizado um novo intervalo de 30 em 30 minutos, ou seja, se antes haviam 6 coletas de dados por hora, após a sumarização haverão 2 por hora.

Veja o exemplo abaixo:

  • Antes de Sumarizar:

Intervalo de checagem a cada 10 minutos:

Checagem 1 Checagem 2 Checagem 3 Checagem 4 Checagem 5 Checagem 6
CPU 70 80 90 100 50 60
  • Após Sumarizar:

Intervalo de checagem a cada 30 minutos:

Checagem 1 Checagem 2
CPU 80 70

Padrão de Sumarização sugerido pela OpServices:

 Períodos Coletados (em dias)

Intervalo para sumarização dos dados

Data atual até 30 dias

31º dia até 60º dia

30 minutos

61º dia até 180º dia

120 minutos

181º até a data mais antiga

480 minutos

Realizando a Sumarização

Siga os procedimentos abaixo descritos para a realização da sumarização de dados do OpMon.

1 – Verificar o tamanho do backup

Com o objetivo de avaliar o ganho – em termos de espaço em disco – após a sumarização, é possível executar o seguinte comando antes e depois da sumarização para avaliar o ganho de espaço obtido:

[root@opmon ~]# du -sh  /var/tmp/opmondb/*
468K        /var/tmp/opmondb/mysql
172K        /var/tmp/opmondb/nedi
268K        /var/tmp/opmondb/ocsweb
2.4M        /var/tmp/opmondb/opcfg
1.3G        /var/tmp/opmondb/opmon4
326M        /var/tmp/opmondb/opmon-conf.tar.gz
16G         /var/tmp/opmondb/opperf
204K        /var/tmp/opmondb/seagull
20K         /var/tmp/opmondb/snmptt
579M        /var/tmp/opmondb/Syslog

2 – Deletar o backup do opmondb

Utilize o seguinte comando para deletar o backup do opmondb:

[root@opmon ~]# rm –rf /var/tmp/opmondb

3 – Editar a cron

Este procedimento visa desativar o agendamento do backup, para isso, é necessário que as linhas referentes a tarefa do backup sejam todas comentadas, veja abaixo:

[root@opmon ~]# vim /etc/cron.d/backup

# Descomente, caso backup seja da OpServices
#5 0 * * * root /usr/local/opmon/utils/mysql-backup.pl >/dev/null 2>/dev/null

# Descomente, caso backup seja do Cliente
#5 0 * * * root /usr/local/opmon/utils/opmon-base.pl -E >/dev/null 2>/dev/null
#5 0 * * * root /usr/local/opmon/utils/opmon-conf.pl >/dev/null 2>/dev/null

# OTRS configuration backup
#5 0 * * * root /usr/local/opmon/utils/otrs-backup-conf.pl >/dev/null 2>/dev/null

Salve e saia do arquivo.

4 – Defina as datas no Plugin

Este procedimento serve para definir os intervalos de checagem (em minutos) para sumarização de acordo com os períodos (datas) definidos.

Para definir as datas e intervalos da sumarização é necessário editar o plugin, da seguinte forma:

[root@opmon ~]# vim /var/local/opmon/utils/summarize_perfparse.php

Neste arquivo, as únicas informações que devem ser editadas são os número de dias e o intervalo (destacadas em vermelho):

//30 dias as is
//60 dias 60 minutos
//180 dias 120 minutos
//360 dias 1440 minutos
$summarizer_array = array (
 array("days" => 30, "mean" => 0, "data_start" => "","data_end" => "", "timestamp_start" => "", "timestamp_end" => ""),
 array("days" => 60, "mean" => 30, "data_start" => "","data_end" => "", "timestamp_start" => "", "timestamp_end" => ""),
 array("days" => 180, "mean" => 120, "data_start" => "","data_end" => "", "timestamp_start" => "", "timestamp_end" => ""),
 array("days" => 1920, "mean" => 480, "data_start" => "","data_end" => "", "timestamp_start" => "", "timestamp_end" => "")
);

Para definir os dias e seus respectivos intervalos de checagem para a sumarização, foram utilizados os seguintes padrões para o exemplo:

De hoje até 30 dias atrás, não será feita a sumarização;
No intervalo que corresponde entre 31 e 60 dias atrás a sumarização será feita utilizando o intervalo de 30 em 30 minutos, utiizando para isso uma média aritmética.
No intervalo que corresponde entre 61 e 180 dias atrás, a sumarização será feita utilizando o intervalo de 120 em 120 minutos.
No intervalo que corresponde entre 181 e 1920 dias atrás, a sumarização será feita utilizando o intervalo de 480 em 480 minutos.

Para executarmos num prazo maior, alteramos 1920 para 3840, assim teremos um período de até 10 anos de sumarização.

Depois de definidos os intervalos de tempo e seus respectivos intervalos de checagem, é necessário que seja incluído o seguinte código caso não exista:

print_r($summarizer_array); exit(0);

Esse código serve para validar a configuração das datas segundo as configurações declaradas sem executar nenhuma outra ação.

Ficará da seguinte forma:

/* Calculate dates to summarizer */
$days_from_now=0;
$days_from_last=0;
$i=0;
$begin_days = 0;
$initial = new DateTime('NOW');
$init_date = $initial->format('Y-m-d');
foreach ($summarizer_array as $summarizer_item) {

           (...)
}
print_r($summarizer_array); exit(0);

/* get all services that have metrics */

5 – Confirme as datas

Confirme as datas utilizando o seguinte comando:

[root@opmon ~]# php /var/local/opmon/utils/summarize_perfparse.php

Você verá um retorno similar ao abaixo apresentado, as informações destacadas devem ser validas:

Array
(
 [0] => Array
 (
 [days] => 30
 [mean] => 0
 [data_start] => 
 [data_end] => 
 [timestamp_start] => 1492311600
 [timestamp_end] => 1494989999
 [date_start] => 2017-04-16 00:00:00
 [date_end] => 2017-05-16 23:59:59
 )

[1] => Array
 (
 [days] => 60
 [mean] => 30
 [data_start] => 
 [data_end] => 
 [timestamp_start] => 1487124000
 [timestamp_end] => 1492311600
 [date_start] => 2017-02-15 00:00:00
 [date_end] => 2017-04-16 00:00:00
 )

[2] => Array
 (
 [days] => 180
 [mean] => 120
 [data_start] => 
 [data_end] => 
 [timestamp_start] => 1471575600
 [timestamp_end] => 1487124000
 [date_start] => 2016-08-19 00:00:00
 [date_end] => 2017-02-15 00:00:00
 )

[3] => Array
 (
 [days] => 1920
 [mean] => 480
 [data_start] => 
 [data_end] => 
 [timestamp_start] => 1305687600
 [timestamp_end] => 1471575600
 [date_start] => 2011-05-18 00:00:00
 [date_end] => 2016-08-19 00:00:00
 )

)

6 – Desabilite o var_dump

Depois de validar as datas, conforme o procedimento acima descrito, comente a linha print_r($summarizer_array); exit(0); dentro do plugin, veja abaixo:

[root@opmon ~]# vim /local/opmon/utils/summarize_perfparse.php

Ficará da seguinte forma:

Faça uma cópia do plugin, para que ao atualizar o OpMon as alterações realizadas no arquivo não sejam perdidas, da seguinte forma:

[root@opmon ~]# cp /var/local/opmon/utils/summarize_perfparse.php /var/local/opmon/utils/cron_summarizer.php

7 – Instale o screen

O screen irá no auxiliar no procedimento de sumarização, para que a mesma rode em background no ambiente.

Utilize o seguinte comando para instalar o screen:

[root@opmon ~]# yum install screen –y

Informações úteis a respeito do screen podem ser obtidas através do deste link.

8 – Execute o screen

Utilize o seguinte comando para executar o screen:

[root@opmon ~]# screen

9 – Execute o plugin

Este comando executa o plugin de sumarização enviando os dados para o log e para tela:

[root@opmon ~]# php /var/local/opmon/utils/cron_summarizer.php | tee –a /var/local/opmon/utils/summarizer.log

Para liberar o console sem cancelar a execução do comando. Execute CTRL + a d.

10 – Verificando se a sumarização já chegou ao fim

Para verificar se a sumarização chegou ao fim, basta recuperar a sessão do screen:

Para recuperar a sessão do screen execute o seguinte comando:

[root@opmon ~]# screen -r

Caso, após recuperar a sessão do screen, você obtenha um retorno similar ao abaixo apresentado, é porque a sumarização chegou ao fim:

Summarizing USI_SW_TI - Load - cpu 2008-07-02 10:53:16 2013-01-25 11:53:16 Mean 1440...done

Finished summarizing

11 – Execute o optimize

Após a execução completa da sumarização, execute o optmize, utilizando o comando abaixo, este comando removerá os registros que não estão mais sendo utilizados:

[root@opmon ~]# mysqlcheck -A -o -vvvv -u root

Você visualizará um retorno similar ao abaixo apresentado:

12 – Habilite o backup na cron

Habilite novamente o backup na cron, descomentando as linhas que no inicio do procedimento foram comentadas, veja abaixo:

[root@opmon ~]# vim /etc/cron.d/backup
# Descomente, caso backup seja da OpServices
#5 0 * * * root /usr/local/opmon/utils/mysql-backup.pl >/dev/null 2>/dev/null

# Descomente, caso backup seja do Cliente
5 0 * * * root /usr/local/opmon/utils/opmon-base.pl -E >/dev/null 2>/dev/null
5 0 * * * root /usr/local/opmon/utils/opmon-conf.pl >/dev/null 2>/dev/null

# OTRS configuration backup
#5 0 * * * root /usr/local/opmon/utils/otrs-backup-conf.pl >/dev/null 2>/dev/null

Crie uma nova entrada para a sumarização permanecer rodando ativamente, veja:

[root@opmon ~]# vim /etc/cron.d/summarizer

Adiciona o seguinte conteúdo, para que assim rode aos domingos as 8h5m:

# Sumariza a base do cliente semanalmente

5 8 * * 7 root php /var/local/opmon/utils/cron_summarizer.php | tee –a /var/local/opmon/utils/summarizer.log >/dev/null 2>/dev/null

13 – Restart o mysqld

Ao final do procedimento, reinicie o mysqld, para isso, utilize o seguinte comando:

[root@opmon ~]# service mysql restart

Você visualizará um retorno similar ao abaixo apresentado:

Shutting down MySQL..... SUCCESS! 
Starting MySQL.170516 10:59:40 mysqld_safe Logging to '/var/log/mysqld.log'.
170516 10:59:40 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
 SUCCESS!

Feito isto, está finalizado o processo de sumarização.

Updated on 31/08/2021

Esse artigo foi útil para você?

Ficou com alguma dúvida?

Perguntas & Respostas

Participe da nossa comunidade e tire dúvidas ou compartilhe respostas e ideias.

Participar

Professional Support

Não encontrou a resposta que procura? Não se preocupe, estamos aqui para ajudar!

Abrir chamado

Treinamento Online

Através da plataforma Udemy, você encontra todos os treinamentos das nossas soluções.

Inscreva-se