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.
No passo 6 (ajuste do MYSQL, o meu deu uma mensagem de erro:
mysqladmin: connect to server at ‘localhost’ failed
Access denied for user ‘ser=root’@’localhost’ (using password: YES)’
Renato,
verifique o usuário que você está criando (qual é o nome? ser?) Quando definir o usuário (usuario1, por exemplo) coloque o “p” na frente (ficaria pusuario1). Não é obrigatório, mas agiliza o processo.
E preste atenção nos caracteres, pois é case sensitive.
Se você quiser, cole a sua configuração.
Eu estou seguindo este tutorial passo a passo, sem mudar nada e no passo 6 deu este erro que eu informei. O que devo mudar nele? Obrigado.
Fala Renato blz?
Provavelmente temos um erro de sintaxe ai… onde está escrito:
$ mysqladmin –user=root create cacti -pbrainwork
Substitua por :
$ mysqladmin –-user=root create cacti -pbrainwork
Observe que são dois hífens para o parâmetro user.
Qualquer dúvida, manda comment de novo… abraços!
Agora deu a mensagem:
mysqladmin: connect to server at ‘localhost’ failed
Access denied for user ‘root’@’localhost’ (using password: YES)’
Tentei fazer tb usando o sudo, mas mesmo erro ocorre. Estou fazendo isso em uma VM (virtualbox) no Ubuntu Server. Ele funciona normalmente com acesso à internet e tudo mais. Só nessa hora que deu erro. 🙁
Bom, vamos tentar uma outra alternativa… resetar o usuário root no mysql.
no shell do linux, aplique os seguintes comandos:
$ mysqladmin –user=root password brainwork
$ mysqladmin –user=root –password reload
Digite a senha para acesso ao mysql, “brainwork”, e pronto.
Agora refaça o processo de criação da tabela cacti.
$ $ mysqladmin –-user=root create cacti -pbrainwork
Um doc que pode te ajudar é este aqui:
http://www.cacti.net/downloads/docs/html/unix_configure_mysql.html
e este…
http://www.cacti.net/downloads/docs/html/unix_configure_cacti.html
Se der alguma coisa, me manda comentarios de novo, mas com logs dos comandos que vc colocou no terminal!
Abraços!!
Consegui !!!
shell> mysqladmin –user=root create cacti -p usuario1
shell> mysql –user=root mysql -p usuario1
Excelente tópico parabéns!!
Ótimo tutorial, instalei de acordo com o seu tuto, e show de bola. Só ocorre um problema quando vou gerar os gráficos que não aparece nada.
Alguém sabe como resolver isso?
Abraços.
Diego, tem que esperar o time do Poller (no exemplo 5 minutos).
Muito show esse tutorial!!
André, poderia mostrar como o seu snmpd.conf está configurado?
Obrigada!
Seria ótimo!
Posso te mandar por email? não consigo anexar aqui nos comentários…
Muito bom esse cacti, eu uso ele e tenho graficos ate de meu broadcast e latencia.
Amigo segui todos os passos. Tudo é perfeitamnete instalado, sem nenhum tipo mensagem erro, mas não consegui fazer o cacti funcionar no browser.
No passo 9. quando eu digito o ip_da_maquina/cacti aparecem as seguintes mensagens:
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
Olá André!
Curti bastante seu artigo!
Instalei o cacti no Debian que tenho e acesso ele direitinho, porém não consigo criar um dispositivo pois sempre me retorna a mensagem Error: Save Failed.
Alguma idéia do que poderia ser?
Obrigadinha!
Olá Juliana, Obrigado.
Infelizmente faz um bom tempo que não mexo no Cacti…
O mais provável é ter dado algum problema no database, a tabela pode ter sido excluída ou não criada. Você instalou algum plugin? Também pode ser que a tabela foi criada, mas esta faltando algum campo ou ainda, o usuário não tem permissão para inserir dados na tabela.
Tente mudar as permissões da tabela, ou o privilégio do usuário MySQL. Veja o comentário do Denys.
Não instalei nenhum plugin.
E sobre o comentário do Denys tentei o procedimento e deu esta mensagem:
mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘ser=root’@’localhost’ (using password: YES)’
O problema está ai… vc não consegue acessar o MySQL.
Ele está rodando?
$ service mysql status
resultado> mysql start/running, process 67890
Por favor segua as instruções dos comentários do Rafael Leão.
root ~ # service mysql status
/usr/bin/mysqladmin Ver 8.42 Distrib 5.1.61, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.1.61-0+squeeze1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 2 hours 30 min 45 sec
Threads: 5 Questions: 2689 Slow queries: 0 Opens: 493 Flush tables: 1 Open tables: 64 Queries per second avg: 0.297.
Já tinha tentado antes o procedimento do Rafael Leão, mas não tive sucesso:
mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘ser=root’@’localhost’ (using password: YES)’
Juliana, veja o log:
“error:‘Access denied for user ‘ser=root’@’localhost’ (using password: YES)’
O seu usuário chama ser=root???
Parece que você esta digitando algo errado…
Observe onde e – (traço) e onde é – – (traço traço).
Da uma olhada neste link também, pode te ajudar.
http://forums.mysql.com/read.php?11,34014,46593#msg-46593
Consegui agora André! Obrigada pela atenção e desculpe o incômodo.
Juliana, coloca como você resolveu o problema.
Boa Noite,
Alguem poderia me ajudar instalei a Version 0.8.8a
mais o grafico fica com atraso ele ate encrementa o grafico mais com atraso, já verifiquei a hora da maquina mais nao fucionou… Alguem ja passo pela mesma coisa?
Grato pela atenção….
Confirma a configuração do CRON (passo 7).
André poderia me informar se este tutorial funciona somente em Ubuntu Server?
Preciso fazer alguns teste, mas não tenho infra-estrutura para instalar em um server. Estou utilizando o Ubuntu Desktop.
Desde já muito obrigado.
Kleiton,
O procedimento de instalação dos pacotes e dependências é apenas para Ubuntu/Debian. Já os passos para configuração do Cacti são os mesmos para qualquer distribuição.
O procedimento funciona da mesma forma no Ubuntu Desktop. Você também podu utilizar um ambiente virtual, para testes e homologação…
Olá, tenho o cacti instalado junto com um software de Netflow (Caligare).
SO: CentOS + Mysql
PROCESSORS
Number of processors: 1x
Type:Pentium 4
Slot type: LGA775
L2 cache: 3.6MB (P4 Single Core),
ARCHITECTURE
Chipset
Intel 3000 + ICH7R (Intel® 82801GR)
Processor Front Side Bus speed
800MHz or 1066Mhz
Tenho 300 roteadores cadastrados e pelo que percebi o poller do cacti está encavalando aas requisições que são feitas a cada 5 minutos. O load average está chegando em 60, quando deveria ser no máximo 1.
Veja a saída do comando #ps -afx
2496 ? S 0:09 /usr/bin/python /usr/sbin/yum-updatesd
2686 tty1 Ss+ 0:00 /sbin/mingetty tty1
2687 tty2 Ss+ 0:00 /sbin/mingetty tty2
2688 tty3 Ss+ 0:00 /sbin/mingetty tty3
2689 tty4 Ss+ 0:00 /sbin/mingetty tty4
2690 tty5 Ss+ 0:00 /sbin/mingetty tty5
2691 tty6 Ss+ 0:00 /sbin/mingetty tty6
24833 ? Ss 0:01 crond
3462 ? S 0:00 \_ crond
3463 ? Ss 0:00 \_ /bin/sh -c php /var/www/html/cacti/poller.php > /dev/null 2>&1 ; /var/www/html/cacti/scripts/gera_relat_sla.sh
3464 ? S 0:00 \_ php /var/www/html/cacti/poller.php
3485 ? S 0:00 \_ /usr/bin/rrdtool –
7056 ? Ss 0:31 nfcd
7095 ? S 2153:08 \_ nfcd
7096 ? S 0:09 \_ nfcd
8162 ? S 0:04 \_ nfcd
8185 ? S 4:11 \_ nfcd
1377 ? S 15:49 \_ nfcd
9598 ? SLs 0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
17590 ? Ss 12:12 /usr/sbin/snmptrapd -Lsd -p /var/run/snmptrapd.pid
20433 ? S 0:02 /usr/bin/php -q /var/www/html/cacti/cmd.php 0 457
28429 ? S 0:01 /usr/bin/php -q /var/www/html/cacti/cmd.php 0 457
2119 ? S 0:00 \_ sh /var/www/html/cacti/scripts/pdp3.sh 172.23.20.
2372 ? S 0:00 \_ snmpwalk -Oqv -v2c -c 172.23.20
O que pode estar acontecendo? O que posso fazer?
olá bom dia, eu instalo o cacti tanto no windows como já tentei no linux, mas não sei o que estou fazendo de errado que O gráfico não aparece na tela.
Boa Tarde, Gostaria que me ajuda-se!! dou conta de criar os graficos porem ele nao mostram nad !!! sabe o que pode ser ???
Estou com o mesmo problema do Romualdo.
O Apache e o MySQL está rodando mas não consigo acessar pelo browser.
Ele passa a seguinte menssagem:
The requested URL /cacti was not found on this server.
Bom dia Romualdo / Leonardo,
Como esta a estrutura de diretórios onde o Cacti esta instalado? Dentro da pasta do cacti executem os comandos “pwd” (para mostrar onde o diretório do cacti esta) e “ls” (para listar o diretório).
Abs,
Leandro Oliveira
Bom dia Daniel,
Pode ser que o OID utilizado para realizar a coleta no equipamento não esteja correta. Quando você entra na edição do host poderá ver un link no final da página (na coluna Debugging) com a opção “Verbose Query”, clique nesta opção e verifique os outputs do SNMP.
At.te,
Leandro Oliveira
Ola, fiz a instalacão conforme explica, mas na hora chega o 9º passo, não aparece nada no navegador, a pagina fica em branco.
O que pode ser?
Terminei de instalar o cacti, mas estou com problemas, pois depois que façõ o procedimento do passo 9 na minha página do browser a página fica em branco e não aparece a pagina do login.
alguem consegue me ajudar?
o tutorial é muito bom ajudou-me bastante. alguém pode me ajudar eu quero monitorar a minha CPU,memória e a latência?
Caros amigos, Boa tarde !
Estou com um problema no meu cacti, o mesmo apresenta os gráficos com atraso de 1 hora após a mudança no horario de verão.
Alguém já pegou um caso parecido ?