De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Gráficos e monitoramento com o Cacti usando SNMP

Colaboração: Tiago Bezerra

Data de Publicação: 28 de Setembro de 2007

O Cacti, segundo seu site oficial, é um front end competo para o RDDTool, que armazena todas as informações necessárias para criar gráficos em uma base de dados MySQL. O front-end é escritp em PHP, e usa o suporte a SNMP para criar gráficos como o MRTG.

Na minha opinião, por ele ser uma LAMP, é bem mais dinâmico do que o MRTG puro e a capacidade de ampliar e/ou gerar gráficos personalizados é seu principal diferencial, assim como um bom motivo para implementa-lo em sua rede.

Instalação

A instalação é muito simples, e muito bem documentada pelo site oficial, assim como em sites e blogs espalhados na NET. Não vou perder muito tempo aqui, portanto.

Você irá precisar de um Apache com um PHP com suporte a SNMP e MySQL. Recomendo que use os pacotes de sua distribuição preferida.

Se você resolver compilar os ingredientes, por favor use as dicas contidas nesse post, mas apenas atente-se em ativar a opção with-snmp do PHP senão você sempre irá pegar erros de SNMP error ao usar a interface administrativa.

Precisaremos também de pacotes como o RRDTool e o net-snmp, que com certeza devem ter em sua distribuição pronto para ser instalado.

Com tudo instalado e funcionando, descompacte o pacote que você pega no site e coloque em algum lugar acessível pelo apache, por exemplo /var/www/cacti no debian.

Aproveite e edite o include/config.php colocando os dados do seu banco de dados, como IP, username e senha. Não tem um banco ainda? Tudo bem, crie agora mesmo e ja importe a estrutura utilizada pelo cacti:

     $ mysql -p -u root
     mysql> create database cacti;
     mysql> grant all privileges on cacti.* to  cacti @'localhost  identified by  SENHA_SECRETA ;
     mysql> source /var/www/cacti/cacti.sql
     mysql> quit

Crie um usuário para o cacti e dê permissão nos diretórios rra e log , ou use o root para fazer um agendamento do crontab:

     */5 * * * * /path/to/php /path/to/cacti/poller.php > /dev/null 2>&1

Esse cara vai ser o que de fato irá colher os dados dos seus hosts. Bom, agora acesse a interface do cacti e finalize a instalação. O usuário e senha inicial é admin , será solicitado para trocar no primeiro login.

Configurando os hosts

Os hosts também precisarão ter o net-snmp para que o servidor colha as estatísticas a cada 5 minutos.

No SuSE você pode arriscar um yast -i net-snmp e no Red Hat um yum install net-snmp . Os arquivos de configuração ficam em /etc/snmpd.conf e /etc/snmp/snmpd.conf respectivamente.

Depois de configura-los apenas lembre-se de marca-lo para iniciar durante o boot:

     # chkconfig snmpd on

Configurando o SNMP

Segue um exemplo de configuração que FUNCIONA:

     # First, map the community name (COMMUNITY) into a security name
     # sec.name source community
     com2sec local localhost public
     com2sec mynetwork 200.200.200.0/24 public
  
     # Second, map the security names into group names:
     # sec.model sec.name
     group EverGroup v2c mynetwork
     group EverGroup usm mynetwork
  
     # Third, create a view for us to let the groups have rights to:
     # incl/excl subtree mask
     view all included .1 80
  
     # Finally, grant the group access
     # context sec.model sec.level match read write notif
     access EverGroup   any noauth exact all none none
  
     # Process checks.
     proc httpd
     proc cron
     proc mysqld
  
     # Disk
     disk /
     disk /var
  
     # Check for loads:
     load 12 14 14

Lembre-se de colocar um mynetwork correto para sua rede.

Testando/ Debugando

Se você quiser testar antes de ir para a interface gráfica, ou se a mesma não funcionar, experimente algumas dessas dicas:

  1. Ver se o daemon do SNMP está de fato rodando:
         # netstat -nlp | grep snm
         tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 15297/snmpd
         udp 0 0 0.0.0.0:161 0.0.0.0:* 15297/snmpd
    
  2. Tentar chegar até a máquina a ser monitorada com o nmap:
         # nmap -sU -p 161 200.200.200.90
      
         Starting Nmap 4.20 ( http://insecure.org ) at 2007-09-18 09:41 BRT
         Interesting ports on host.com.br (200.200.200.90):
         PORT STATE SERVICE
         161/udp open|filtered snmp
      
         Nmap finished: 1 IP address (1 host up) scanned in 0.325 seconds
    
  1. Use o snmpwalk para testar conectividade:
         # snmpwalk -v 2c -c public 192.168.0.100 system
         SNMPv2-MIB::sysDescr.0 = STRING: Linux host 2.6.8-24.23-smp #1 SMP Thu Jun 8 13:31:34 UTC 2006 i686
         SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
         DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (6174082) 17:09:00.82
         SNMPv2-MIB::sysContact.0 = STRING: Me
         SNMPv2-MIB::sysName.0 = STRING: host
         SNMPv2-MIB::sysLocation.0 = STRING: Right here, right now.
         SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
         SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
         SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
         SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
         SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip
         SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB
         SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
         SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
         SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance
         SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
    
    Se tudo até aqui deu certo, você pode adicionar novas máquinas em Host Templates -> ucd/net SNMP Host usando public como community e SNMP Version 2″, porta padrão (161)

    ==Monitorando o MySQL==

    Caso você goste do Cacti, e você provavelmente vai gostar, você poderá querer monitorar seus servidores com MySQL. Eu usei esse template que você pode baixar daqui e recomendo.

    Basicamente, depois de instalado você precisar dar permissão para o usuário do cacti conectar na base e coletar as informações. Isso pode ser feito com o comando:

         GRANT PROCESS ON *.* TO  cacti @'200.200.200.0′ IDENTIFIED by  SenhaSecreta ;
    

    É isso aí, espero que goste do Cacti e tenha relatórios impressionantes para tomadas de decisões.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Tiago Bezerra