Autodiscovery SNMP em Switches Cisco com LibreNMS

10 min de leitura Monitoramento
Autodiscovery SNMP em Switches Cisco com LibreNMS

O monitoramento proativo de infraestrutura de rede é fundamental para garantir a disponibilidade e o desempenho dos serviços críticos. Quando se trata de switches Cisco, a capacidade de identificar automaticamente os dispositivos conectados e configurar seus parâmetros de monitoramento economiza horas de trabalho manual e reduz erros humanos. O LibreNMS, uma plataforma de monitoramento de rede baseada em PHP e SNMP, oferece um mecanismo robusto de autodiscovery que simplifica drasticamente esse processo.

Neste tutorial técnico, explicaremos como configurar o LibreNMS para realizar a autodiscovery SNMP em switches Cisco. Abordaremos desde a preparação do ambiente até a execução dos scripts de descoberta, garantindo que seus dispositivos sejam monitorados com precisão e eficiência.

1. Requisitos Prévios e Preparação do Ambiente

Antes de iniciar a configuração da autodiscovery, é essencial garantir que o servidor LibreNMS esteja corretamente instalado e operacional. Além disso, a comunicação entre o servidor de monitoramento e os switches Cisco deve ser permitida através do firewall.

O primeiro passo é verificar se o serviço librenms está ativo e se o banco de dados está acessível. Utilize o comando abaixo para validar o status do sistema:

sudo -u librenms php /opt/librenms/cronic

Se não houver erros críticos na saída, seu ambiente está pronto. Agora, é necessário garantir que a porta UDP 161 (SNMP) esteja aberta no firewall do servidor LibreNMS e nos switches de destino. Em sistemas Linux com firewalld, você pode adicionar a regra necessária:

sudo firewall-cmd --permanent --add-port=161/udp
sudo firewall-cmd --reload

Além disso, verifique se as dependências do PHP para SNMP estão instaladas. No Ubuntu/Debian, o pacote é php-snmp, e no CentOS/RHEL, é php-snmp. A ausência dessa biblioteca impedirá que o LibreNMS consulte os dispositivos.

2. Configuração do SNMP nos Switches Cisco

A autodiscovery depende inteiramente da capacidade do LibreNMS de se comunicar com os switches via protocolo SNMP. Para isso, é preciso configurar uma comunidade SNMP (versão 2c) ou um usuário SNMPv3 com permissões de leitura nos dispositivos Cisco.

Para fins de demonstração e simplicidade inicial, utilizaremos a abordagem mais comum em ambientes de teste ou laboratórios: SNMPv2c. Em produção, recomenda-se fortemente o uso de SNMPv3 para maior segurança, mas a lógica de autodiscovery permanece similar.

Acesse o modo de configuração do switch Cisco via console ou SSH e insira os seguintes comandos:

enable
configure terminal
snmp-server community SUA_COMMUNITY_RO ro
snmp-server host IP_DO_LIBRENMS VERSION SUA_COMMUNITY_RO
exit
write

Substitua SUA_COMMUNITY_RO por uma string de comunidade segura (ex: LibreNMS_ReadOnly_2024) e IP_DO_LIBRENMS pelo endereço IP do seu servidor. O parâmetro ro garante que apenas leitura será permitida, o que é suficiente para monitoramento.

Se você estiver utilizando SNMPv3, a configuração será ligeiramente mais complexa e exigirá a criação de um usuário com autenticação (SHA) e privacidade (AES). O script de autodiscovery do LibreNMS pode lidar com SNMPv3, mas requer configurações específicas no arquivo de hosts.

3. Configuração do Arquivo de Hosts para Autodiscovery

O coração da autodiscovery no LibreNMS reside no arquivo /opt/librenms/hosts.ini. Este arquivo permite definir grupos de dispositivos, comunidades SNMP e outras propriedades que serão aplicadas durante o processo de descoberta. Em vez de adicionar dispositivos um por um na interface web, você define padrões aqui.

Abra o arquivo com um editor de texto:

sudo nano /opt/librenms/hosts.ini

A estrutura do arquivo utiliza uma sintaxe simples baseada em seções. Vamos criar uma seção para nossos switches Cisco. Suponha que você queira monitorar a faixa de IP 192.168.10.0/24.

[switches-cisco]
community=SUA_COMMUNITY_RO
version=2
type=cisco
ip=192.168.10.0/24
snmp_version=2c
snmp_community=SUA_COMMUNITY_RO

Vamos detalhar as diretivas importantes:

  • community: Define a string de comunidade SNMP padrão para descoberta.
  • version: Especifica a versão do protocolo (1, 2c ou 3).
  • type: O LibreNMS tenta identificar o tipo de dispositivo. Definir cisco ajuda a priorizar os scripts de mapeamento específicos da Cisco.
  • ip: Define o intervalo de endereços IP ou rede CIDR que será escaneado. Você pode listar IPs individuais separados por vírgulas ou usar notação CIDR.

Se precisar adicionar dispositivos específicos com comunidades diferentes, você pode sobrescrever as configurações globais dentro da mesma seção:

[switches-cisco]
community=SUA_COMMUNITY_RO
version=2
ip=192.168.10.0/24

[switch-core]
community=AdminCommunity123
version=2
ip=192.168.10.1,192.168.10.2

Após salvar o arquivo (Ctrl+O, Enter, Ctrl+X no Nano), certifique-se de que as permissões estão corretas para que o usuário librenms possa lê-lo:

sudo chown librenms:librenms /opt/librenms/hosts.ini
sudo chmod 640 /opt/librenms/hosts.ini

4. Executando o Script de Autodiscovery

