anúncios

sexta-feira, 23 de outubro de 2015

Instalando e Configurando o Cacti no Debian

O que é Cacti ?

Cacti é uma ferramenta de monitoramento de redes opensource sob licença GPL, que lê 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.

Utiliza-se adicionalmente 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.

Depois de conhecer o Cacti e pra que serve, podemos seguir os procedimentos de instalação e configuração do Cacti no seu servidor GNU/Linux Debian.

Observação: Testado no GNU/Linux Debian 8 (Jessie) e versão do Cacti é 0.8.8f até a data de publicação deste post


Atualizando o repositório de pacotes
#apt-get update
Instalando os pacotes pré-requisitos necessários
#apt-get install gcc make apache2 mysql-server libmysqlclient-dev libperl-dev php5 php5-mysql snmp snmpd libsnmp-dev libsnmp-base libnet-snmp-perl rrdtool openssl

Criando o banco de dados e usuário para o Cacti no MySQL
# mysql_install_db
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL >
mysql> create database cacti character set utf8;
Criar o usuário cactiuser para o banco cactiuser
mysql> GRANT ALL PRIVILEGES ON *.* TO cactiuser@localhost IDENTIFIED BY 'senha_cactiuser' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> quit


Criando usuário cactiuser sem Shell
#useradd cactiuser -s /bin/false
#passwd cactiuser
Digite a nova senha UNIX:
Redigite a nova senha UNIX:
passwd: senha atualizada com sucesso


Download Cacti
Opcional: Criar um diretório cacti em Downloads
$mkdir /home/SEU_USUARIO/Downloads/cacti
$cd /home/SEU_USUARIO/Downloads/cacti
$wget -c "http://www.cacti.net/downloads/cacti-0.8.8f.tar.gz"
#tar -xzvf cacti-0.8.8f.tar.gz -C /var/www/html
#mv cacti-0.8.8f.tar.gz cacti
#cd /var/www/html/cacti


Download Cacti-Spine
#cd /home/SEU_USUARIO/Downloads/cacti
$wget -c "http://www.cacti.net/downloads/spine/cacti-spine-0.8.8f.tar.gz"
Extrair no diretório /usr/src
#tar -xzvf cacti-spine-0.8.8f.tar.gz -C /usr/src
#cd /usr/src/cacti-spine-0.8.8f
#./configure
#make
#make install


Local de instalação do Cacti-Spine: /usr/local/spine
Ajuste de parâmetros do banco de dados no arquivo de configuração spine.conf
#cd /usr/local/spine/etc
#cp spine.conf.dist spine.conf.dist.orig
#cp spine.conf.dist spine.conf
#vim spine.conf

Altere as linhas 33 até 37 de acordo com os dados do seu banco de dados MySQL.
ESC + :x (salva e sai do editor Vim)

Ajustes da ferramenta web do Cacti
#cd /var/www/html/cacti/include
Altere as linhas 26 até 31 de acordo com os dados do seu banco de dados MySQL.
ESC + :x (salva e sai do editor Vim)

Setando permissão no usuário para geração de gráficos e logs
chown -R cactiuser rra/ log/

Assim terá o acesso a ferramenta Cacti.
Importando as tabelas do banco de dados
#cd /var/www/html/cacti
#mysql -u cactiuser -p cacti < cacti.sql


Conferir se foi importado as tabelas
#mysql -u cactiuser -p
Enter password: < digite a senha cadastrada >
#use cacti;
#show tables;


+---------------------------+
| Tables_in_cacti |
+---------------------------+
| cdef |
| cdef_items |
| colors |
| data_input |
| data_input_data |
| data_input_fields |
| data_local |
| data_template |
| data_template_data |
| data_template_data_rra |
| data_template_rrd |
| graph_local |
| graph_template_input |
| graph_template_input_defs |
| graph_templates |
| graph_templates_gprint |
| graph_templates_graph |
| graph_templates_item |
| graph_tree |
| graph_tree_items |
| host |
| host_graph |
| host_snmp_cache |
| host_snmp_query |
| host_template |
| host_template_graph |
| host_template_snmp_query |
| plugin_config |
| plugin_db_changes |
| plugin_hooks |
| plugin_realms |
| poller |
| poller_command |
| poller_item |
| poller_output |
| poller_reindex |
| poller_time |
| rra |
| rra_cf |
| settings |
| settings_graphs |
| settings_tree |
| snmp_query |
| snmp_query_graph |
| snmp_query_graph_rrd |
| snmp_query_graph_rrd_sv |
| snmp_query_graph_sv |
| user_auth |
| user_auth_perms |
| user_auth_realm |
| user_log |
| version |
+---------------------------+
52 rows in set (0.01 sec)

