segunda-feira, 4 de abril de 2016

VMWare vCenter não inicializa o banco de dados

Não estava conseguindo me conectar no VMWare vSphere Client e identifiquei que o motivo era o vCenter não estava iniciado.

Devido a isso, me conectei diretamente no Host que hospeda o vCenter para subir o serviço, mas ao tentar subir o serviço, depois de muito tempo tentando, era retornada a mensagem abaixo nos logs do Windows.

The description for Event ID 1000 from source VMware VirtualCenter Server cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 10240 MB per database.

Could not allocate space for object 'dbo.VPX_HIST_STAT1_220'.'IX_VPX_HIST_STAT1_220_TIME_ID' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

Ou seja, o vCenter estava informando que não consegui subir, pois o banco de dados Sql Server Express havia atingido o limite do database e não era possível expandir esse database.

Na documentação da própria VM Ware: (Limpando dados antigos do banco de dados usado pelo VMware vCenter Server (2037293)) é explicado que o banco de dados do vCenter, por padrão, guarda as estatísticas de desempenho dos últimos 365 dias dentro do próprio banco e com isso, pode ocorrer do banco lotar, caso seja utilizado o SQL Express.

Executei os procedimentos descritos no KB acima e após reiniciar o servidor, o vCenter voltou a subir normalmente.

Segue o resumo do procedimento:

Para limpar os dados na tabela VPX_EVENT:

  1. Conecte-se a Servername\SQL Database e faça login com as credenciais adequadas.
  2. Clique em databases para expandir e selecione VIM_VCDB > Tables.
  3. Clique com o botão direito do mouse na tabela dbo.VPX_PARAMETER e selecione Open.

Observação: Se você estiver usando o SQL Server 2008, clique com o botão direito do mouse na tabela dbo.VPX_PARAMETER e clique em Edit Top 200 Rows.

Modifique event.maxAge para 30 e modifique o valor event.maxAgeEnabled para true.
Modifique task.maxAge para 30 e modifique o valor task.maxAgeEnabled para true.

Observação: para diminuir o tempo gasto na limpeza de dados, realize as etapas anteriores em vários intervalos. Para tal, certifique-se de manter o valor padrão de event.maxAge e de task.maxAge, e execute a etapa 6 para realizar a limpeza. Em seguida, reduza os valores event.maxAge e task.maxAge em 60 e execute a limpeza. Repita as etapas até que o valor atinja 30 para o processo final de limpeza.

Execute o procedimento armazenado integrado:

  1. Vá até VIM_VCDB > Programmability > Stored Procedures.
  2. Clique com o botão direito do mouse em dbo.cleanup_events_tasks_proc e selecione Execute Stored Procedure.

Isso limpa os dados das tabelas vpx_event, vpx_event_arg e vpx_task na data especificada em maxAge.

Quando essa etapa tiver sido concluída com êxito, feche o SQL Management Studio e inicie o serviço do VMware Virtual Center Server.

Para garantir que o Statistics Level padrão esteja definido como 1:

  1. Usando o vSphere Client, conecte-se ao vCenter Server como administrador.
  2. Vá até Administration > vCenter Server Settings > Statistics.
  3. Em Statistics Intervals, verifique se a coluna Statistics Level está definida como 1.

Para alterar o valor, selecione o Interval Duration, clique em Edit e selecione Level 1 no menu suspenso.

sexta-feira, 1 de abril de 2016

Ocomon - Extrair relatórios de Indicadores de T.I. direto do mySQL

Segue abaixo o SQL que deve ser executado no banco de dados mySQL com o schema: ocomon, essa consulta irá trazer os indicadores que devem ser salvos na planilha mensal para que seja gerado os gráficos.

use ocomon;
SELECT o.Numero,
p.problema AS Tipo,
cat.probt1_desc as Categoria,
o.contato AS Contato,
o.descricao AS Descrição,
m.solucao AS Solução,
s.sistema AS Área,
l.local AS Localização,
t.status AS Situação,
data_abertura AS Abertura,
data_fechamento AS Fechamento,
login AS Analista
FROM
ocorrencias AS o
INNER JOIN sistemas AS s ON o.sistema = s.sis_id
INNER JOIN usuarios AS u ON o.operador = u.user_id
INNER JOIN problemas AS p ON o.problema = p.prob_id
INNER JOIN prob_tipo_1 AS cat ON cat.probt1_cod = p.prob_tipo_1
INNER JOIN localizacao AS l ON o.local = l.loc_id
INNER JOIN status AS t ON o.status = t.stat_id
LEFT JOIN prob_tipo_3 AS c ON c.probt3_cod = p.prob_tipo_3
LEFT JOIN solucoes AS m on o.numero = m.numero

WHERE t.stat_id IN (1,2,3,4,7,12,15,16,19,21,22,28,29,25,26,27,30,31)
AND data_fechamento BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59'
AND (s.sistema = 'TI_Sistemas' OR s.sistema = 'TI_Suporte')
GROUP BY
p.problema,
c.probt3_desc,
s.sistema,
l.local,
numero,
t.status,
data_abertura,
data_fechamento,
login,
DATE_FORMAT(data_abertura, '%Y-%m'),
o.descricao,
m.solucao
ORDER BY 1

Copiar o SQL acima para um notepad e depois executá-lo no mySQL.

Observação:

  • Com os dados retornados será possível criar uma planilha no Excel para gerar gráficos. Adeque os campos s.sistema acima, conforme os grupo de atendimento em sua empresa, aqui eu separei o Ocomon em dois grupos distintos para atendimento, que são: "TI_Sistemas" que são os programadores que atendem e o grupo "TI_Suporte" que são os analistas de suporte que atendem.
  • O valor datas no Where deve ser alterado para o período que você deseja extrair o seu relatório.
  • Montei uma planilha em Excel e criei algumas Abas, em uma delas, eu insiro o retorno do Select acima e nas demais Abas, eu criei gráficos e apontamentos diretamente no Excel, pois achei mais fácil e já que não tenho conhecimento suficiente em PHP para alterar no próprio Ocomon.