Cacti – instalação e configuração no CentOS 6

Cacti é uma ferramenta administrativa de rede, que recolhe e exibe informações sobre o estado de uma rede de computadores através de gráficos. Permitindo o monitoramento e gerenciamento de redes simples até redes complexas, com centenas de dispositivos. Foi desenvolvido para ser flexível de modo a se adaptar facilmente a diversas necessidades, bem como ser robusto e adicionando a isto uma interface Web intuitiva e fácil de usar. Monitora o estado de elementos de rede e programas bem como largura de banda utilizada e uso de CPU.

Trata-se de uma interface e uma infra-estrutura para o RRDTool, que é responsável por armazenar os dados recolhidos e por gerar gráficos em um banco de dados MySQL. A interface é completamente orientada à PHP. As informações são repassadas para a ferramenta através de scripts ou outros programas escolhidos pelo usuário os quais devem se encarregar de obter os dados.

Pode-se utilizar também o protocolo SNMP para consultar informações em elementos de redes e/ou programas que suportam tal protocolo. Sua arquitetura prevê a possibilidade de expansão através de plugins que adicionam novas funcionalidades. Um destes plugins é o PHP Network Weathermap que mostra um mapa da rede e o estado de cada elemento.

O Cacti conta com uma atuante comunidade internacional através de fóruns de discussão com mais de 160.000 mensagens e 20.000 usuários, há uma boa chance de que sua pergunta já foi feita por outro usuário.

O Cacti é liberado sob a licença GNU (General Public License), que significa que está completamente livre, sem amarrações. No entanto, é possível contribuir através de doações pelo site da ferramenta promovendo o desenvolvimento do projeto.

Instalação

1 – Instalação do Cacti

[[email protected] opt]# wget http://download.fedora.redhat.com/pub/epel/6/i386/cacti-0.8.7g-1.el6.noarch.rpm
[[email protected] opt]# wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/cacti-spine-0.8.7a-1.el6.rf.i686.rpm
[[email protected] opt]# yum install httpd mysql-server net-snmp php php-mysql rrdtool php-snmp net-snmp-devel  net-snmp-utils rrdtool-devel rrdtool-php -y
[[email protected] opt]# rpm -Uvh cacti-0.8.7g-1.el6.noarch.rpm
[[email protected] opt]# rpm -Uvh cacti-spine-0.8.7a-1.el6.rf.i686.rpm

2 – Configuração do bando de dados Mysql-server

[[email protected] cacti]# /etc/init.d/mysqld start
[[email protected] cacti]# chkconfig --level 123456 mysqld on
[[email protected] cacti]# mysql
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql>  grant all  privileges on cacti.* to [email protected]'localhost' identified by 'senha';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \q

3 – Configurando o db.php

[[email protected] cacti]# cd /etc/cacti/
[[email protected] cacti]# cp db.php db.php.old
[[email protected] cacti]# vim db.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "senha";
$database_port = "3306";

4 – Copiando as estruturas das tabelas para mysql-server

[[email protected] cacti]# cd /usr/share/doc/cacti-0.8.7g/
[[email protected] cacti-0.8.7g]# mysql cacti < cacti.sql

3 – Configuração do Httpd

[[email protected] cacti-0.8.7g]# /etc/init.d/httpd start
[[email protected] cacti-0.8.7g]# chkconfig --level 123456 httpd on
[[email protected] cacti-0.8.7g]# cd /etc/httpd/conf.d/
[[email protected] conf.d]# vim cacti.conf 
#
Alias /cacti    /usr/share/cacti
        Order Deny,Allow
        Deny from all
        Allow from 192.168.1.0/24

4 – Configurando o snmpd.conf

[[email protected] cacti]# cd /etc/snmp/
[[email protected] snmp]# snmpconf 
Os seguintes arquivos de configuração instalados foram encontrados:
   1:. Snmptrapd.conf
   2: /etc/snmp/snmptrapd.conf
Gostaria altera-los? Seu conteúdo será mesclado com o
arquivos de saída criado por esta sessão.
Válido exemplos resposta: "all", "none", "3", "1,2,5"
Leia em que (default = all):
Eu posso criar os seguintes tipos de arquivos de configuração para você.
Selecione o tipo de arquivo que deseja criar:
(Você pode criar mais de um, como você executar este programa)
   1: snmpd.conf
   2: snmptrapd.conf
   3: snmp.conf