Reiniciar o serviço do MySQL
# /etc/init.d/mysql restart
[ ok ] Stopping MySQL database server: mysqld.
[ ok ] Starting MySQL database server: mysqld


Reiniciar o serviço do Apache
# /etc/init.d/apache2 restart
[ ok ] Restarting web server: apache2

Acessar no browser -> http://IPSERVIDOR/cacti

Clicar no botão Next

Selecionar New Install e clicar no botão Next

Conferir se foram encontrados os arquivos binários, deve estar [FOUND] na cor verde, caso estive [NOT FOUND] na cor vermelha, provavelmente faltou instalar algum pacote pré requisito.
Estando em [FOUND] clique no botão Next, caso contrário, revise e instale o pacote faltante.

Logue com usuário admin e senha admin e clique no botão Next

Será necessário trocar d senha default, digite a nova senha, confirme a nova senha e clique no botão Next

Assim terá o acesso a ferramenta Cacti.

Agora adicionar o Cacti-Spine como segue abaixo
Settings na aba Paths em Spine Poller File Path colocar o caminho onde se encontra o arquivo binário do spine, nesse caso é: /usr/local/spine/bin/spine conforme a figura abaixo


Configurar máquina Windows para ser monitorada no Cacti
Iniciar>Programas padrão>Programas recursos>Ativar ou desativar recursos do Windows> aguarde e marque Protocolo SNMP OK
Iniciar>executar> services.msc
Procura por SNMP, clica e na aba Segurança, adicione um nome para uma comunidade e aceitar pacotes SNMP depois Aplicar.

Agora fazer configuração na ferramenta Cacti, adicionar o Host que foi configurado.
Em Devices - clique em Add
Colocar o Host incluindo SO, IP e o nome da comunidade definida no host.
Clicar no botão Create
E depois criar gráfico, veja que irá detectar as partições e todas as redes do Host.
Criar uma árvore em Graph Trees, clicar em Add, colocar uma nome para árvore e clicar em Create.
Adiciona os Hosts nessa árvore
Tree Item Type: Host
Host: seleciona o Host criado
Graph Style: seleciona o tipo de template
Round Robin Archive: seleciona o tempo
Clicar em Create
Lá em cima, aba Graph, tem a árvore de host que foram criadas.

Referências
http://www.cacti.net/downloads/docs/html/
http://wiki.ciscolinux.co.uk/index.php?title=Cacti_spine

Feito!

6 comentários:

  1. Perfeito!! Fiz a instalação da versão 0.8.8h do cacti ocorreu tudo bem. Muito obrigado

    ResponderExcluir
  2. Boa tarde!

    Está apresentando um erro no Debian, quando digito o comando # mysql_install_db.

    O erro é esse: please remember to set a password for the mysql root user.

    Pode me ajudar?

    ResponderExcluir
    Respostas
    1. Cassio, o comando mysql_install_db só é necessário executar na primeira vez do SGBD MySQL.
      Pode conectar no SGBD MySQL diretamente da seguinte forma.
      # mysql -u root -p
      digita a senha de root do SGBD MySQL

      Feito!

      Excluir
  3. Quando estou querendo descompactar o arquivo spine com o ./configure aparece o erro: configure: error: Cannot find MySQL headers. Use --with-mysql= to specify non-default path.
    JÁ ESTOU FICANDO MALUCO

    ResponderExcluir
  4. configure: error: Cannot find MySQL headers. Use --with-mysql= to specify non-default path.

    ResponderExcluir
    Respostas
    1. @luiz instalhou o pacote mysql-server via APT?

      É preciso instalar o MySQL antes.

      Excluir