Instalação e Configuração do Cacti e de Cliente Cacti no CentOS 6

Aqui vou Abordar a instalação e configuração do Cacti e de um cliente para ele, vou fazer a instalação também o Spine que é um poller para melhorar a performance do cacti.

  • Nome Servidor Cacti: cacti
    • Ip: 10.101.0.25
  • Nome Cliente Cacti: ldap
    • Ip: 10.101.0.26

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialcentos6_en para que não falte nenhum pacote ou configuração.

Agora vamos instalar as dependências para o cacti

yum install rrdtool rrdtool-devel rrdtool-php net-snmp net-snmp-devel net-snmp-utils net-snmp-libs -y
yum install mysql mysql-devel mysql-libs mysql-server  php-mysql php-adodb php-snmp httpd-devel -y

Agora vamos obter o cacti

cd /usr/src
wget -c http://wiki.douglasqsantos.com.br/Downloads/monitoring/cacti-0.8.8a.tar.gz

Agora vamos desempacotar ele

tar -xzvf cacti-0.8.8a.tar.gz

Agora vamos mover ele para /var/www

mv cacti-0.8.8a /var/www/cacti

Agora vamos cadastrar um usuário para ele

useradd -m -r -s /bin/false cacti

Agora vamos acertar as permissões do diretório com os arquivos

chown -R cacti:apache /var/www/cacti
find /var/www/cacti -type f -exec chmod 664 {} \;
find /var/www/cacti -type d -exec chmod 775 {} \;

Agora vamos colocar o mysql na inicialização do sistema

chkconfig --add mysqld

Agora vamos ativar ele

chkconfig mysqld on

Agora vamos iniciar ele

/etc/init.d/mysqld start

Agora vamos definir uma senha para o root do mysql

mysqladmin -u root password 'senha'

Agora vamos criar o banco de dados para o cacti

mysql -u root -p
CREATE DATABASE cacti;
GRANT ALL PRIVILEGES ON cacti.* TO cacti@localhost IDENTIFIED BY 'senha';
FLUSH PRIVILEGES;
QUIT

Agora vamos acertar o arquivo de controle de acesso ao banco de dados

vim /var/www/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "senha";
$database_port = "3306";
$database_ssl = false;
[...]
$url_path = "/";

Agora vamos importar o banco de dados

mysql -u cacti -psenha cacti < /var/www/cacti/cacti.sql

Agora vamos aplicar um patch no cacti

Vamos acessar o diretório com os arquivos

cd /var/www/cacti

Agora vamos obter o patch

wget -c http://wiki.douglasqsantos.com.br/Downloads/monitoring/snmpv3_priv_proto_none.patch

Agora vamos aplicar o patch

patch -p1 -N < snmpv3_priv_proto_none.patch

Agora vamos remover o patch

rm -rf snmpv3_priv_proto_none.patch

Agora vamos criar um virtualhost para o cacti

vim /etc/httpd/conf.d/cacti.conf
<VirtualHost   *:80>
        ServerName cacti.douglasqsantos.com.br
        ServerAdmin webmaster@douglasqsantos.com.br
        DocumentRoot "/var/www/cacti"
         <Directory "/var/www/cacti">
                 Options -Indexes +FollowSymLinks +MultiViews
                 AllowOverride All
                 Order Allow,deny
                 Allow From All
         </Directory>

        CustomLog /var/log/httpd/cacti.access.log combined
        ErrorLog /var/log/httpd/cacti.error.log
        LogLevel warn
        ServerSignature Off
</VirtualHost>

Agora vamos inserir o apache na inicialização do sistema

chkconfig --add httpd

Agora vamos ativar ele

chkconfig httpd on

Agora vamos iniciar o apache

/etc/init.d/httpd start

Agora vamos acessar http://cacti.douglasqsantos.com.br/install para acertamos a configuração do cacti.

Responda da seguinte forma:

  • Next
  • Next
  • Finish

Após isso vamos ser redirecionados para a página de login o usuário: admin senha: admin, após informar isso vai ser solicitado a alteração da senha altere a senha e vamos logar ;)

Agora vamos alguns ajustes no snmpd do servidor cacti

vim /etc/snmp/snmpd.conf
[...]
#Vamos adicionar a linha abaixo la na linha 76 do arquivo abaixo de com2sec mynetwork NETWORK/24 COMMUNITY
com2sec local localhost public
[...]
#Vamos deixar sysLocation e sysContact como abaixo
sysLocation    Servidor Cacti Matriz
sysContact     Douglas <douglas@douglasqsantos.com.br>

Agora vamos inserir o snmpd na inicialização do sistema

chkconfig --add snmpd

Agora vamos ativar ele

chkconfig snmpd on

Agora vamos inserir o snmptrapd na inicialização do sistema

chkconfig --add snmptrapd 

Agora vamos ativar ele

chkconfig snmptrapd on

Agora vamos iniciar o serviço do snmtp e o snmptrapd

/etc/init.d/snmpd start
/etc/init.d/snmptrapd start

Podemos testar a saída do snmtp da seguinte forma

