Monitoramento SNMP · 19 min read · Nov 03, 2025

Como Instalar a Ferramenta de Monitoramento SNMP Cacti no Debian 9

Este tutorial mostrará como instalar e configurar a ferramenta de monitoramento de rede Cacti a partir do código-fonte para garantir que você obtenha a versão mais recente no Debian 9, codinome Stretch.

Cacti é uma ferramenta de monitoramento de rede baseada na web, completamente de código aberto, projetada para exibir gráficos de rede e sistema via RRDtool. Ele usa o protocolo SNMP (Simple Network Management Protocol) para coletar e monitorar o tráfego de rede de dispositivos de rede, como switches, roteadores, servidores Linux, Unix e Windows ou outros tipos de dispositivos baseados em rede que suportam SNMP.

Requisitos

  • Instalação mínima do Debian 9 em uma máquina bare-metal ou em um servidor privado virtual.
  • Um endereço IP estático configurado para uma das suas interfaces de rede do sistema.
  • Acesso à conta root ou a um usuário com privilégios de conta root via sudo.

Configuração Inicial

Antes de começarmos a instalar o Cacti a partir do código-fonte, primeiro assegure-se de que seu sistema atende a todos os requisitos de software para compilar e instalar o Cacti. No primeiro passo, abra o arquivo de lista de fontes do Debian para edição com privilégios de root e adicione os repositórios contrib e non-free, conforme mostrado no trecho de arquivo abaixo.

nano /etc/apt/sources.list

exemplo de 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*

arquivo sources.list

Após terminar de editar o arquivo, salve e feche o arquivo e atualize seus repositórios e pacotes de software para incorporar os novos pacotes, emitindo os comandos abaixo.

apt update
apt upgrade

Atualizar pacotes Debian

Em seguida, inicie um novo comando para instalar algumas utilidades necessárias que serão usadas para gerenciar seu sistema a partir da linha de comando.

apt install wget patch unzip zip bash-completion

Cacti é uma ferramenta de monitoramento baseada na web, principalmente escrita na linguagem de programação do lado do servidor PHP. Para executar os scripts de arquivo PHP do Cacti, um servidor web, como o servidor HTTP Apache, e um interpretador PHP devem ser instalados e funcionais no sistema. Para instalar o servidor web Apache e o interpretador PHP juntamente com todos os módulos PHP necessários que o Cacti precisa para funcionar corretamente, emita o seguinte comando no console do seu servidor.

apt install apache2 libapache2-mod-php7.0 php7.0 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

Instalar PHP

Após o Apache e o PHP terem sido instalados, teste se o servidor web está ativo e escutando por conexões de rede na porta 80, emitindo o seguinte comando com privilégios de root.

netstat –tlpn

Caso a utilidade de rede netstat não esteja instalada por padrão no seu sistema Debian, execute o comando abaixo para instalá-la.

apt install net-tools

Ao inspecionar a saída do comando netstat, você pode ver que o daemon do apache está escutando por conexões de rede de entrada na porta 80.

Saída do comando Netstat

Caso você tenha um firewall habilitado em seu sistema, como o aplicativo de firewall UFW, você deve adicionar uma nova regra para permitir que o tráfego HTTP passe pelo firewall, emitindo o seguinte comando.

ufw allow WWW

ou

ufw allow 80/tcp

Finalmente, teste se a página web padrão do servidor Apache pode ser exibida no navegador do seu cliente, visitando o endereço IP da sua máquina Debian via protocolo HTTP, conforme mostrado na imagem abaixo. Se você não souber o endereço IP da sua máquina, execute os comandos ‘ifconfig‘ ou ‘ip a‘. Meu IP nesta configuração é: http://192.168.1.14

Página web padrão do Debian

No próximo passo, precisamos fazer algumas alterações adicionais no arquivo de configuração padrão do PHP para garantir que a variável file_uploads esteja habilitada e a configuração de timezone do PHP esteja corretamente configurada e corresponda à sua localização física do sistema. Abra o arquivo /etc/php/7.0/apache2/php.ini para edição e assegure-se de que as seguintes linhas estejam configuradas da seguinte forma.

*file_uploads = On  
****date.timezone = Europe/London*

Substitua a variável de fuso horário de acordo com seu fuso horário físico consultando a lista de fusos horários fornecida pela documentação do PHP no seguinte link http://php.net/manual/en/timezones.php

Após fazer as alterações necessárias, crie um arquivo de informações PHP e reinicie o daemon do apache para aplicar as alterações emitindo os seguintes comandos.

