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






segunda-feira, 3 de setembro de 2012

Monitoramento com ntop Instalação CentOS 6



Para aqueles que não conhecem o ntop, ele é uma ferramenta que examina o trafego na rede e  dignostica o uso desta, semelhante ao que o popular comando top Unix faz. O ntop é baseado em libpcap e foi desenvolvido de uma forma portátil a fim de que se possa rodar em plataformas Unix e Win32.

Usuários do ntop podem usar a interface web (ex.: Firefox) para navegar através das informações de trafego geradas pelo ntop e obter relatórios do estado da rede. Em último caso, ntop pode ser visto com um simples agente RMON-Like com uma interface web embutida.

Funcionalidades do ntop:

  • interface web
  • configuração limitada e administração através da interface web
  • Uso reduzido de CPU e memória (varia de acordo com o tamanho e o tráfego da rede)
O ntop é fácil de usar e adequado para o monitoramento de diversos tipos de redes.

Instalação do ntop-5.0.1 no CentOS 6

Este tutorial visa abranger a instalação do ntop em um servidor recém instalado com o CentOS 6, prevendo todos os tipos de problemas que o usuário possa encontrar.

Primeiramente baixe o Ntop:

Você pode ir diretamente no site do ntop na área de download: http://www.ntop.org/get-started/download/

Ou pode usar o comando wget pelo terminal do CentOS. caso não tenha o wget instale-o usando o comando:

      # yum install wget.i686 

e depois:
      # cd /diretório__onde_quer_baixar_o_arquivo
      # wget http://sourceforge.net/projects/ntop/files/ntop/Stable/ntop-5.0.1.tar.gz

Instale alguns pré-requisitos:

     # yum install libcap libcap-devel glib gdbm gdbm-devel
     # yum install libtool automake autoconf -y
     # yum install gcc cpp -y
     # yum install tcpdump nmap -y
     # yum install libpcap-devel zlib zlib-devel geoip geoip-devel


Instale o RRDTool seguindo os passos:

Crie o Repositório dag.repo:

      # vim /etc/yum.repos.d/dag.repo

Após adicione ao repositório:

      [dag]
      name=Dag RPM Repository for Red Hat Enterprise Linux
      baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
      gpgcheck=1
      gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
      enabled=1


Após salvar e sair do arquivo, digite:

       # yum install rrdtool rrdtool-devel -y

Pronto o RRDTool está instalado

Agora instalamos o ntop:

       # tar -zxvf ntop-5.1.0.tar.gz
       # cd ntop-5.1.0
  


Para executar os próximos comandos deve-se ter instalado no servidor o subversion, o phyton e o make. Caso não tenha digite os comandos abaixo, se não pule a etapa

         Para o subversion:
         # yum install subversion
         para o phyton:
         # yum install python-devel.i686
        e para o make
         # yum install make


E execute os comandos abaixo:


        # ./autogen.sh
        # make
        # make install



Criação de usuário

Após a instalação você pode criar um usuário para o ntop:

        # useradd -M -s /sbin/nologin -r ntop
       

Configurar permissão nos diretórios

Depois de criado novo usuário, você precisa configurar as permissões de acesso nos diretórios com os comando abaixo:



        # chown ntop:root /usr/loca/var/ntop/
        # chown ntop:ntop /usr/local/share/ntop/

Após isso configure a senha de admin para o novo usuário

        # ntop -A

Aparecerá:

        Mon Sep  3 10:55:20 2012  Initializing gdbm databases
        Please enter the password for the admin user:
        Please enter the password again:
        Mon Sep  3 10:55:20 2012  Admin password set...

Pronto, ntop instalado. Inicie  o ntop com o comando abaixo:

        # /usr/local/bin/ntop -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon

Se você tiver mais de uma interface de rede (eth0, eth1...) é só digitar o comando:

      # /usr/local/bin/ntop -i "eth0,eth1" -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon
Após isso, é só digitar no seu browser: http://ip_do_servidor:3000


Para parar o ntop é só digitar:

        # killall ntop

Essas são as instalações básicas do ntop. Em um outro artigo explicarei algumas configurações e seu funcionamento.

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

ntop
viva o linux
http://www.cyberciti.biz