Instalando e configurando o Cacti
Preparando o MySQL
Antes de instalarmos o Cacti, precisamos preparar o ambiente para recebe-lo. Um dos requisitos é o banco de dados MySQL. Nele, já precisamos ter uma base dados e um usuário criado para que o Cacti seja instalado corretamente.
root@debian:~# mysql -p -u root Enter password: ********** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 18166 Server version: 5.1.37-0.dotdeb.1 (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database cacti; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on cacti.* to cacti@localhost identified by 'senha'; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye
Instalação dos Pacotes
A instalação do Cacti é muito simples e você acha documentação relacionada facilmente na internet.
Vale lembrar que você precisa de um Apache com suporte a um PHP, suporte também a SNMP (pacote php5-snmp).
Dois pacotes também necessários, são RRDTool e o SNMP que são responsáveis por fornecer as informações que o Cacti precisa para o monitoramento.
Bom, vamos a instalação dos pacotes.
root@debian:~# aptitude install cacti cacti-spine rrdtool Configuring libphp-adodb: <Ok> Configuring cacti Webserver type: Apache2 Configure database for cacti with dbconfig-common? <Yes> Password of your database's administrative user: ********** MySQL application password for cacti: ********** Password confirmation: **********
Ajustando as Configurações do Cacti
Vamos apenas conferir o arquivo de configuração para ver se está tudo OK.
root@debian:~# vi /etc/cacti/debian.php $database_username='cacti'; $database_password='senha'; $basepath=''; $database_default='cacti'; $database_hostname=''; $database_port=''; $dbtype='mysql';
Instalando e Configurando o SNMP
Primeiramente, vamos instalar os pacotes necessários.
root@debian:~# aptitude install snmpd php5-snmp
Agora precisamos configurar o SNMP para acesso publico, para que a coleta de informações seja possível.
root@debian:~# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig root@debian:~# vi /etc/snmp/snmpd.conf ############################################################################### # Access Control ############################################################################### # sec.name source community com2sec local localhost private com2sec mynet 127.0.0.0/8 public com2sec public default public # sec.model sec.name group mygroup v1 mynet group mygroup v2c mynet group local v1 local group local v2c local group public v1 public group public v2c public # incl/excl subtree mask view all included .1 80 view system included .iso.org.dod.internet.mgmt.mib-2.system # context sec.model sec.level match read write notif access mygroup "" any noauth exact all none none access public "" any noauth exact all none none access local "" any noauth exact all all all # ----------------------------------------------------------------------------- ############################################################################### # System contact information ############################################################################### syslocation Unknown (configure /etc/snmp/snmpd.local.conf) syscontact Root <root@localhost> (configure /etc/snmp/snmpd.local.conf) # ----------------------------------------------------------------------------- ###############################################################################
Obs.: Um modelo desde arquivo pode ser obtido em: http://downloads.fabriciovc.eti.br/snmp/.
Para finalizar, precisamos reiniciar o serviço do SNMP.
root@debian:~# /etc/init.d/snmpd restart
Obs.: Lembre-se de colocar um mynet correto para sua rede.
Testando e Debugando
Se você quiser testar antes de ir para a interface gráfica, ou se a mesma não funcionar, experimente algumas dessas dicas:
Ver se o daemon do SNMP está de fato rodando
root@debian:~# netstat -nlp | grep snm udp 0 0 127.0.0.1:161 0.0.0.0:* 4221/snmpd
Tentar chegar até a máquina a ser monitorada com o nmap
root@debian:~# nmap -sU -p 161 127.0.0.1 Starting Nmap 4.62 ( http://nmap.org ) at 2009-09-24 16:31 BRT Interesting ports on localhost (127.0.0.1): PORT STATE SERVICE 161/udp open|filtered snmp Nmap done: 1 IP address (1 host up) scanned in 2.062 seconds
Use o snmpwalk para testar conectividade
root@debian:~# snmpwalk -v 2c -c public 127.0.0.1 system SNMPv2-MIB::sysDescr.0 = STRING: Linux www.dominio.com.br 2.6.26-2-amd64 #1 SMP SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (218855) 0:36:28.55 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmpd.local.conf) SNMPv2-MIB::sysName.0 = STRING: www.dominio.com.br SNMPv2-MIB::sysLocation.0 = STRING: Unknown (configure /etc/snmp/snmpd.local.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORID.1 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.3 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORDescr.1 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.3 = STRING: The management information definitions for the SNMP User-based Security Model. SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (0) 0:00:00.00
Se deu tudo certo até aqui, você pode acessar a interface gráfica.
http://www.dominio.com.br/cacti
Existe uma configuração inicial que precisa ser realizada, mas é bem simples de realizar. Posterior a isso, é só adicionar as novas máquinas para serem monitoradas.