Sobre o Hyperic HQ
O Hyperic HQ é uma solução de monitoramento, administração e controle de infraestrutura de Data Centers. Trata-se de um Software Livre, disponibilizado sob a licença GNU GPL v2, com o código-fonte hospedado no SourceForge.net, que conta com um versão comercial disponível com recursos adicionais de automação, administração e controle.
Foi desenvolvido pela empresa americana Hyperic, sediada em São Francisco. Em 2009, a história da empresa mudaria radicalmente. Em maio, ela seria adquirida pela SpringSource e, em Agosto, a própria SpringSource seria adquirida pela gigante VMware. Hoje, a versão para empresas do Hyperic HQ é comercializada com o nome de VMware vFabric Hyperic. Conheci o Hyperic em 2007, quando trabalhava na Unimed Leste Fluminense, em Niterói/RJ, e recebi a missão de configurar um sistema de monitoramento na rede da empresa. Avaliei algumas soluções, como Nagios, Cacti e Zenoss. Embora funcionassem, me incomodava a complexidade para configurar monitoramento e alarmes em cada uma destas soluções (não era necessariamente difícil, mas, ou exigia uma quantidade incontável de passos manuais, como instalação de componentes, edição de arquivos de texto, e/ou cliques e mais cliques de mouse). Então, descobri o Hyperic HQ, que caiu como uma luva: além de ser um Software Livre, com código-fonte aberto, possuía:
E o melhor: tudo empacotado adequadamente e acompanhado de uma excelente documentação que tornava o processo de instalação e configuração da solução uma tarefa extremamente simples. Desde então, o Hyperic HQ é minha solução de monitoramento favorita. ArquiteturaO Hyperic HQ é constituído de dois componentes: o servidor e o agente. Que comunicam-se de acordo com o diagrama mostrado no diagrama abaixo. O servidor é instalado em uma única máquina. Ele é responsável por receber todos os dados de monitoramento, processá-los e gerar gráficos, alertas e relatórios, mantendo histórico dos eventos. O agente, por sua vez, é responsável por varrer a máquina onde ele está instalado, detectando os componentes que estão instalados, coletando suas métricas e enviando-as ao servidor. Todos os dados coletados ficam armazenados localmente e enviados ao servidor em intervalos regulares. Com isso, mesmo que o servidor Hyperic fique fora do ar, nenhuma informação de monitoramento é perdida, pois fica armazenada localmente nos agentes, até que estes possam enviá-la para o servidor. |
|
Instalação do servidor Hyperic HQ
O servidor do Hyperic HQpode ser instalado nos seguinte sistemas operacionais:
Neste artigo, mostrarei como instalar a versão 4.6.6 do servidor Hyperic HQ no CentOS 6, uma distribuição GNU/Linux criada a partir do código-fonte do Red Hat Enterprise Linux 6. Para os passos mostrados abaixo, considero que você já possua uma instalação funcional do CentOS 6. O primeiro passo é criar o grupo e o usuário que será utilizado para executar o Hyperic. Faça isso usando os comandos abaixo: $ su – # groupadd -r hyperic Em seguida, alterne para o usuário hyperic recém-criado e faça o download do instalador do Hyperic HQ para GNU/Linux, que contém o servidor e o agente no mesmo pacote. Há instaladores para arquiteturas 32 e 64 bits. Neste artigo, será usada a arquitetura 32bits (x86). # su – hyperic Serão solicitadas algumas informações que você deverá fornecer, na ordem:
Em determinado momento, o instalador lhe pedirá para executar um comando como root e então, pressionar Enter para continuar a instalação. Se você estiver no modo gráfico, abra um novo terminal. Se estiver no modo texto, alterne para outro console usando as teclas Alt+FN, ou N é um número de 1 a 6 (Ex.: Alt+F2 para ir para o console 2), faça login como root e execute o comando abaixo: # /opt/hyperic/hyperic-hq-installer-4.6.6/installer/data/hqdb/tune-os.sh Então, retorne para o terminal/console anterior e pressione Enter para concluir a instalação. Se tudo correr bem, você deverá ver a seguinte mensagem no final do processo:
Antes de iniciar o servidor e o agente do Hyperic, é interessante fazer alguns ajustes para facilitar o gerenciamento destes serviços, além de futuras instalações. Primeiro, crie dois links simbólicos chamados “server” e “agent”, apontando para os diretórios: server-4.6.6 e agent-4.6.6, respectivamente. $ cd Depois, edite o arquivo “.bash_profile”, procure pela linha que define a variável PATH e modifique-a de modo que fique com o seguinte conteúdo: AGENT_DIR=”/opt/hyperic/agent”
SERVER_DIR=”/opt/hyperic/server” PATH=$PATH:$HOME/bin:$AGENT_DIR/bin:$SERVER_DIR/bin Então, carregue o arquivo “.bash_profile” para atualizar as variáveis alteradas: $ source .bash_profile Retorne ao segundo terminal/console onde você logou-se como root e verifique o arquivo /etc/hosts. É preciso ter uma entrada associando o IP principal do servidor ao nome da máquina. Antes de mais nada, verifique se o nome da máquina está corretamente definido, executando o comando hostname: # hostname
No exemplo acima, o hostname não está definido. Escolha um nome e então edite o arquivo /etc/sysconfig/network, alterando a variável HOSTNAME para o valor do hostname escolhido, incluindo o nome do domínio: HOSTNAME=hyperic.davidsonpaulo.com
Então, use o comando hostname para forçar a utilização do novo nome de máquina: # hostname hyperic.davidsonpaulo.com Depois, edite o arquivo /etc/resolv.conf e adicione a seguinte linha no começo do arquivo, para que o servidor trate adequadamente o domínio escolhido: search davidsonpaulo.com
Por fim, edite o arquivo /etc/hosts e adicione uma entrada para associar o hostname da sua máquina ao seu IP principal, que neste exemplo, é 192.168.1.10: 192.168.1.10 hyperic.davidsonpaulo.com hyperic
Feito isso, retorno para o primeiro terminal/console e inicie o servidor Hyperic HQ usando o comando abaixo: $ hq-server.sh start Aguarde alguns segundos e verifique se existem processos escutando nas portas 9432/TCP e 7080/TCP: $ fuser -i 9432/tcp
$ fuser -i 7080/tcp
Isto significa que o servidor Hyperic foi inicializado corretamente. Para confirmar, acesse a interface administrativa através da URL:
Note que, se o firewall do CentOS estiver habilitado, a porta 7080 estará bloqueada por padrão. Se for esse o caso, libere as portas 7080 e 7443 usando os comandos abaixo: # iptables -I INPUT -p tcp -m state –state NEW -m multiport –dports 7080,7443 -j ACCEPT As figuras abaixo, mostram a tela principal do Hyperic HQ e o painel de controle, ou Dashboard, para onde o usuário é direcionado após fazer o login: |
|
Configuração do agente Hyperic HQ
Agora que o servidor está funcionando, precisamos configurar um agente do Hyperic HQ para monitorar a primeira máquina.
Quando instalamos o servidor, o agente foi instalado também, portanto, tudo o que precisamos fazer é inicializá-lo e conectá-lo ao servidor, executando o comando abaixo: $ hq-agent.sh start Na primeira inicialização do agente do Hyperic HQ, será necessário fornecer algumas informações para que ele consiga conectar-se ao servidor e enviar os dados de monitoramento:
Uma vez concluída a configuração do agente, retorne à interface administrativa do Hyperic HQ e veja se a máquina é exibida no portlet Auto-Discovery. Para começar a coletar as métricas e gerar gráficos para este servidor, clique no botão Add to Inventory. A máquina sairá do portlet Auto-Discovery e será exibida no portlet Recently Added. Clique no link para abrir os detalhes de monitoramento da máquina, que a princípio estarão quase totalmente vazios. Como você pode ver, muitas coisas são detectadas e começam a ser monitoradas automaticamente. Abaixo, uma listagem completa de todos os componentes e serviços que foram detectados neste exemplo:
Impressionante, não? Imagine só quanto tempo levaria para habilitar todos estes monitoramentos, com indicadores de disponibilidade e gráficos em soluções, como Nagios, Icinga, Zabbix ou Cacti. Sentiu calafrios ao pensar em todo o trabalho que teria? |
|
Monitoramento e visualização
Personalizando o monitoramentoAgora que o servidor já está sendo monitorado, é hora de revisar as métricas, descartando aquelas que não nos interessam e habilitando outras que necessitamos. Vamos tomar como exemplo, as métricas básicas do servidor, as chamadas Platform Services:
Primeiramente, vamos desligar o monitoramento da métrica Free Memory(+buffers/cache). Para isso, clique na aba METRIC DATA, selecione a métrica e clique no botão DISABLE COLLECTION. Depois, clique em INDICATORS e remova o gráfico da métrica excluída, clicando no botão em formato de X à direita de seu título e clicando no botão em formato de seta para à direita ao lado de “Update Default”. Para habilitar uma métrica que não está sendo monitorada, clique em METRIC DATA e depois em Show All Metrics. Selecione a(s) métrica(s) que você deseja monitorar (Ex.: System CPU, Used Memory e User CPU) e, logo abaixo, selecione o intervalo de atualização das métricas no campo Collection Interval for Selected (Ex.: 5 minutos). Depois, confirme clicando no botão em formato de seta à direita. Clique, então, em INDICATORS e aguarde de 2 a 5 minutos até que as novas métricas sejam exibidas na seção All Metrics e, então, clique no botão em formato de seta à direita para cada uma delas, e seus gráficos serão adicionados ao painel de visualização central. Para tornar a alteração permanente, clique no botão em formato de seta à direita, ao lado de Update Default. Use estes procedimentos para personalizar as métricas monitoradas, para cada serviço que tenha sido detectado pelo agente do Hyperic HQ. Criando painéis de visualizaçãoComo você deve ter percebido, os gráficos das métricas ficam empilhados um sobre o outro num painel central, chamado painel de visualização, ou apenas View. Para fins de organização, você pode criar diversos painéis de visualização, colocando diferentes gráficos em cada um deles de acordo com os critérios que lhe forem mais convenientes. Para demonstrar a funcionalidade, vamos criar um painel adicional contendo informações de estados de conexões TCP. O primeiro passo é habilitar o monitoramento dessas métricas, clicando em METRIC DATA, Show All Metrics, selecionando todas as métricas do tipo Tcp State e habilitando o Collection Interval para 5 minutos. Depois clique em INDICATORS e aguarde de 2 a 5 minutos até que as métricas sejam exibidas na seção All Metrics. Então, remova todos os gráficos do painel central e adicione somente as métricas do tipo Tcp State. Em seguida, ao lado da opção View, selecione a opção Create New View, digite o nome da nova visualização (TCP State) e clique no botão em forma de seta, à direita. Você terá agora dois painéis de visualização: o Default, que já existia e que contém os gráficos de memória e CPU, e o TCP State, que foi criado e que contém os gráficos de Tcp State. Você pode criar quantos painéis de visualização desejar, organizando os gráficos da maneira que lhe for mais conveniente. |
|
Configurando novos monitoramentos manualmente
O sistema de detecção e monitoramento automático do Hyperic HQ é excelente, mas não detecta tudo. Existem serviços que, embora sejam suportados, simplesmente não serão detectados ou precisarão de alguns ajustes para serem monitorados totalmente.
Veremos a seguir, como habilitar manualmente o monitoramento de alguns serviços que não tenham sido detectados automaticamente pelo Hyperic HQ, para que você tenha uma ideia de como isso é feito. Monitorando um processo genéricoAo instalar o agente Hyperic HQ num servidor Linux ou Unix que possua o servidor SSH roddando, o processo sshd é monitorado automaticamente. Se quisermos configurar outros processos, isso pode ser feito facilmente. Basta clicar em Tools Menu e selecionar a opção New Service e fornecer o nome, a descrição e o tipo do serviço que será monitorado (nesse caso, Process). Na tela que se abre, vá na seção Configuration Properties e clique em EDIT. Preencha o campo “process.query” com o valor:
E clique em OK. Depois, clique na aba Monitor, aguarde 5 minutos e atualize a página. Monitorando Apache 2.2Acesse o servidor onde o Apache está instalado e insira o conteúdo abaixo, no arquivo /etc/httpd/conf.d/hyperic.conf (no CentOS): ExtendedStatus On
NameVirtualHost localhost:80 <VirtualHost localhost:80> <Location /server-status> Em seguida, reinicie o serviço para que as alterações entrem em vigor. # apachectl restart Depois, ajustes as permissões dos logs do Apache. Isto é necessário para que o usuário “hyperic” consiga acessá-los. # chgrp -R apache /var/log/httpd Em seguida, adicione o usuário “hyperic” ao grupo apache e reinicie o agente de monitoramento: # gpasswd -a hyperic apache $ hq-agent.sh restart Por fim, edite o arquivo /etc/sudoers e adicione a linha abaixo para permitir que o Hyperic HQ possa controlar o Apache usando o comando apachectl, através do comando sudo. hyperic ALL=(root) NOPASSWD: /usr/sbin/apachectl
Agora, acesse a interface de gerenciamento do Hyperic e faça login. Se o Apache ainda não estava instalado, é provável que ele tenha sido detectado e seja exibido no portlet Auto-Discovery. Se for esse o caso, clique em Add to Inventory. Se, por outro lado, o Apache já estava instalado na máquina antes de o agente do Hyperic ser configurado, é já deve ter sido detectado anteriormente, e só necessitará ser configurado adequadamente. Clique na aba Resources, localize o servidor onde o Apache está instalado e clique sobre ele. O Apache deverá ser então listado na seção Deployed Servers Health, clique sobre ele, acesse a aba Inventory e, na seção Configuration Properties, clique em EDIT. Preencha os campos como mostrados na lista abaixo, clique em OK e depois acesse a aba Monitor. hostname: localhost;
port: 80; path: /server-status pidfile: /etc/httpd/run/httpd.pid; program: /usr/sbin/apachectl; prefix: sudo Para o Apache e para outros tipos de servidores, o Hyperic HQ oferece o recurso de controle remoto, ou seja, você pode iniciar, parar, reiniciar ou consultar o status do serviço diretamente a partir da console do Hyperic. Essas funções, quando disponíveis, ficam dispostas na aba Control. |
|
Definindo um alerta
Um dos recursos fundamentais de qualquer software de monitoramento, é a geração de alertas, que notificam o administrador quando algum serviço não está funcionando dentro das condições consideradas satisfatórias.
Para definir um novo alerta no Hyperic HQ, o primeiro passo é localizar o objeto que contem a métrica que será analisada para gerar o alarme. Como exemplo, vamos criar um alerta para quando houver pouca memória RAM livre no servidor “hyperic.davidsonpaulo.com”. Ao abrirmos este servidor, encontramos a métrica Free Memory que indica a quantidade de memória livre. Ao clicar sobre o título da métrica, somos direcionados para seu gráfico detalhado. No canto superior direito, existe um link chamado Define New Alert. Basta clicar nele e seremos direcionados para o formulário de definição de novo alerta. Primeiramente, preenchemos os campos da seção Alert Properties: nome, descrição, prioridade, e o alerta deverá ficar ativo imediatamente após a sua configuração. Depois, devemos selecionar qual será o gatilho do alarme, na subseção If Condition da seção Condition Set. Existem quatro possibilidades:
Neste exemplo, nosso objetivo é disparar o alerta caso o nível da métrica Free Memory seja muito baixo. Então, selecionamos a opção Metric e a métrica Free Memory. Abaixo, selecionamos a opção: is < (Less than) E digitamos o limite escolhido de 64MB. Em seguida, selecionamos o critério para disparo do alarme e sua periodicidade. Os critérios para disparo são dois, a saber:
A periodicidade do alerta é definida pela opção Generate on alert and then disable alert definition until fixed. Se esta opção estiver desmarcada, um novo alerta será gerado a cada vez que as condições de alarme ocorrerem até que o problema seja resolvido. Se estiver marcada, um único alerta será gerado. Em nosso exemplo, definiremos o alerta para somente ser disparado se as condições de alarme ocorrem 10 vezes, seguidas, ou seja, 10 vezes nos últimos 10 minutos. Também definiremos que ele seja gerado uma única vez. Depois de criar o alarme, precisamos configurar a notificação externa. O Hyperic HQ suporta quatro tipos de notificações:
Em nosso exemplo, escolheremos a opção Notify HQ Users. Clique em ADD TO LIST, selecione o usuário administrador, clique na seta para a direita e então, em OK. Feito isso, o alerta estará definido. Quando a métrica Free Memory indicar um valor menor que 64MB 10 vezes seguidas num intervalo de 10 minutos, um alerta será gerado e enviado por e-mail para o destinatário [email protected]. |
|
Dicas valiosas
Os exemplos mostrados nesta matéria devem permitir que o amigo leitor consiga realizar a instalação e configuração básica do Hyperic HQ em seu ambiente de testes e então, descubra mais de suas várias funcionalidades, que não tratei nesta matéria para não deixá-la demasiadamente grande.
Então, antes de encerrar, deixarei algumas dicas que serão de grande valia para você.
|