echo ''| tee /var/www/html/info.php
systemctl restart apache2

Verifique se o fuso horário do PHP foi configurado corretamente visitando o script de informações PHP a partir de um navegador no seguinte URL (conforme ilustrado na imagem abaixo). Role para baixo até a configuração de data para verificar a configuração do fuso horário do PHP.

http://192.168.1.14/info.php

Saída de informações PHP

A ferramenta de monitoramento Cacti armazena configurações e dados coletados em um banco de dados RDBMS. Neste tutorial, configuraremos o Cacti com o backend de banco de dados MariaDB. Emita o comando abaixo para instalar o banco de dados MariaDB e o módulo PHP necessário para acessar o banco de dados mysql.

apt install mariadb-server php7.0-mysql

Instalar MariaDB

Após instalar o MariaDB, verifique se o daemon está em execução e escutando por conexões de rede no localhost, porta 3306, executando o comando netstat.

netstat –tlpn | grep mysql

Em seguida, faça login no console MySQL e proteja a conta root do MariaDB emitindo os seguintes comandos.

mysql -h localhost
use mysql;  
update user set plugin='' where user='root';  
flush privileges;  
exit

Definir senha root do MySQL

No próximo passo, proteja o MariaDB executando o script mysql_secure_installation fornecido pelo pacote de instalação do repositório Debian Stretch. Ao executar, o script fará uma série de perguntas para proteger o banco de dados MariaDB, como: alterar a senha root do MySQL, remover usuários anônimos, desabilitar logins remotos do root e excluir o banco de dados de teste. Execute o script emitindo o comando abaixo e assegure-se de digitar sim para todas as perguntas feitas a fim de proteger completamente o daemon do MySQL. Use a saída do script abaixo como guia.

sudo mysql_secure_installation
NOTA: EXECUTAR TODAS AS PARTES DESTE SCRIPT É RECOMENDADO PARA TODOS OS MariaDB
      SERVIDORES EM USO DE PRODUÇÃO!  POR FAVOR, LEIA CADA ETAPA COM CUIDADO!
 
Para fazer login no MariaDB e protegê-lo, precisaremos da senha atual
para o usuário root.  Se você acabou de instalar o MariaDB, e
você não definiu a senha root ainda, a senha estará em branco,
portanto, você deve apenas pressionar enter aqui.
 
Digite a senha atual para root (pressione enter para nenhum):
OK, senha usada com sucesso, prosseguindo...
 
Definir a senha root garante que ninguém possa fazer login no MariaDB
usuário root sem a devida autorização.
 
você já tem uma senha root definida, então você pode responder 'n' com segurança.
 
Alterar a senha root? [Y/n] y
Nova senha:
Reinsira a nova senha:
Senha atualizada com sucesso!
Recarregando tabelas de privilégios..
 ... Sucesso!
 
Por padrão, uma instalação do MariaDB tem um usuário anônimo, permitindo que qualquer um
faca login no MariaDB sem precisar ter uma conta de usuário criada para
elas.  Isso é destinado apenas para testes, e para tornar a instalação
mais suave.  Você deve removê-los antes de passar para um
environmento de produção.
 
Remover usuários anônimos? [Y/n] y
 ... Sucesso!
 
Normalmente, o root deve ser permitido apenas conectar-se a partir de 'localhost'.  Isso
assegura que alguém não possa adivinhar a senha root pela rede.
 
Desabilitar login remoto do root? [Y/n] y
 ... Sucesso!
 
Por padrão, o MariaDB vem com um banco de dados chamado 'teste' que qualquer um pode
acessar.  Isso também é destinado apenas para testes, e deve ser removido
antes de passar para um ambiente de produção.
 
Remover banco de dados de teste e acesso a ele? [Y/n] y
- Excluindo banco de dados de teste...
 ... Sucesso!
- Removendo privilégios no banco de dados de teste...
 ... Sucesso!
 
Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora
vão entrar em vigor imediatamente.
 
Recarregar tabelas de privilégios agora? [Y/n] y
 ... Sucesso!
Limpando...
 
Tudo pronto!  Se você completou todas as etapas acima, sua instalação do MariaDB
deve agora estar segura.
 
Obrigado por usar o MariaDB!

Para testar a segurança do MariaDB, tente fazer login no banco de dados a partir do console sem a senha root. O acesso ao banco de dados deve ser negado se nenhuma senha for fornecida para a conta root. Se a senha for fornecida, o processo de login deve ser concedido ao console MySQL, conforme mostrado na captura de tela abaixo.

mysql -h localhost -u root
mysql -h localhost -u root –p

