Pesquisa de site

Como instalar o Cacti com Cacti-Spine no Debian e Ubuntu


Neste tutorial aprenderemos como instalar e configurar a ferramenta de monitoramento de rede Cacti na versão mais recente do Debian e do Ubuntu 16.04 LTS. O Cacti será compilado e instalado a partir dos arquivos de origem durante este guia.

Cacti é uma ferramenta de monitoramento de código aberto criada para monitorar redes, especialmente dispositivos de rede, como switches, roteadores, servidores via protocolo SNMP. O Cacti interage com os usuários finais e pode ser administrado por meio de uma interface de ferramenta web.

Requisitos

  1. Pilha LAMP instalada no Debian 9
  2. Pilha LAMP instalada no Ubuntu 16.04 LTS

Etapa 1: instalar e configurar pré-requisitos para Cacti

1. No Debian 9, abra o arquivo de lista de fontes para edição e adicione os repositórios contrib e non-free ao o arquivo alterando as seguintes linhas:

nano /etc/apt/sources.list

Adicione as seguintes linhas ao arquivo sources.list.

deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.ro.debian.org/debian/ stretch main

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main

2. Depois, certifique-se de atualizar o sistema emitindo o comando abaixo.

apt update
apt upgrade

3. Em sua pilha LAMP certifique-se de que as seguintes extensões PHP estejam presentes no sistema.

apt install php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt

4. Em seguida, edite o arquivo de configuração do PHP e altere a configuração do fuso horário para corresponder à localização física do seu servidor, emitindo o comando abaixo.

echo "date.timezone = Europe/Bucharest" >> /etc/php/7.0/apache2/php.ini 

5. Em seguida, faça login no banco de dados MariaDB ou MySQL a partir da instalação da pilha LAMP e crie um banco de dados para instalar o Cacti emitindo os seguintes comandos.

Substitua o nome, usuário e senha do banco de dados cacti para corresponder às suas próprias configurações e escolha uma senha forte para o banco de dados cacti.

mysql -u root -p
mysql> create database cacti;
mysql> grant all on cacti.* to 'cactiuser'@'localhost' identified by 'password1';
mysql> flush privileges;
mysql> exit

6. Além disso, emita os comandos abaixo para permitir que o usuário cacti selecione permissões para a configuração data.timezone do MySQL emitindo os comandos abaixo.

mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql 
mysql -u root -p -e 'grant select on mysql.time_zone_name to cactiuser@localhost'

7. Em seguida, abra o arquivo de configuração do servidor MySQL e adicione as seguintes linhas no final do arquivo.

nano /etc/mysql/mariadb.conf.d/50-server.cnf [For MariaDB]
nano /etc/mysql/mysql.conf.d/mysqld.cnf      [For MySQL] 

Adicione as seguintes linhas ao final do arquivo 50-server.cnf ou mysqld.cnf.

max_heap_table_size		= 98M
tmp_table_size			= 64M
join_buffer_size		= 64M
innodb_buffer_pool_size	= 485M
innodb_doublewrite		= off
innodb_flush_log_at_timeout	= 3
innodb_read_io_threads	= 32
innodb_write_io_threads	= 16

Para o banco de dados MariaDB adicione também a seguinte linha ao final do arquivo 50-server.cnf:

innodb_additional_mem_pool_size	= 80M

8. Por fim, reinicie os serviços MySQL e Apache para aplicar todas as configurações e verificar o status de ambos os serviços emitindo os seguintes comandos.

systemctl restart mysql apache2
systemctl status mysql apache2

Etapa 2: Baixe e prepare a instalação do Cacti

9. Comece a instalar o Cacti a partir das fontes baixando e extraindo a versão mais recente do arquivo Cacti e copie todos os arquivos extraídos para a raiz do documento da web do Apache, emitindo os seguintes comandos.

wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar xfz cacti-latest.tar.gz 
cp -rf cacti-1.1.27/* /var/www/html/

10. Remova o arquivo index.html do diretório /var/www/html, crie o arquivo de log do Cacti e conceda ao Apache permissões de gravação para web caminho raiz.

rm /var/www/html/index.html
touch /var/www/html/log/cacti.log
chown -R www-data:www-data /var/www/html/

11. Em seguida, edite o arquivo de configuração do cacti e modifique as seguintes linhas conforme mostrado no exemplo abaixo.

nano /var/www/html/include/config.php

Amostra do arquivo Cacti config.php. Substitua o nome do banco de dados cacti, usuário e senha de acordo.

$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'password1;
$database_port     = '3306';
$database_ssl      = false;
$url_path = '/';

12. Em seguida, preencha o banco de dados cacti com o script cacti.sql do diretório /var/www/html/ emitindo o comando abaixo.

mysql -u cactiuser cacti -p < /var/www/html/cacti.sql 

13. Agora instale alguns recursos adicionais, pois o mecanismo Cacti coleta dados dos dispositivos através do protocolo SNMP e exibe gráficos usando RRDtool. Instale todos eles emitindo o seguinte comando.

apt install snmp snmpd snmp-mibs-downloader rrdtool

14. Verifique se o serviço SNMP está funcionando reiniciando o daemon snmpd emitindo o comando abaixo. Verifique também o status do daemon snmpd e suas portas abertas.

systemctl restart snmpd.service 
systemctl status snmpd.service
ss -tulpn| grep snmp

Etapa 3: Baixe e instale o Cacti-Spine

15. Cacti-Spine é um substituto escrito em C para o poller padrão cmd.php. Cacti-Spine oferece um tempo de execução mais rápido. Para compilar o pooler Cacti-Spine a partir de fontes, instale as dependências necessárias abaixo em seu sistema.

---------------- On Debian 9 ---------------- 
apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev librrds-perl libsnmp-dev libmariadb-dev libmariadbclient-dev

---------------- On Ubuntu ---------------- 
apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev  librrds-perl libsnmp-dev libmysqlclient-dev libmysqld-dev  

16. Depois de instalar as dependências acima, baixe a versão mais recente do arquivo Cacti-Spine, extraia o tarball e compile o cacti-spine emitindo a seguinte série de comandos .

wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
tar xfz cacti-spine-latest.tar.gz 
cd cacti-spine-1.1.27/

17. Compile e instale o Cacti-Spine a partir dos fontes emitindo os seguintes comandos.

./bootstrap 
./configure 
make
make install

18. Em seguida, certifique-se de que o binário da coluna pertence à conta root e defina o bit suid para o utilitário da coluna executando os seguintes comandos.

chown root:root /usr/local/spine/bin/spine 
chmod +s /usr/local/spine/bin/spine

19. Agora, edite o arquivo de configuração do Cacti Spine e adicione o nome do banco de dados cacti, usuário e senha ao arquivo conf do Spine, conforme ilustrado no exemplo abaixo.

nano /usr/local/spine/etc/spine.conf

Adicione a seguinte configuração ao arquivo Spine.conf.

DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass password1
DB_Port 3306
DB_PreG 0

Etapa 4: Configuração do assistente de instalação do Cacti

20. Para instalar o Cacti, abra um navegador e navegue até o endereço IP do seu sistema ou nome de domínio no seguinte URL.

http://your_IP/install

Primeiro, marque Aceitar Contrato de Licença e clique no botão Avançar para continuar.

21. Em seguida, verifique os requisitos do sistema e clique no botão Avançar para continuar.

22. Na próxima janela, selecione Novo Servidor Principal e clique no botão Avançar para continuar.

23. Em seguida, verifique as localizações e versões binárias críticas e altere o caminho binário do Spine para /usr/local/spine/bin/spine. Quando terminar, clique no botão Avançar para continuar.

24. Em seguida, verifique se todas as permissões de diretório do servidor web estão em vigor (as permissões de gravação estão definidas) e clique no botão Avançar para continuar.

25. Na próxima etapa verifique todos os modelos e clique no botão Concluir para finalizar o processo de instalação.

26. Faça login na interface web do Cacti com as credenciais padrão mostradas abaixo e altere a senha de administrador, conforme ilustrado nas capturas de tela a seguir.

Username: admin
Password: admin

27. Em seguida, vá para Console -> Configuração -> Configurações -> Poller e altere o Tipo de Poller de cmd.php< para o binário Spine e role para baixo até o botão Salvar para salvar a configuração.

28. Em seguida, vá para Console -> Configuração -> Configurações -> Caminhos e adicione o seguinte caminho ao arquivo de configuração do Cacti-Spine:

/usr/local/spine/etc/spine.conf 

Clique no botão Salvar para aplicar a configuração.

29. A configuração final que permite ao Cacti poller começar a coletar dados de dispositivos monitorados é adicionar uma nova tarefa crontab para consultar cada dispositivo via SNMP a cada 5 minutos.

O trabalho crontab deve pertencer à conta www-data.

crontab -u www-data -e

Adicione a entrada do arquivo Cron:

*/5 * * * * /usr/bin/php /var/www/html/poller.php

30. Aguarde alguns minutos para que o Cacti colete os dados e vá para Gráficos -> Árvore padrão e você deverá ver os gráficos coletados para seus dispositivos monitorados.

Isso é tudo! Você instalou e configurou com sucesso o Cacti com o pooler Cacti-Spine, a partir dos fontes, na versão mais recente do Debian 9 e do Ubuntu 16.04 Servidor LTS.