Introdução ao LibreNMS para Observabilidade de Infraestrutura
Em ambientes de TI modernos, a visibilidade é o pilar fundamental da estabilidade. Seja para gerenciar um data center corporativo, uma infraestrutura em nuvem híbrida ou pequenos clusters VPS, saber o que está acontecendo com seus servidores e dispositivos de rede em tempo real não é luxo, é necessidade. O LibreNMS emergiu como uma das soluções open-source mais robustas e populares para monitoramento de rede, oferecendo uma alternativa poderosa aos gigantes pagos do mercado.
Diferente de ferramentas que exigem configuração manual complexa, o LibreNMS destaca-se por sua capacidade de descoberta automática. Ele varre sua sub-rede, identifica dispositivos via SNMP, mapeia topologias e começa a coletar métricas quase instantaneamente. Além disso, integra-se nativamente com sistemas de notificação, permitindo que você receba alertas proativos sobre falhas de link, alto uso de CPU ou quedas de conectividade antes que impactem seus usuários finais.
Neste tutorial técnico, vamos guiar você através da instalação completa do LibreNMS em um servidor Linux (com foco em Debian/Ubuntu e RHEL/CentOS). Ao final, você terá uma plataforma de observabilidade operacional, pronta para monitorar sua infraestrutura com precisão.
Requisitos de Infraestrutura e Pré-requisitos
Antes de iniciar o processo de instalação, é crucial garantir que seu ambiente atenda aos requisitos mínimos de hardware e software. O LibreNMS é uma aplicação web escrita em PHP, mas sua força reside no backend em Python e na base de dados relacional.
Hardware Recomendado:
- CPU: Mínimo de 2 vCPUs (4 recomendados para ambientes com mais de 100 dispositivos).
- RAM: 2GB no mínimo, mas 4GB ou mais são altamente recomendados para garantir performance na coleta de dados e armazenamento histórico.
- Armazenamento: SSD é preferível. O banco de dados crescerá conforme o tempo de retenção das métricas (RRA). Planeje espaço suficiente para pelo menos 6 meses a 1 ano de dados brutos.
Software Necessário:
- Sistema Operacional Linux recente (Ubuntu 22.04 LTS, Debian 11+, Rocky Linux 8/9 ou AlmaLinux).
- Acesso root ou usuário com privilégios sudo.
- Conexão de rede estável e portas 80 (HTTP) e 443 (HTTPS) abertas no firewall.
Passo 1: Preparação do Sistema Operacional
O primeiro passo é garantir que o sistema esteja atualizado e com as dependências básicas instaladas. Isso evita conflitos de pacotes durante a instalação do stack LAMP/LEMP.
Para usuários de Debian/Ubuntu, execute:
apt update && apt upgrade -y
apt install curl wget gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates -y
Para usuários de RHEL/CentOS/Rocky Linux:
dnf update -y
dnf install epel-release dnf-utils -y
dnf config-manager --set-enabled powertools # Em sistemas RHEL 8
dnf install curl wget policycoreutils-python-utils -y
Reinicie o servidor se houver atualizações de kernel para garantir que todos os módulos estejam carregados corretamente.
Passo 2: Instalação do Stack Web e Banco de Dados
O LibreNMS requer um servidor web (Apache ou Nginx) e um banco de dados (MariaDB ou MySQL). Vamos utilizar o MariaDB por sua compatibilidade excelente e performance.
Instalando Apache e PHP
O LibreNMS funciona bem com ambas as configurações, mas a documentação oficial recomenda Apache para instalações padrão devido à facilidade de configuração de reescrita de URL. Instale o Apache e as extensões PHP necessárias:
# Ubuntu/Debian
apt install apache2 libapache2-mod-php php-cli php-mysql php-json php-gd php-xml php-zip php-curl php-intl php-bcmath php-ldap php-snmp php-redis php-pdo php-common -y
# RHEL/CentOS
dnf install httpd php php-cli php-mysqlnd php-json php-gd php-xml php-zip php-curl php-intl php-bcmath php-ldap php-snmp php-redis php-pdo -y
Habilite os módulos necessários do Apache:
a2enmod rewrite headers env include filter proxy proxy_http
Instalando e Configurando o MariaDB
Instale o servidor de banco de dados:
# Ubuntu/Debian
apt install mariadb-server -y
# RHEL/CentOS
dnf install mariadb-server -y
Inicie o serviço e execute o script de segurança inicial:
systemctl enable mariadb --now
mysql_secure_installation
Durante a execução, defina uma senha forte para o root do banco de dados e responda 'Y' para todas as perguntas de segurança (remover usuários anônimos, desativar login root remoto, remover banco de teste).
Criando o Banco de Dados do LibreNMS
Acesse o prompt do MySQL:
mysql -u root -p
E execute os seguintes comandos SQL para criar o usuário e o banco de dados específicos para o LibreNMS:
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'SuaSenhaForteAqui';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Passo 3: Instalação do LibreNMS
Agora que o ambiente está pronto, vamos baixar e configurar a aplicação. O LibreNMS é distribuído via Git para facilitar atualizações futuras.
Criando Usuário do Sistema
Por segurança, o LibreNMS não deve rodar como root. Crie um usuário dedicado:
useradd -r -m -s /bin/bash librenms
Baixando o Código Fonte
Navegue até o diretório web e clone o repositório. O caminho padrão é /opt/librenms.
cd /opt
git clone https://github.com/librenms/librenms.git librenms
Mude a propriedade dos arquivos para o usuário criado:
chown -R librenms:librenms /opt/librenms
Instalando Dependências PHP (Composer)
O LibreNMS utiliza Composer para gerenciar suas dependências PHP. Como root ou sudo, execute:
cd /opt/librenms
./install/composer.phar install --no-dev
Se o comando acima falhar por permissão, certifique-se de que está no diretório correto e tente novamente.
Configurando o Apache (Virtual Host)
Crie um arquivo de configuração virtual host. Em Ubuntu/Debian, o caminho é /etc/apache2/sites-available/librenms.conf.
<VirtualHost *:80>
ServerName monitorador.suaempresa.com.br
DocumentRoot /opt/librenms/html
DirectoryIndex index.php
<Directory /opt/librenms/html>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/librenms-error.log
CustomLog ${APACHE_LOG_DIR}/librenms-access.log combined
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
Habilite o site e recarregue o Apache:
a2ensite librenms.conf
systemctl restart apache2
Passo 4: Configuração do Cron e SNMP
O LibreNMS depende de tarefas agendadas para coletar dados periodicamente. Além disso, ele precisa de acesso ao protocolo SNMP.
Instalando SNMP
apt install snmp snmpd libsnmp-php -y # Ubuntu
dnf install net-snmp net-snmp-utils -y # CentOS
Edite o arquivo de configuração do daemon SNMP (/etc/snmp/snmpd.conf) e configure uma string de comunidade (community string). Para testes, use:
rocommunity public localhost
rocommunity secret 127.0.0.1
Reinicie o serviço SNMP:
systemctl restart snmpd
systemctl enable snmpd
Configurando Cron Jobs
O LibreNMS possui um script de instalação de cron que configura as tarefas necessárias (discovery, polling, etc.). Execute como usuário librenms:
su - librenms
/opt/librenms/cron.sh
Verifique se os jobs foram adicionados ao crontab do usuário:
crontab -l
Você deve ver linhas agendadas para /opt/librenms/discovery.php, /opt/librenms/poller.py, entre outros.
Passo 5: Acesso à Interface Web e Configuração Final
Agora que tudo está instalado, acesse o endereço IP ou domínio configurado no navegador (ex: http://seu-ip-do-servidor). A instalação deve ter redirecionado você para a página de setup.
- Banco de Dados: Insira as credenciais criadas no Passo 2 (
librenmse a senha definida). - Credenciais Admin: Defina o login e senha para o usuário administrador inicial. Dica de segurança: Use uma senha forte e única.
- Verificação de Ambiente: A interface irá verificar se todas as dependências estão instaladas. Se houver alertas em vermelho, volte aos passos anteriores e corrija as permissões ou pacotes faltantes.
Após o login bem-sucedido, você será apresentado ao dashboard inicial. O LibreNMS começará a fazer uma varredura na rede local para tentar descobrir dispositivos.
Passo 6: Adicionando Dispositivos e Monitoramento
Para monitorar seus servidores, roteadores ou switches, você precisa adicioná-los ao LibreNMS. Vá em Add Device.
Requisitos no dispositivo alvo:
- O dispositivo deve ter o SNMP habilitado.
- A string de comunidade (community string) configurada no dispositivo deve corresponder à que você irá inserir no LibreNMS ou às padrões configurados globalmente.
- O firewall do dispositivo alvo deve permitir tráfego UDP na porta 161 vindo do servidor LibreNMS.
Configurando Alertas:
Navegue até Alerts > Alert Rules. Aqui você pode definir condições para receber notificações. Por exemplo, configurar um alerta quando o uso de disco ultrapassar 80% ou quando um link ficar down por mais de 2 minutos.
O LibreNMS suporta múltiplos canais de notificação, incluindo Email (SMTP), Slack, Telegram e webhooks genéricos. Configure suas credenciais em Settings > Alerts.
Boas Práticas e Manutenção
Para manter seu sistema de monitoramento saudável, adote as seguintes práticas:
- Atualizações Regulares: Execute o script
/opt/librenms/updates.shregularmente para manter a aplicação atualizada com as últimas correções e features. - Backup do Banco de Dados: Automatize backups diários do banco
librenms. Um backup pode ser feito viamysqldump -u librenms -p librenms > librenms_backup.sql. - Otimização de Performance: Em grandes infraestruturas, considere ajustar o número de processos de polling no arquivo
config.phpe monitorar o uso de memória do servidor. - Segurança SNMP: Evite usar a string "public" em produção. Crie strings personalizadas e restritas via ACLs (Access Control Lists) nos dispositivos de rede.
Conclusão
A instalação do LibreNMS é um passo estratégico para qualquer profissional de TI que busca dominar a infraestrutura sob sua responsabilidade. Ao combinar automação, alertas inteligentes e uma interface rica em dados, você transforma dados brutos de SNMP em insights acionáveis.
Com o LibreNMS rodando, você estará preparado para identificar gargalos de desempenho, planejar capacity planning com base em tendências reais e garantir a alta disponibilidade dos seus serviços. Lembre-se: a melhor forma de resolver um problema é saber que ele existe antes do usuário reclamar.