Teste o Login do MySQL

Enquanto estiver logado no banco de dados MariaDB, vá em frente e crie um banco de dados para a instalação do Cacti e crie o usuário que será usado para gerenciar o banco de dados cacti, emitindo os seguintes comandos. Substitua o usuário e a senha do banco de dados cacti conforme necessário.

create database cacti;  
grant all on cacti.* to 'cacti_user'@'localhost' identified by 'cacti_pass';  
flush privileges;  
exit

Além disso, conceda permissões de seleção ao usuário do banco de dados cacti para o fuso horário do MySQL emitindo os comandos abaixo. Este é um novo requisito para instalar e executar a versão mais recente do Cacti.

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 cacti_user@localhost'

Importar banco de dados de fuso horário do MySQL

No próximo passo, abra o arquivo de configuração padrão do servidor MySQL e adicione as seguintes linhas conforme mostrado no exemplo abaixo.

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Adicione as seguintes linhas na parte inferior do arquivo 50-server.cnf:

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

Configurar servidor MariaDB

Para aplicar todas as alterações que fizemos até agora, reinicie os daemons MySQL e Apache e verifique se os daemons estão em execução emitindo os seguintes comandos.

systemctl restart mysql apache2
systemctl status mysql apache2

Configurar Serviço SNMP

O serviço de monitoramento web do Cacti usa o protocolo SNMP para coletar dados e estatísticas do dispositivo. Para instalar o programa SNMP, o serviço de daemon SNMP e os MIBs SNMP em seu sistema Debian 9 local, emita o seguinte comando com privilégios de root.

apt install snmp snmpd snmp-mibs-downloader

Instalar snmp

Além disso, instale a ferramenta de registro de dados padrão da indústria RRDtool, que é usada pelo Cacti para exibir a funcionalidade de gráficos.

apt install rrdtool

Instalar rrdtool

