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.