Outras opções: quit
Selecione Arquivo: 1
As informações de configuração que pode ser colocado em snmpd.conf é dividido
em seções. Selecione uma seção de configuração para snmpd.conf
que você deseja criar:
   1: monitorar vários aspectos do host executando
   2: Instalação do Sistema de Informação
   3: Os destinos de interceptação
   4: Modo de Operação do Agente
   5: Estendendo o agente
   6: Access Control Setup
Outras opções: finished
...

Exemplo do snmpd.conf SIMPLES.

# PROCESSOS
proc httpd 25 5
proc squid 100 10
proc samba 100 1
proc 300 2

# DISCO PARTIÇOES
disk / 2000

# ARQUIVOS DENTRO DE UMA PARTIÇÃO
file /var/lib/mysql 1000000

# LOCALIZAÇÃO DO SERVIDOR
syslocation cpd

# CONTATO ADMINISTRADOR DE SISTEMAS
syscontact O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo.

# SYSSERVICES
sysservices 79

# trap2sink: A SNMPv2c trap receiver
# arguments: host [community] [portnum]
trap2sink

# COMUNIDADE A QUAL PERTENCE ESTE SERVIDOR + CLASSE DE REDE
rocommunity gnulinuxbr 192.168.1.0/24

[[email protected] snmp]# /etc/init.d/snmpd restart
[[email protected] snmp]# chkconfig --levels 35 snmpd on

5 – Configurando o crontab

[[email protected] /]# cd /etc/cron.d
[[email protected] cron.d]# vim cacti
*/5 * * * *     cacti   /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

6 – Acessando o Cacti

http://192.168.1.21/cacti/install/

Rumbora para instalação….

Para acessar utilize o usuário admin e a senha admin.

Adicionando servidores ao Cacti

Clique no campo Device
Por padrão, o cacti vem com uma configuração para o localhost, apague se achar necessário, basta selecionar o quador e clicar em “go” com a opção “delete” ativada.
Para adicionar um novo servidor, clique no canto superior direito da tela em “add”.
Preencha com os dados do servidor a ser monitorado. No campo “Host Templates” selecione “ucd/net SNMP Host” e clique em “Ceate”.

Na mesma tela, na parte inferior, em “Add Data Query” vamos selecionar “SNMP-Get Monted Partitions” para monitorar as partições dos discos do servidor. Após selecionar o campo, clique em “Add”.

Agora vamos ao tercerio campo na lista de Associated Graph Templates” clique em “Save” para ativar as configurações.

Clique no servidor que acabamos de salvar para criar os gráficos referentes ao mesmo.
Clique em “Create Graph for this host”.

Agora é preciso marcar todos os campos em que vamos querer criar os gráficos, certifique-se de marcar apenas o que lhe interessa. Depois de tudo selecionado, basta clicar em “Create”.

Concluímos a criação dos gráficos que serão os responsáveis por nos passar as informações que necessitamos. A partir deste momento, é necessário definir as árvores de visualização para este gráfico que foram criados.

Clique no campo “Graph Trees”.
Clique no campo “Add”.

Agora iremos definir a árvore que será montada no campo dos Gráficos.
Você pode utilizar da forma que mais lhe agradar, um exemplo muito útil para você que pretende monitorar diversos servidores de empresas diferentes em um único ambiente de monitoração, pode-se montar várias árvores, cada uma com o nome de uma empresa e dentro de cada árvore adicionar os servidores que pretencem a cada uma delas.

Clique em “Add” para adicionar o servidor GNU/Linux a ser monitorado.

Preencha o campo “Title” com o nnome do Host do servidor a ser monitorado e depois clique em “Create”.

Neste momento já podemos ver o host monitoring aparecendo dentro da árvore Servidores GNU/Linux.

Agora vamos clicar em “Add” ao lado do host monitoring para incluir os itens que serão monitorados.

Exemplo para adicionar um Host

Fontes:

http://www.fogonacaixadagua.com.br/2009/09/instalando-e-configurando-o-servico-snmpd-no-red-hat-5-3-centos-5-3/
http://forums.cacti.net/about15067.html
http://www.cacti.net
http://www.vivaolinux.com.br/dica/Seguranca-no-protocolo-SNMP-versao-3.0-%28Debian%29

.