Em seguida, edite o arquivo de configuração SNMP /etc/snmp/snmp.conf e comente a linha “mibs” adicionando um hashtag (#) na frente da linha, conforme descrito na imagem abaixo.

Configurar arquivo snmp.conf

Além disso, configure o acesso remoto e localhost do daemon SNMP, abrindo o arquivo snmpd.conf para edição e procurando e atualizando as linhas abaixo da seguinte forma:

nano /etc/snmp/snmpd.conf

Descomente a linha para escutar conexões em todas as interfaces

agentAddress udp:161,udp6:[::1]:161

Editar arquivo snmpd.conf

Adicione as seguintes linhas para permitir consultas SNMP para sua rede local via a senha snmp_string. Substitua a senha da string da comunidade snmp snmp_string e seu endereço CIDR de rede conforme necessário.

rocommunity snmp_string localhost  
rocommunity snmp_string 192.168.1.0/25

**Definir snmp_string

Opcionalmente, você também pode modificar a variável de contato e localização para fornecer informações sobre seu servidor. Essas informações são exibidas na área de notificação do Cacti quando você verifica os detalhes do seu servidor. Além disso, o nome do host do seu sistema, a versão do kernel e o tempo de atividade do sistema são exibidos na área de notificação do Cacti.

Para modificar essas informações, edite as linhas sysLocation e sysContact na seção de informações do sistema e adicione seus próprios valores. Por padrão, os seguintes valores estão configurados para sysLocation e sysContact.

Definir sysLocation e sysContact

sysLocation Sitting on the Dock of the Bay  
sysContact Me <[email protected]>

Após fazer as alterações apropriadas no arquivo snmpd.conf, salve e feche o arquivo e reinicie o daemon snmp para refletir as alterações emitindo os comandos abaixo. Em seguida, verifique o status do daemon snmp e as portas que estão em estado de escuta.

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

Reiniciar serviço snmp

Abra a porta do firewall para SNMP:

ufw allow 161/udp

Para verificar se o daemon SNMP está funcionando conforme esperado e recupera todos os valores SNMP sob a árvore de memória para localhost, execute o comando abaixo.

snmpwalk -v 2c -c snmp_string localhost memory

Testar servidor snmp com snmpwalk

Instalar Cacti-Spine

Cacti-Spine é um substituto para o poller cmd.php padrão, escrito em C para um tempo de execução mais rápido. Para compilar e instalar o pooler Cacti-Spine a partir de fontes no Debian 9, primeiro, execute o seguinte comando para instalar todas as dependências necessárias no sistema.

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

Em seguida, baixe a versão mais recente do arquivo compactado tar do Cacti-Spine com a utilidade wget, extraia o arquivo tarball e entre no diretório extraído do cacti-spine emitindo os seguintes 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.24/

Agora, compile e instale a utilidade Cacti-Spine a partir de fontes emitindo os comandos abaixo.

./bootstrap
./configure
make
make install

Cacti-Spine será instalado no caminho do sistema /usr/local/spine/. O Spine recomenda que você defina o bit SUID para o binário spine a fim de suportar solicitações de ping ICMP.

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

Você também deve conectar o Spine ao banco de dados cacti editando o arquivo de configuração conforme mostrado no trecho de arquivo abaixo.

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

exemplo do arquivo spine.conf. Substitua as credenciais conforme necessário. Use as mesmas credenciais do banco de dados configuradas para o Cacti.

DB_Host localhost  
DB_Database cacti  
DB_User user_cacti  
DB_Pass pass_cacti  
DB_Port 3306  
DB_PreG 0

Editar arquivo spine.conf

Instalar Cacti

Para instalar o Cacti a partir de fontes no Debian 9, primeiro, baixe e extraia a versão mais recente do arquivo compactado tar do Cacti, em seguida, copie todos os arquivos extraídos para o caminho raiz do servidor web 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.24/* /var/www/html/

Instalar Cacti

No próximo passo, abra o arquivo de configuração do cacti e atualize as seguintes linhas para refletir o nome de usuário do banco de dados MySQL cacti, a senha, o host e o caminho da URL conforme necessário, conforme ilustrado no exemplo abaixo.

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

Exemplo do arquivo config.php do Cacti:

$database_type     = 'mysql';  
$database_default  = 'cacti';  
$database_hostname = 'localhost';  
$database_username = 'cacti_user';  
$database_password = 'cacti_pass';  
$database_port     = '3306';  
$database_ssl      = false;

Role para baixo e altere a variável de caminho de “/cacti ” para “ /

$url_path = '/';

arquivo de configuração cacti

caminho da URL cacti

Em seguida, você precisa popular o banco de dados cacti carregando o script cacti.sql localizado na sua localização de documento raiz do servidor web e verificar as tabelas mysql do cacti emitindo os comandos abaixo.

mysql -u cacti_user cacti -p < /var/www/html/cacti.sql 
mysql -u cacti_user cacti -p -e 'show tables'

Finalmente, antes de começar a instalar o Cacti pela interface web, execute os comandos abaixo para remover o arquivo index.html padrão instalado pelo servidor web Apache, criar o arquivo de log para o Cacti e permitir que o usuário em tempo de execução do Apache tenha permissões de gravação total no caminho de instalação do cacti.

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

Comece a instalar o Cacti pela interface web visitando o endereço IP do seu sistema ou nome de domínio a partir de um navegador e abrindo a seguinte URL.

http://192.168.1.14/install

Na primeira tela, marque Aceitar o Acordo de Licença GPL e clique no botão Avançar para continuar, conforme mostrado na captura de tela abaixo.

Aceitar o acordo de licença do cacti

Na próxima tela, role para baixo e verifique se todos os requisitos do sistema foram atendidos pelo instalador e clique no botão Avançar para prosseguir com o processo de instalação.

Verificar requisitos do sistema

Configurações do Cacti

Configurações do Cacti parte 2

Em seguida, escolha Novo Servidor Primário como o tipo de instalação e clique no botão Avançar para continuar.

Instalar servidor primário

Agora verifique se todos os locais e versões binários críticos são detectados corretamente pelo instalador do cacti. Além disso, você deve atualizar o caminho binário do Spine para /usr/local/spine/bin/spine. Você pode escolher o tema Clássico e clicar no botão Avançar para continuar.

Locais e versões binários

Na próxima tela, o instalador verificará as permissões do diretório raiz do servidor web Apache para verificar se o servidor web está autorizado a realizar gravações no caminho de instalação do cacti. Se todos os caminhos necessários forem graváveis, clique no botão Avançar para continuar.

Verificar se os caminhos são graváveis

Selecione todos os templates da lista fornecida e clique no botão Concluir para finalizar a instalação.

Concluir instalação do cacti

Após concluir o processo de instalação, faça login na interface web do Cacti com as seguintes credenciais padrão e substitua a senha padrão do admin por uma nova senha forte, conforme ilustrado nas capturas de tela a seguir.

Nome de usuário: admin Senha: admin

Login no cacti

Alterar senha do admin do cacti

Após fazer login na interface web do Cacti, navegue até Console -> Configuração -> Configurações -> Poller e altere o tipo de poller de cmd.php para o binário spine, conforme mostrado na imagem abaixo. Role para baixo e clique no botão Salvar para aplicar as alterações.

Alterar poller para spine

Em seguida, navegue até Console -> Configuração -> Configurações -> Caminhos e atualize o Cacti-Spine e defina o caminho do arquivo de configuração para o seguinte caminho /usr/local/spine/etc/spine.conf e clique no botão Salvar para aplicar a configuração, conforme ilustrado na imagem abaixo.

Definir caminho spine.conf

Para adicionar um novo dispositivo a ser monitorado via SNMP, vá para Console -> Gerenciamento -> Dispositivos e clique no ícone +, conforme ilustrado na imagem abaixo. Para fins de demonstração, adicionaremos a máquina localhost para ser monitorada pelo Cacti via protocolo SNMP.

Adicionar novo dispositivo monitorado

Para o dispositivo Linux recém-adicionado que será monitorado via SNMP, adicione uma descrição para o dispositivo, o nome do host, FQDN ou o endereço IP do dispositivo monitorado e selecione Máquina Linux Local como template do dispositivo. Nas opções SNMP, selecione a versão SNMP apropriada (neste caso, usaremos a versão 2) e escreva sua string de comunidade SNMP do dispositivo, conforme descrito nas imagens abaixo. Caso a porta SNMP não tenha sido alterada, deixe o valor da porta como padrão e, quando terminar, role para baixo e clique no botão Criar para adicionar o dispositivo ao banco de dados do Cacti para ser monitorado.

Configurar configurações do dispositivo

Configurar configurações do dispositivo - parte 2

Após o dispositivo ter sido adicionado ao banco de dados do Cacti, um resumo SNMP será exibido na parte superior da página do dispositivo caso o dispositivo tenha sido detectado e consultado corretamente. Para criar gráficos SNMP do RRDTool para este dispositivo, clique no link Criar Gráficos para este dispositivo, marque os templates de gráfico que você deseja examinar mais e clique no botão Criar para passar para a próxima tela, em seguida, clique no botão Criar novamente para finalizar, conforme ilustrado nas imagens a seguir.

Criar Gráficos

Criar Gráficos 2

Criar Gráficos 3

Para visualizar os gráficos, navegue até Console -> Gerenciamento -> Dispositivos, marque o dispositivo que você deseja realizar uma ação e selecione Colocar em uma Árvore (Árvore Padrão) no menu de ações.

Colocar dispositivo na árvore padrão

Na nova tela, deixe o Destino como padrão e clique no botão Continuar para finalizar o processo, conforme descrito na imagem abaixo.

Clique em continuar

Finalmente, para que o poller do Cacti comece a coletar dados sobre os dispositivos monitorados, você precisa adicionar um novo trabalho cron que consultará os dispositivos via SNMP a cada 5 minutos. Adicione o trabalho agendado para ser de propriedade e executado pelo usuário em tempo de execução do Apache emitindo o comando abaixo.

crontab –u www-data –e

Linha do trabalho Crontab:

*/5 * * * * /usr/bin/php /var/www/html/poller.php > /var/www/html/log/cron.log 2>&1

Adicionar cronjob do cacti

Após adicionar o cronjob do poller, aguarde cerca de meia hora para dar tempo ao Cacti de coletar dados e, em seguida, navegue até a guia Gráficos na interface web do Cacti. Expanda a árvore padrão e os gráficos coletados da sua máquina monitorada devem ser exibidos, conforme ilustrado na captura de tela abaixo.

Monitoramento do Cacti

Por enquanto, a interface do Cacti pode ser acessada a partir dos navegadores dos clientes de forma não segura via protocolo HTTP. Todas as informações sensíveis sobre seus dispositivos, bem como as credenciais de login do cacti, são enviadas em texto simples. Para criptografar o tráfego entre os navegadores dos clientes e a interface web do Cacti, emita os seguintes comandos com privilégios de root para habilitar a configuração SSL do Apache.

a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2

Depois, navegue até a interface web do Cacti via protocolo HTTPS. Como o servidor web Apache usa um certificado autoassinado para criptografar a conexão, uma mensagem de erro deve ser exibida em seu navegador. Aceite o erro e agora você pode acessar com segurança a interface web do Cacti, conforme mostrado na captura de tela a seguir.

Interface do Cacti segura com SSL

Isso é tudo! Você instalou e configurou com sucesso o Cacti a partir de fontes no Debian 9. Para outras configurações personalizadas relacionadas ao Cacti, visite as páginas de documentação no seguinte link https://docs.cacti.net/manual:100

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.