Instalar o Cacti no
Introdução
O Cacti é uma ferramenta de monitoramento de rede que utiliza o RRDTool, PHP e MariaDB para fornecer informações detalhadas sobre o desempenho e a utilização da rede. Com gráficos personalizáveis, o RRDTool coleta dados, enquanto o PHP permite a interação com a interface web. O MariaDB é o banco de dados onde as informações são armazenadas. O Cacti é amplamente utilizado para identificar gargalos de desempenho, acompanhar o tráfego de rede e realizar análises de tendências. Com recursos de alerta e relatórios, ajuda a garantir um ambiente de rede mais eficiente e confiável.
Preparando seu servidor: Atualizações, Vim e SELinux
Atualizações:
Antes de executar as atualizações, vamos instalar o repositório EPEL-RELEASE. O "epel-release" é um repositório de pacotes adicionais para sistemas operacionais baseados em Red Hat, como o Oracle Linux, CentOS e o RHEL (Red Hat Enterprise Linux). Ao instalá-lo, você adiciona o repositório EPEL (Extra Packages for Enterprise Linux) ao seu sistema.
sudo dnf install epel-release
Execute as atualizações do sistema:
sudo dnf update
Vim:
Instale o editor de texto Vim para facilitar a edição de arquivos de configuração:
sudo dnf install vim
SELinux:
Temporariamente, desabilite o SELinux editando o arquivo de configuração, altere a linha "SELINUX=enforcing" para "SELINUX=disabled". :
sudo vim /etc/sysconfig/selinux
Reinicie o servidor executando "sudo reboot now" para reiniciar o sistema e aplicar as alterações.
sudo reboot now
Com estas etapas garantimos um ambiente atualizado e prático. Lembre-se de reativar o SELinux se necessário, para manter a segurança do sistema.
Instalar o Apache
httpd:
O pacote "httpd" é o servidor web Apache, que permite hospedar e fornecer conteúdo na web.
httpd-tools:
O pacote "httpd-tools" fornece ferramentas e utilitários adicionais para o servidor web Apache.
Para instalá-lo use o seguinte comando:
sudo dnf install httpd httpd-tools
com o comando seguinte habilitamos e iniciamos o serviço httpd:
sudo systemctl enable --now httpd
Instalando o PHP
Para que o Cacti funcione adequadamente, é necessário instalar o PHP e os módulos necessários.
O PHP desempenha um papel fundamental no ambiente do Cacti. Com o suporte aos módulos específicos do PHP instalados, o Cacti pode extrair informações dos dispositivos de rede, armazenar dados em um banco de dados e gerar gráficos e relatórios usando estes dados, que serão usados para monitorar e analisar o desempenho da rede.
Siga os passos abaixo para instalar o PHP e configurá-lo para ser utilizado com o Cacti:
Instale o PHP e os módulos necessários executando o seguinte comando:
sudo dnf install -y php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intl
Uma vez instalado, teremos de modificar algumas configurações para podermos usar com o Cacti. A primeira coisa será modificar o arquivo "/etc/php.ini", neste arquivo modificaremos a variável "date.timezone" para usar "America/Sao_Paulo" entre outras. Primeiro, abra o arquivo usando o Vim:
sudo vim /etc/php.ini
Localize as linhas abaixo no arquivo e ajuste os valores de como abaixo:
date.timezone = America/Sao_Paulo
memory_limit = 512M
max_execution_time = 60
max_input_vars = 1000
Salve as alterações feitas no arquivo pressionando ESC e digitando ":x" sem aspas para fechar e sair do Vim.
Confira aqui a lista completa dos timezones suportadas pelo PHP
Reinicie os serviços do Apache e PHP:
sudo systemctl restart httpd php-fpm.service
NOTA IMPORTANTE: Caso o Timezone não esteja configurado corretamente, você terá problemas para abrir a interface web. Tenha certeza de inserir a informação correta de acordo com a sua região.
Instalando o MariaDB
O MariaDB desempenha um papel essencial no ambiente do Cacti, fornecendo a estrutura necessária para armazenar e gerenciar os dados coletados e processados pelo Cacti. Após a instalação e configuração adequadas do MariaDB, o Cacti pode armazenar dados de monitoramento de rede de forma segura e eficiente, permitindo a geração de relatórios, gráficos e análises precisas sobre o desempenho da rede.
O MariaDB é uma escolha popular para aplicativos que exigem acesso rápido e eficiente a grandes quantidades de dados por ser robusto, ter bom desempenho e confiabilidade. Você pode instalar outros databases como PostgreSQL, Oracle DB e Microsoft SQL Server porém neste tutorial , seguiremos com o MariaDB.
Instale e habilite o MariaDB com os comandos a seguir:
sudo dnf install -y mariadb-server mariadb
sudo systemctl enable --now mariadb
Ao instalar o MariaDB o script mysql_secure_installation será instalado automaticamente, usamos este script para aumentar a segurança em nossa instalação com o seguinte comando:
sudo mysql_secure_installation
Ao executar o script acima, teremos de passar algumas respostas:
....
Enter current password for root (enter for none):
......
Switch to unix_socket authentication [Y/n] Y
.....
Change the root password? [Y/n] Y
New password: <Nova-senha-usuário-root>
Re-enter new password: <Nova-senha-usuário-root>
....
Remove anonymous users? [Y/n] Y
....
Disallow root login remotely? [Y/n] Y
.....
Remove test database and access to it? [Y/n] Y
......
Reload privilege tables now? [Y/n] Y
...
Thanks for using MariaDB!
Criando o banco de dados do Cacti e configurando o MariaDB
Após garantir a segurança do MariaDB, vamos criar um banco de dados específico para o Cacti e configurar as permissões de acesso. Siga as etapas abaixo:
Faça login no MariaDB utilizando o seguinte comando:
sudo mysql -u root -p
No prompt do MariaDB, execute os seguintes comandos para criar o banco de dados "cacti" e conceder acesso a esse banco de dados para o usuário "cacti":
CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO 'cacti'@'localhost' IDENTIFIED BY '<Senha-usuário-cacti>';
FLUSH PRIVILEGES;
EXIT
Verifique a versão do MariaDB para que possamos inserir as próximas configurações no local correto do arquivo "mariadb-server.cnf". Execute o seguinte comando:
mariadb --version
Aqui vemos que a versão instalada é a 10.5, então abrimos o arquivo de configuração mariadb-server.cnf e procuramos o bloco para esta versão.
mariadb Ver 15.1 Distrib 10.5.16-MariaDB, for Linux (x86_64) using EditLine wrapper
**Se sua versão é diferente, coloque no bloco correspondente à sua versão.
Abra o arquivo de configuração "mariadb-server.cnf" utilizando o editor de texto Vim:
sudo vim /etc/my.cnf.d/mariadb-server.cnf
Dentro do arquivo, adicione o seguinte conteúdo ao bloco correspondente à versão do MariaDB que você anotou:
[mariadb-10.5]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_heap_table_size=128M
tmp_table_size=128M
join_buffer_size=256M
innodb_buffer_pool_size=1405M
innodb_file_format=Barracuda
innodb_doublewrite=OFF
innodb_large_prefix=1
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=16
innodb_io_capacity=5000
innodb_io_capacity_max=10000
Após modificar e salvar o arquivo, reinicie o serviço MariaDB
sudo systemctl restart mariadb
Importe o arquivo de configuração "mysql_test_data_timezone.sql" para garantir que o banco de dados tenha as configurações de fuso horário necessárias:
sudo mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql
Com as configurações do arquivo mysql_test_data_timezone.sql importadas com sucesso, entre no prompt de comando mysql e execute as configurações Unicode:
sudo mysql -u root -p
No prompt do MariaDB, execute os seguintes comandos para configurar o suporte Unicode:
GRANT SELECT ON mysql.time_zone_name TO cacti@localhost;
ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
FLUSH PRIVILEGES;
QUIT
Instale SNMP e RRD Tool:
Para que o Cacti funcione adequadamente, é necessário instalar o SNMP (Simple Network Management Protocol) e o RRD Tool (Round Robin Database Tool). Estas ferramentas desempenham um papel fundamental no monitoramento e coleta de dados de rede pelo Cacti.
Execute o seguinte comando para instalar o e habilitar os serviços do RRD Tool e SNMP conforme abaixo:
sudo dnf -y install net-snmp net-snmp-utils net-snmp-libs rrdtool
sudo systemctl enable --now snmpd
Instalando o Cacti
Com os pré-requisitos todos instalados e configurados, agora podemos instalar o Cacti usando o dnf:
sudo dnf install cacti -y
**Caso ocorra algum erro ao tentar instalar o Cacti, verifique se o EPEL RELEASE foi instalado conforme a instrução de preparação do servidor no início do tutorial.
Com o Cacti instalado podemos começar a configurá-lo. Para configurar o Cacti, é necessário importar o arquivo "cacti.sql" para o banco de dados do MariaDB, fornecendo a estrutura e as tabelas necessárias para o funcionamento correto da ferramenta:
sudo mysql -u root -p cacti < /usr/share/doc/cacti/cacti.sql
Em seguida modificamos o usuário e senha no arquivo config.php para que o PHP acesse o Data-base:
sudo vim /usr/share/cacti/include/config.php
Modifique as variáveis $database_default e $database_username no arquivo de configuração para o mesmo usuário e senha criados para no MariaDB, neste exemplo usaremos a palavra "cacti", mas em um ambiente de produção recomendamos usar algo mais seguro.
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_port = '3306';
$database_retries = 5;
$database_ssl = false;
$database_ssl_key = '';
$database_ssl_cert = '';
$database_ssl_ca = '';
$database_persist = false;
$poller_id = 1;
$cacti_session_name = 'Cacti';
$cacti_db_session = false;
$disable_log_rotation = true;
$proxy_headers = null;
Descomente a tarefa cron no arquivo abaixo, simplesmente remova o "#" do início da linha
sudo vim /etc/cron.d/cacti
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
Remova as restrições do diretório inicial para podermos finalizar a instalação do Cacti pela interface web, modificando o arquivo abaixo:
sudo vim /etc/httpd/conf.d/cacti.conf
Substitua o "Require host localhost" para " Allow from 10.10.10.0/24" e "Require all denied" para "Require all granted"
Alias /cacti /usr/share/cacti
<Directory /usr/share/cacti/>
<IfModule mod_authz_core.c>
# httpd 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# httpd 2.2
Order deny,allow
Deny from all
Allow from 172.16.10.0/24
</IfModule>
</Directory>
Reinicie o serviço apache
sudo systemctl restart httpd
Finalizamos criando regras de firewall permitindo o serviço apache para o protocolo http:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Testamos se o servidor está respondendo requisiçõe http com o comando abaixo:
curl http://localhost/cacti
Você deverá ter um resultado parecido com o seguinte:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://localhost/cacti/">here</a>.</p>
</body></html>
Configurando a Interface Web
Após concluir a instalação no servidor, precisamos efetuar a configuração do Cacti no servidor web.
Abra um navegador e digite o IP do servidor seguido de "/cacti" conforme o exemplo abaixo:
Você será direcionado ao Wizard para efetuar as configurações iniciais do Cacti.
Informe o login e senha conforme abaixo:
Nome de usuário: admin
Senha: admin
2. Se digitada a senha corretamente, o sistema irá solicitar a troca para uma nova senha. Você deve inserir a nova senha com letras maiúsculas, minúsculas, símbolos e números e também com pelo menos 8 caracteres.
Clique em "Salvar" para efetuar a troca da senha.
3. Você será direcionado para a tela de escolha do tema (1), idioma (2) e aceitar os termos de licença (3).
Aqui optamos pelo tema Mitwinter. Você pode deixar no tema padrão, escolher um tema de sua preferência ou selecionar este tema para visualizar as telas seguintes como a deste tutorial. O tema pode ser alterado futuramente.
Clique em Begin (caso esteja em inglês conforme seta) para avançar. Você utilizará este botão para avançar todas as próximas etapas.
4. Agora a instalação irá checar se todos os itens como Banco de Dados, PHP, Webserver etc. foram configurados corretamente.
5. O sistema pode te sugerir itens a serem modificados, corrigidos ou apenas apontar que está devidamente configurado.
Em nosso caso, o sistema sugeriu que o join_buffer_size e sort_buffer_size fossem modificados, porém não é necessário e vamos prosseguir a instalação.
6. Nessa tela, apenas prossiga.
7. A instalação irá verificar se todos os diretórios e arquivos e diretórios do Cacti podem ser gravados/alterados pelo sistema. Caso haja problema de permissionamento, ele irá informar o que deve ser corrigido.
8. Nesta tela, você será informado sobre os diretórios dos arquivos do Cacti bem como os logs. Essa parte é extremamente importante para resolução de problemas do sistema. Guarde junto à documentação da ferramenta essas informações.
9. Você também poderá consultar este tutorial para validação dos locais de binários e logs do Cacti e dependências.
PHP Binary Path
/usr/bin/phpRRDtool Binary Path
/usr/bin/rrdtool
snmpwalk Binary Path
/usr/bin/snmpwalk
snmpget Binary Path
/usr/bin/snmpget
snmpbulkwalk Binary Path
/usr/bin/snmpbulkwalk
snmpgetnext Binary Path
/usr/bin/snmpgetnext
snmptrap Binary Path
/usr/bin/snmptrap
Sendmail Path
/usr/sbin/sendmail
Spine Binary File Location
/usr/local/spine/bin/spine
Cacti Log Path
/usr/share/cacti/log/cacti.log
Poller Standard Error Log Path
/usr/share/cacti/log/cacti_stderr.log
RRDtool Version 1.7.2+
10. A proteção de validação de entrada por lista de permissões (input validation whitelist protection) é um recurso de segurança essencial no Cacti. Ele ajuda a prevenir ataques de injeção de código, garantindo que apenas dados válidos e seguros sejam aceitos pelo sistema. Ao utilizar uma lista pré-definida de valores permitidos, a proteção de whitelist valida os dados de entrada, rejeitando qualquer entrada que não corresponda aos valores permitidos. Essa medida ajuda a manter a integridade e a segurança dos dados, evitando a exploração de vulnerabilidades.
Marque a caixa que indica que você leu as informações da tela e avance (é para ler viu haha).
11. Informe a rede que o Cacti fará a monitoração conforme abaixo.
12. Avance novamente.
13. Avance novamente.
14. Marque a caixa para confirmar a instalação e clique em install.
15. O Cacti iniciará as configurações e ajustes finais.
16. Com a instalação concluída, clique em "Get Started" para iniciar.
17. Clique em "View".
18. Clique em Local Linux Machine para ver o início do monitoramento do próprio servidor. Deve aparecer os gráficos do Cacti indicando que já está coletano informações.
Pronto, você concluiu a instalação do Cacti corretamente e já poderá efetuar as configurações para receber dados SNMP de sua rede.
Para mais informações, veja a documentação oficial do Cacti aqui.