Com a configuração concluída, é hora de executar o script que realizará a varredura e a adição dos dispositivos ao banco de dados do LibreNMS. O LibreNMS utiliza um script PHP chamado discovery.php para isso.

A maneira mais segura de executar este comando é através do usuário librenms, pois ele possui as permissões adequadas no banco de dados e nas pastas de log. Execute o seguinte comando:

sudo -u librenms php /opt/librenms/discovery.php -h all

A flag -h all instrui o script a processar todos os hosts definidos no arquivo hosts.ini. Se você preferir descobrir apenas um host específico, pode substituir all pelo IP ou nome do host:

sudo -u librenms php /opt/librenms/discovery.php -h 192.168.10.5

A saída do comando será detalhada. Você verá mensagens indicando o status de cada tentativa de conexão SNMP. Linhas começando com OK indicam sucesso, enquanto erros como SNMP error ou Timeout indicam problemas de conectividade ou configuração incorreta.

Exemplo de saída bem-sucedida:

Device found: 192.168.10.5 (Switch-Cisco-Core)
Adding device to database...
Discovered via SNMP v2c
Device added successfully.

5. Verificação e Validação no Painel Web

Após a execução bem-sucedida do script, os dispositivos descobertos aparecerão no painel web do LibreNMS. Acesse a interface e navegue até Devices > All Devices.

Você deve ver os novos switches listados. Clique em um deles para acessar o painel de detalhes. Verifique se:

  • O status do dispositivo está marcado como Up.
  • A versão SNMP e a comunidade estão corretas na aba Details.
  • Os dados de performance (CPU, Memória) estão sendo coletados.

Se o dispositivo aparecer como Down, verifique as mensagens de erro no log. O log principal do LibreNMS está localizado em /opt/librenms/logs/librenms.log. Você pode filtrar os erros recentes com:

tail -f /opt/librenms/logs/librenms.log | grep "192.168.10.5"

Erros comuns incluem SNMP: No Response, que indica bloqueio de firewall, ou SNMP: Bad Community, que indica senha incorreta.

6. Automatização com Cron Job

A autodiscovery não deve ser um evento único. Dispositivos podem ser adicionados à rede dinamicamente, e o LibreNMS precisa manter essa lista atualizada. O LibreNMS já vem configurado com um cron job padrão que executa a descoberta periodicamente.

Verifique se o cron job está ativo executando:

sudo crontab -u librenms -l

Você deve encontrar uma linha semelhante a esta:

/opt/librenms/cronic /opt/librenms/discovery.php -h all >/dev/null 2>&1

Por padrão, isso roda a cada 5 minutos. Isso significa que, se você adicionar um novo switch à rede e configurar o hosts.ini, ele será descoberto automaticamente em até 5 minutos. Se precisar de uma descoberta imediata após alterações na configuração, basta executar o comando manual descrito no passo anterior.

7. Considerações sobre SNMPv3 e Segurança

Embora o SNMPv2c seja amplamente utilizado por sua simplicidade, ele transmite a string de comunidade em texto claro. Em redes corporativas modernas, o uso de SNMPv3 é recomendado para mitigar riscos de sniffing de rede.

Para configurar autodiscovery com SNMPv3 no LibreNMS, o arquivo hosts.ini deve incluir parâmetros adicionais:

[switches-secure]
version=3
snmp_version=3
username=librenms_user
auth_protocol=SHA
auth_pass=SuaSenhaDeAutenticacao
priv_protocol=AES
priv_pass=SuaSenhaDePrivacidade
level=authPriv
ip=192.168.10.0/24

O LibreNMS é flexível o suficiente para gerenciar dispositivos mistos (alguns com v2c, outros com v3) desde que as configurações no hosts.ini sejam precisas. Certifique-se de que os usuários SNMPv3 foram criados corretamente nos switches Cisco:

snmp-server user librenms_user V3 auth sha SuaSenhaDeAutenticacao priv aes 128 SuaSenhaDePrivacidade
access view FullView included .1

8. Solução de Problemas Comuns

Ainda que a configuração seja direta, problemas podem ocorrer. Abaixo estão as causas mais frequentes e suas resoluções:

  1. Firewall Bloqueando UDP 161: Verifique se o iptables, firewalld ou ufw permitem tráfego de saída na porta 161 do servidor para os IPs dos switches. Use telnet IP_SWITCH 161 ou nc -zv IP_SWITCH 161 para testar a conectividade.
  2. DNS Inverso Falho: O LibreNMS tenta resolver o nome DNS do dispositivo. Se o PTR record estiver ausente, ele usará o IP. Isso não impede a descoberta, mas pode afetar a exibição de nomes amigáveis. Certifique-se de que o servidor DNS está configurado corretamente no /etc/resolv.conf.
  3. Permissões de Arquivo: Se o script falhar com erros de permissão, verifique se o usuário librenms tem acesso de leitura ao hosts.ini e acesso de escrita no banco de dados.
  4. Community String Incorreta: Erros de ortografia na comunidade SNMP são a causa número um de falhas. Compare exatamente o que está no hosts.ini com a configuração do switch.

Conclusão

A autodiscovery SNMP no LibreNMS transforma a gestão de infraestrutura de rede, permitindo que administradores e desenvolvedores foquem na análise de dados e na otimização da performance, em vez de tarefas manuais de cadastro de dispositivos. Ao configurar corretamente o hosts.ini e garantir a comunicação SNMP entre o servidor e os switches Cisco, você estabelece uma base sólida para monitoramento contínuo e confiável.

Lembre-se sempre de atualizar as comunidades SNMP regularmente e migrar para SNMPv3 em ambientes sensíveis. Com o LibreNMS bem configurado, sua rede estará pronta para fornecer insights valiosos sobre saúde e desempenho, garantindo a continuidade dos seus negócios.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000