quinta-feira, 13 de setembro de 2012

Monitoramento com Cacti

Dando continuidade ao monitoramento de redes com aplicativos de código aberto, hoje vou falar um pouco do cacti.

Cacti é uma solução de gráficos de rede completa designada para aproveitar a força de armazenamento de dados do RRDToll e suas funcionalidades gráficas. Cacti tem um poller rápido, um avançado template de gráficos, múltiplos métodos de aquisição de dados e administração de usuários. Toda a interface de monitoramento é englobada em uma interface gráfica intuitiva e fácil de usar.

Isso tudo é o que esta descrito no próprio site da cacti (http://www.cacti.net/), mas se não fosse pelos tutorias encontrados na internet eu não teria achado tão intuitiva assim a interface gráfica na hora de configurar algumas funcionalidades.

Bem, para começar, vamos instalar o cacti no nosso servidor de monitoramento que está com o sistema operacional CentOS 6.3.


Instalando o cacti no CentOS 6

Antes de instalar o cacti é necessário que tenha alguns pré requisitos:

  1. MySql Server - O cacti necessita de um banco de dados.
  2. NET-SNMP server - SNMP (Simple Network Management Protocol) é um protocolo usado para administração de rede.
  3. PHP com modulo net-snmp - Acessar dados SNMP usando PHP.
  4. Apache / lighttpd / ngnix webserver - Servidor Web para exibir os graficos criados com PHP e o RRDTOOL.
Para o nosso servidor começamos instalando tudo com o comando:

# yum install mysql-server mysql php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli php-snmp php-pear-Net-SMTP php-mysql httpd

Agora precisamos configurar o nosso servidor MySQL:

Criando a senha de admin
# mysqladmin -u root password NovaSenha

criando um banco de dados chamado cacti:
# mysql -u root -p -e 'create database cacti'

e criando o usuário chamado cacti:
# mysql -u root -p
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'senha_do_usuário';
mysql> FLUSH privileges;
mysql> exit

agora instalamos o net-snmpd:
# yum install net-snmp-utils php-snmp net-snmp-libs

agora precisamos fazer algumas configurações no snmpd, entrando no arquivo snmpd.conf com o comando abaixo:
# vim /etc/snmp/snmpd.conf

neste arquivo precisamos fazer algumas mudanças:
A primeira linha a se mudar é:
#            sec.name  source          community
com2sec local         localhost       public
a segunda linha é onde tem os grupos:
#          groupName       securityModel securityName
group   MyRWGroup      v1                   local
group   MyRWGroup      v2c                  local
group   MyRWGroup      usm                local
a próxima linha delete os views e inclua:
# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#         name           incl/excl     subtree         mask(optional)
view     all               included    .1                   80
em seguida procure e altere:
#           group          context sec.model sec.level prefix read   write  notif
access  MyRWGroup      ""      any       noauth       exact  all      all       none
e altere:
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root  (configure /etc/snmp/snmp.local.conf)
na última alteração você tire do comentário o pass e o altere:
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
pronto salve e feche o arquivo com :wq

agora ativamos o snmpd:
# /etc/init.d/snmpd start
# chkconfig snmpd on

com o comando abaixo podemos saber qual informação estamos recebendo pelo snmpd:
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.172.16.32.9 = INTEGER: 2

Pronto, agora instalamos o cacti:
# yum install cacti 

agora precisamos instalar as tabelas do cacti no banco, digite o comando abaixo para localiza-las:
# rpm -ql cacti | grep cacti.sql
/usr/share/doc/cacti-0.8.8a/cacti.sql

e depois digite o comando abaixo para inseri-las no nosso banco de dados cacti:
# mysql -u cacti -p cacti < /usr/share/doc/cacti-0.8.8a/cacti.sql

Pronto! O cacti foi instalado, agora precisamos configura-lo. Edite o arquivo /etc/cacti/db.php com o comando:
# vim /etc/cacti/db.php
edite:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "geti%2@12&";
$database_port = "3306";
$database_ssl = false;
salve e feche o arquivo.

Agora vamos configurar o httpd:
Edite o arquivo /etc/httpd/conf.d/cacti.conf:
# vim /etc/httpd/conf.d/cacti.conf


De acesso total ou somente à sua rede ao Cacti:
Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                Require host localhost
        </IfModule>
        <IfModule !mod_authz_core.c>
                # httpd 2.2
                Order deny,allow
                Deny from all
                Allow from all
        </IfModule>
</Directory>
salve e feche o arquivo.

agora reiniciamos o httpd com o comando:
# service httpd restart 

por fim, vamos executar o cacti cronjob com o comando:
# vim /etc/cron.d/cacti 

e retiramos o comentário da linha:
*/5 * * * *     cacti   /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

agora o cacti parece que esta pronto para ser configurado:
abrimos o navegador web e digitamos:
http://seu.servidor/cacti/
ou
http://ip.do.servidor/cacti/

aparecerá uma tela como essa:
clique em "Next" e depois escolha "New Install" e "Next" novamente, cairemos na próxima página:
Nesta página, não fizemos alterações, apenas nos certificamos que todos os caminhos foram encontrados, se tudo estiver verde clicamos em "Finish".

Pronto, agora só precisamos digitar o usuário e a senha na pŕoxima janela.

Usuário: admin
Senha: admin

No primeiro acesso será solicitado a troca da senha.

Ok! Cacti funcionando.

Inclusão devices e configuração de gráficos

No primeiro acesso o cacti já vem com o device localhost configurado, precisamos apenas alterar o ip para que ele mostre os gráficos padrões gerados do nosso servidor.
Na página inicial após o login, no menu a esquerda vá em "Management" e clique em "Devices", você verá o localhost ja pré-configurado e com o estado de up, clique em cima dele.
Na próxima página você configura como quiser, mas o principal é colocar o IP do seu servidor no campo "Hostname", fazendo isso ele já começara a gerar os gráficos pré-configurados. Veja a figura abaixo:

Aguarde alguns minutos e clique na aba "graps" na parte superior esquerda e poderá ver os gráficos sendo montados do nosso servidor.

Incluir e configurar um switch

Para incluir um switch, na janela inicial de "console", clique em  "create device", ou no menu a direita na parte "Management" clique em "Devices";
Clique em "Add" no canto superior direito;
Na próxima tela configure os dados do switch:
Description: Digite o nome para o switch
Hostname:  Digite o IP do switch
Host Template: Escolha o template mais adequado para o dispositivo, ou deixe em branco (futuramente postarei uma explicação sobre templates e  como criar novos templates)

Nas opções de "Availability/Reachability Options" você escolhe como quer que o dispositivo seja detectado, se é por ping ou por snmp, ou pelos dois.
E abaixo, nas opções de "SNMP Options" você escolhe a versão de snmp que o switch utiliza para enviar os dados e configura de acordo com as configurações de snmp do mesmo.
Após salvar é só clicar em "New graph" no menu a esquerda, localizar o switch em Host e escolher as portas as quais quer monitorar.

É isso por enquanto, estou estudando como gerar templates novos e como incluir plugins no cacti. Em um próximo post descreverei o passo a passo destas configurações.

Até a próxima.

Essa postagem foi baseada e escrita a partir dos seguintes links:

cacti.net
Viva o Linux
http://www.cyberciti.biz






Nenhum comentário:

Postar um comentário