Após uma breve introdução ao Cacti e ao Weathermap, vou mostrar com instalar e configurar os dois. Nesta primeira parte vamos fazer o Cacti apenas, que é o sistema base. Depois falaremos do Weathermap, plugin para ilustrar a topologia da rede.
Antes de começar, quero de publico agradecer ao Daniel Gurgel, que acompanha o blog e sempre participa, deixando comentários e sugestões. Este tutorial foi idéia dele, sendo que além de sugerir o tópico ele mandou um passo a passo para facilitar meus testes e ainda me ajudou a fazer as configurações no Linux.
Voltando ao que interessa, o Cacti foi instalado no Ubuntu Server 10.4, que pode ser baixado gratuitamente neste link.
Instalando o Cacti
1.) Entre no modo privilegiado, e a partir da pasta root faça o download e instale o Cacti e suas dependências bem como os software que serão utilizados.
$ sudo su
$ cd /root
$ wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
$ aptitude install apache2 mysql-server mysql-client php5-cli snmp rrdtool libapache2-mod-php5 php5 php5-cgi php5-gd php5-snmp php5-mysql php-pear chkconfig patch zip unzip
*Quando solicitado confirme a senha do usuário root (mysql). No caso usamos a senha "brainwork".
2.) Após a instalação verifique o status do Apache e do MySQL.
$ service apache2 status
resultado> Apache is running (pid 12345).
$ service mysql status
resultado> mysql start/running, process 67890
$ chkconfig –list apache2
apache2 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$ chkconfig –list mysql
mysql 0:off 1:off 2:off 3:off 4:off 5:off 6:off
3.) Corrija a inicialização do MySQL.
$ update-rc.d mysql defaults
4.) Descompacte o Cacti, e em seguida crie um “link” para a sua pasta.
$ tar xvf cacti-0.8.7e.tar.gz -C /var/www/
$ ln -s /var/www/cacti-0.8.7e/ /var/www/cacti
5.) Aplique os paths do Cacti.
$ cd /var/www/cacti
$ wget http://www.cacti.net/downloads/patches/0.8.7e/cli_add_graph.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/snmp_invalid_response.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/template_duplication.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/fix_icmp_on_windows_iis_servers.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/cross_site_fix.patch
$ patch -p1 -N < cli_add_graph.patch
$ patch -p1 -N < snmp_invalid_response.patch
$ patch -p1 -N < template_duplication.patch
$ patch -p1 -N < fix_icmp_on_windows_iis_servers.patch
$ patch -p1 -N < cross_site_fix.patch
6.) Ajuste as permissões no MySQL, para o usuário cactiuser.
$ mysqladmin –user=root create cacti -pbrainwork
$ mysql –user=root mysql -pbrainwork
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘brainwork’;
mysql> flush privileges;
mysql> quit
$ mysql –user=root –password=brainwork cacti < cacti.sql
*Obs: case sensitive.
7.) Edite o arquivo config.php, cadastrando a senha utilizada anteriormente (brainwork) na linha $database_password.
$ vim include/config.php
$ database_password = "brainwork";
8.) Adicione o Cacti ao Crontab (poller a cada 5 minutos).
$ vim /etc/crontab
# Cacti Poller
*/5 * * * * root php /var/www/cacti/poller.php > /dev/null 2>&1
9.) O Cacti já foi instado, e podemos acessá-lo via Web.
Abra o browser de sua escolha e digite http://ip/cacti/
Na janela que abrirá, clique Next > New Install, Next > Finish. Em seguida faça o login, com usuário admin e senha admin. O Cacti solicitará que a senha seja alterada.
Com isto finalizamos a instalação do Cacti. Agora já é possível cadastrar os equipamentos (roteadores, switches, firewall, etc…) e monitorá-los individualmente (CPU e utilização das interfaces, por exemplo).
Cadastrando um equipamento no Cacti
O Cacti verifica o host através de PING (que pode ser ICMP, UDP ou TCP) e SNMP. O ICMP vai servir para verificar o caminho até o dispositivo, mas é o SNMP que permite a coleta de informações como a utilização do processador e da memória, entre outros.
Assim é necessário que o equipamento que vai ser monitorado possua uma comunidade Read-only.
10.) Na aba console (web), clique em Device e depois em Add (canto superior direito).
Preencha os seguintes campos:
* Description: BrainCORE
* Hostname: 10.10.10.1
* Host Template: Cisco Router
* SNMP Version: Version 2
* SNMP Community: brain_work_com_ro
* Downed Device Detection: Ping and SNMP
* Ping Method: ICMP Ping
Após preencher os dados clique em Create.
Caso esteja tudo certo você verá informações do equipamento, trazidas pelo SNMP e pelo Ping.
12.) Criando gráficos para o equipamento.
Vamos criar dois gráficos para esse switch: Utilização de CPU e utilização da interface F0/8 (uplink).
Para isso clique em “*Create Graphs for this Host”, e na tela que se abrirá selecione a opção “Create: Cisco – CPU Usage" e a interface FastEthernet0/8.
Em seguida clique em Create, e na página seguinte novamente Create.
13.) Adicione o gráfico a árvore de gráficos.
Selecione no menu do lado esquerdo Graph Trees > Default Tree e então Add.
Preencha os campos:
* Tree Item Type: Host
* Host: BrainCore (equipamento cadastrado anteriormente, no item 10)
Clique Create e em seguida em Save.
* Repita o processo (itens 10, 11, 12 e 13) para cada equipamento que você deseja monitorar.
14.) Visualizando os gráficos.
Basta clicar na aba graphs para ver os hosts cadastrados do lado esquerdo. Selecione um host e você verá os seus gráficos.
Aqui finalizamos a primeira parte do tutorial.
Note que por enquanto temos apenas o Cacti, com suas funcionalidades básicas, já que nenhum plugin foi utilizado.
Fica por conta de cada um instalar os plugins que acharem necessário, lembrando que em breve postarei um tutorial para a instalação e configuração do Weathermap.
Dica: Além do Weathermap, já citado, outros plugins úteis são o Monitor, que verifica se o equipamento está no ar (UP, Down…), o Thold, que permite a criação de thresholds e envio de alertas, e ainda o RealTime, que gera gráficos em Real Time.
Mais informações sobre o Cacti, documentação, How To e Plugins aqui.
Até a próxima.