snmpwalk -v 1 localhost -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux cacti 2.6.32-279.5.2.el6.centos.plus.x86_64 #1 SMP Fri Aug 24 00:25:34 UTC 2012 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (15266) 0:02:32.66
SNMPv2-MIB::sysContact.0 = STRING: Douglas <douglas@douglasqsantos.com.br>
SNMPv2-MIB::sysName.0 = STRING: cacti
SNMPv2-MIB::sysLocation.0 = STRING: Servidor Cacti Matriz
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpM
[...]

Por recomendação do Cacti vamos instalar o spine que é um poller escrito em C que tem uma melhor performace do que o padrão

Vamos acessar o diretório para armazenar os fontes

cd /usr/src

Agora vamos obter o spine

wget -c http://wiki.douglasqsantos.com.br/Downloads/monitoring/cacti-spine-0.8.8a.tar.gz

Agora vamos desempacotar ele

tar -xzvf cacti-spine-0.8.8a.tar.gz

Agora vamos acessar o seu o diretório com os fontes

cd cacti-spine-0.8.8a/

Vamos mandar ele gerar a configuração

./configure

Vamos mandar ele compilar

make

Agora vamos mandar ele instalar

make install

Agora vamos acertar o nome do arquivo de configuração do spine

cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf

Agora vamos acertar a configuração do spine

vim /usr/local/spine/etc/spine.conf
[...]
DB_Host         localhost
DB_Database     cacti
DB_User         cacti
DB_Pass         senha
DB_Port         3306
DB_PreG         0

Agora no cacti em Console/Settings/Paths

  • Em Spine Poller File Path: informe: /usr/local/spine/bin/spine
  • Agora selecione save

Agora Selecione em Console/Management/Devices

  • Selecione o Localhost
  • Em snmp version selecione version 1 as opções que irão aparecer não precisam ser modificadas agora no final da página selecione save.
  • Agora selecione o link Create Graphs for this Host
  • Agora selecione os dispositivos que deseja monitorar e selecione create.

Agora vamos agendar no cron a geração de relatório

crontab -e
[...]
*/5   *   *   *   *    php /var/www/cacti/poller.php > /dev/null 2>&1 && chown -R cacti:apache /var/www/cacti/rra

Agora é só ir acompanhando os gráficos em graphs o primeiro gráfico demora 5 minutos pra gerar por causa do cron.

Agora vamos a configuração do Cliente

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialcentos6_en para que não falte nenhum pacote ou configuração.

No cliente somente precisamos instalar o snmp

yum install net-snmp net-snmp-devel net-snmp-utils net-snmp-libs -y

Agora vamos fazer backup do arquivo de configuração do snmpd

cp /etc/snmp/snmpd.conf{,.bkp}

Agora vamos acertar a configuração do snmpd

vim /etc/snmp/snmpd.conf
[...]
#Vamos adicionar a linha abaixo la na linha 76 do arquivo abaixo de com2sec mynetwork NETWORK/24 COMMUNITY
com2sec local 10.101.0.0/24 douglas
[...]
#Vamos deixar sysLocation e sysContact como abaixo
sysLocation    Servidor Ldap Matriz
sysContact     Douglas <douglas@douglasqsantos.com.br>

Agora vamos inserir o snmpd na inicialização do sistema

chkconfig --add snmpd

Agora vamos ativar ele

chkconfig snmpd on

Agora vamos inserir o snmptrapd na inicialização do sistema

chkconfig --add snmptrapd 

Agora vamos ativar ele

chkconfig snmptrapd on

Agora vamos iniciar o serviço do snmtp e o snmptrapd

/etc/init.d/snmpd start
/etc/init.d/snmptrapd start

Podemos testar a saída do snmtp da seguinte forma

snmpwalk -v 1 localhost -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux ldap 2.6.32-279.5.2.el6.centos.plus.x86_64 #1 SMP Fri Aug 24 00:25:34 UTC 2012 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (653) 0:00:06.53
SNMPv2-MIB::sysContact.0 = STRING: Douglas <douglas@douglasqsantos.com.br>
SNMPv2-MIB::sysName.0 = STRING: ldap
SNMPv2-MIB::sysLocation.0 = STRING: Servidor Ldap Matriz
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
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
[...]
  • Agora no cacti selecione Console/Management/Devices
  • Do lado superior direito selecione add ele esta abaixo de Logout
  • Informe uma descrição para o servidor EX: Ldap
  • Em hostname informe o ip
  • Host template selecione local linux machine
  • Em snmp options selecione snmp version → Version 1
  • Em snmp community informe douglas que nos definimos em rocommunity em /etc/snmp/snmpd.conf
  • Agora selecione Create na parte inferior direita da tela, se a configuração do snmpd estiver correta vamos receber uma mensagem de Save Sucessful
  • Agora na parte superior da tela em Azul temos Create graphs for this host selecione este link
  • Agora selecione todos os necessarios e selecione create na parte inferior direita da tela.
  • Na proxima tela temos algums configurações sobre as cores das legendas eu sempre deixo as default e selecione create
  • Agora selecione Console/Menagement/Graph Trees
  • Agora selecione Default Tree
  • Agora do lado supeiror direito selecione Add
  • Em parent item deixe como [root]
  • Em tree item type selecione host
  • Agora selecione o seu servidor Ldap e selecione Create.

Agora podemos acompanhar os gráficos em graphs os relatórios atualizam a cada 5 minutos que agendamos no cron ;)

No painel direito temos os nossos hosts para adicionar mais hosts siga o mesmo procedimento ;)

Referências