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
- Pilha LAMP instalada no Debian 9
- 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.