Pesquisa de site

LibreNMS – Uma ferramenta de monitoramento de rede completa para Linux


LibreNMS é um sistema de monitoramento de rede baseado em PHP de código aberto, poderoso e rico em recursos, com descoberta automática, que usa o protocolo SNMP. Ele suporta uma ampla gama de sistemas operacionais, incluindo Linux, FreeBSD, bem como dispositivos de rede, incluindo Cisco, Juniper, Brocade, Foundry, HP e muitos mais.

Recursos do LibreNMS:

  1. Ele descobre automaticamente uma rede inteira usando estes protocolos: CDP, FDP, LLDP, OSPF, BGP, SNMP e ARP.
  2. Possui uma interface da Web compatível com dispositivos móveis, com painéis personalizáveis.
  3. Suporta um agente Unix.
  4. Suporta escalonamento horizontal para expandir com sua rede.
  5. Suporta um sistema de alerta altamente flexível e personalizável; envia notificações por e-mail, irc, slack e muito mais.
  6. Suporta uma API para gerenciar, representar graficamente e recuperar dados do seu sistema.
  7. Oferece um sistema de cobrança de tráfego.
  8. Também oferece suporte a aplicativos Android e iOS que oferecem funcionalidades básicas.
  9. Suporta integração com NfSen, collectd, SmokePing, RANCID e Oxidized.
  10. Suporta vários métodos de autenticação, como MySQL, HTTP, LDAP, Radius e Active Directory.
  11. Permite atualização automática e muitos outros recursos.

Uma demonstração online está disponível para você experimentar antes de instalar o LibreNMS em sistemas Linux.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

Ambiente de teste:

  1. Ubuntu 16.04 com pilha LEMP
  2. CentOS 7 com pilha LEMP

Neste tutorial, aprenderemos como instalar a Ferramenta de monitoramento de rede LibreNMS em um Ubuntu ou CentOS Linux recém-instalado (as mesmas instruções também funcionam no Distribuições baseadas em >Debian e RHEL).

NOTA: Todas essas instruções neste artigo devem ser executadas como o usuário root, se não for, use o comando sudo para obter root privilégios do usuário.

Etapa 1: instalar os pacotes necessários

1. Primeiro comece instalando todos os pacotes necessários usando o gerenciador de pacotes padrão conforme mostrado.

No Ubuntu/Debian

sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois

No CentOS/RHEL

yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool

2. Depois que todos os pacotes estiverem instalados, nginx, php-fpm, mariadb e snmp< os serviços serão iniciados e habilitados para inicialização automática no momento da inicialização (este é normalmente o caso do Ubuntu), caso contrário, você pode executar os comandos abaixo para iniciá-los e ativá-los.

------------ On Debian/Ubuntu ------------ 
sudo systemctl nginx start php7.0-fpm mysql snmp 
sudo systemctl enable nginx php7.0-fpm mysql snmp

------------ On CentOS/RHEL ------------ 
systemctl nginx start php-fpm mariadb snmpd 
systemctl enable nginx php-fpm mariadb snmpd

Etapa 2: Instale a ferramenta de monitoramento LibreNMS

3. Em seguida, crie um usuário do sistema chamado librenms, com o comando useradd; onde o sinalizador -M desativa a criação do diretório inicial do usuário e -r permite a criação de uma conta do sistema. Em seguida, adicione o usuário librenms ao grupo www-data (no Ubuntu) ou nginx (no CentOS) como segue.

------------ On Debian/Ubuntu ------------ 
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms www-data   

------------ On CentOS/RHEL ------------ 
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx           

4. Em seguida, instale o LibreNMS através do comando composer conforme mostrado.

------------ On Debian/Ubuntu ------------ 
cd /opt
sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

------------ On CentOS/RHEL ------------ 
cd /opt
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

Etapa 3: Criar banco de dados LibreNMS

5. Antes de começar a usar o servidor MariaDB, você precisa proteger sua instalação, execute o script de segurança fornecido no pacote binário. Ele solicitará que você defina uma senha root, remova usuários anônimos, desabilite o login root remotamente e remova o banco de dados de teste.

Você pode iniciar o script emitindo o comando abaixo e responder a todas as perguntas com yes/y.

sudo mysql_secure_installation   [On Debian/Ubuntu]
mysql_secure_installation        [On CentOS/RHEL]

6. Em seguida, faça login no banco de dados MariaDB para criar um banco de dados para LibreNMS (lembre-se de usar uma senha forte/segura em um ambiente de produção).

sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Depois disso, desative o modo estrito do MySQL por enquanto (a compatibilidade com o modo estrito do MySQL ainda não foi adicionada).

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu]
vi /etc/my.cnf        [On CentOS/RHEL]

Na seção [mysqld] adicione.

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Em seguida, reinicie o servidor de banco de dados para efetuar as alterações.

sudo systemctl restart mysql     [On Debian/Ubuntu]
systemctl restart mariadb        [On CentOS/RHEL]

Etapa 4: configurar e iniciar o PHP-FPM

8. Em seguida, defina seu date.timezone no php.ini para o seu fuso horário atual, por exemplo “África/Kampala ”, conforme mostrado na imagem a seguir.

------------ On Debian/Ubuntu ------------ 
sudo vim /etc/php/7.0/fpm/php.ini
sudo vim /etc/php/7.0/cli/php.ini

------------ On CentOS/RHEL ------------ 
vi /etc/php.ini

9. Em seguida, habilite o módulo PHP mcrypt no Ubuntu e reinicie o php-fpm conforme mostrado.

------------ On Debian/Ubuntu ------------ 
sudo phpenmod mcrypt
sudo systemctl restart php7.0-fpm

10. No CentOS/RHEL você precisa fazer as seguintes alterações no arquivo de configuração php-fpm.

vi /etc/php-fpm.d/www.conf

Faça as seguintes alterações.

;user = apache
user = nginx

group = apache   ; keep group as apache

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php7.2-fpm.sock

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

11. Reinicie o serviço php-fpm conforme mostrado.

systemctl restart php-fpm

Etapa 5: configurar Nginx para LibreNMS

12. Nesta etapa, você precisa configurar um bloco de servidor Nginx para librenms para acessar a UI da web. Crie um arquivo .conf para ele, conforme mostrado.

sudo vim /etc/nginx/conf.d/librenms.conf     [On Debian/Ubuntu]
vi /etc/nginx/conf.d/librenms.conf           [On CentOS/RHEL]         

Adicione o seguinte config e edite server_name conforme necessário.

server {
 listen      80;
 server_name librenms.example.com;
 root        /opt/librenms/html;
 index       index.php;

 charset utf-8;
 gzip on;
 gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
 location / {
  try_files $uri $uri/ /index.php?$query_string;
 }
 location /api/v0 {
  try_files $uri $uri/ /api_v0.php?$query_string;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}

13. Em seguida, salve e saia do arquivo. Remova também a configuração padrão do bloco do servidor e reinicie o servidor Nginx.

------------ On Debian/Ubuntu ------------ 
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

------------ On CentOS/RHEL ------------ 
systemctl restart nginx

NOTA: No CentOS/RHEL, você precisará desabilitar a seção site padrão, se esta for a único site que você está hospedando. Exclua a seção do servidor do arquivo /etc/nginx/nginx.conf.

14. Também no CentOS/RHEL, você precisa instalar a ferramenta de política para SELinux e configurar o >contextos necessários ao LibreNMS usando os seguintes comandos.

------------ On CentOS/RHEL ------------ 
yum install policycoreutils-python
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
restorecon -RFvv /opt/librenms/logs/
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?'
restorecon -RFvv /opt/librenms/rrd/
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1

15. Permita o fping criando o arquivo http_fping.tt com o seguinte conteúdo.

module http_fping 1.0;

require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}

#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };

16. Em seguida, execute estes comandos.

------------ On CentOS/RHEL ------------ 
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.pp

17. Se você estiver usando Firewall no CentOS/RHEL, habilite o acesso HTTP/HTTPS através do firewall.

------------ On CentOS/RHEL ------------ 
firewall-cmd --zone public --add-service http
firewall-cmd --permanent --zone public --add-service http
firewall-cmd --zone public --add-service https
firewall-cmd --permanent --zone public --add-service https

Etapa 6: Configurar SNMPD para LibreNMS

18. Agora use o exemplo de configuração snmp para criar seu arquivo de configuração e abra-o para edição, como segue.

------------ On Debian/Ubuntu ------------ 
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf

------------ On CentOS/RHEL ------------ 
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf

Encontre a string RANDOMSTRINGGOESHERE e altere-a para a string da sua própria comunidade, conforme mostrado na captura de tela.

19. Em seguida, baixe um script de shell em seu sistema, que ajuda a detectar qual sistema operacional e se for Linux, ele detectará qual distribuição Linux você está usando:

------------ On Debian/Ubuntu ------------ 
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd

------------ On CentOS/RHEL ------------ 
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd

Etapa 7: Criar Cron e Configurar Logrotate

20. Agora execute o comando abaixo para configurar um cron job para LibreNMS.

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

21. Em seguida, todos os logs do LibreNMS são registrados em /opt/librenms/logs, você pode precisar configurar esses logs para serem girados automaticamente , usando o arquivo de configuração logrotate fornecido, como este.

cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Em seguida, defina as permissões apropriadas no diretório raiz de instalação do LibreNMS e nos arquivos de log.

------------ On Debian/Ubuntu ------------
sudo chown -R librenms:librenms  /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

------------ On CentOS/RHEL ------------ 
chown -R librenms:librenms /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

Etapa 8: Acesse o instalador da Web LibreNMS

22. Em seguida, use o seguinte URL para acessar o instalador da web e siga as instruções na tela.

http://librenms.tecmint.lan/install.php

Para que este endereço funcione em uma máquina local, você precisa configurar um DNS local usando o arquivo hosts (/etc/hosts), para resolução de domínio local ou para fins de teste antes de entrar no ar.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Você verá a página de boas-vindas da instalação conforme mostrado na captura de tela a seguir. Clique em Próxima etapa para continuar.

24. Em seguida, insira as configurações (host do banco de dados, porta, nome de usuário e senha do usuário) do banco de dados LibreNMS e clique em Próximo estágio para prosseguir.

25. O instalador web começará agora a importar o banco de dados MySQL, o que levará algum tempo. Observe que o processo tentará pausar em determinados pontos, basta clicar em Repetir para continuar com o processo de importação.

26. Assim que a importação do banco de dados for concluída, você deverá ver a mensagem “Banco de dados atualizado! ”, conforme mostrado na imagem abaixo. Em seguida, clique em Goto Add User para prosseguir.

27. Em seguida, adicione um usuário LibreNMS, especifique nome de usuário, senha e e-mail e clique em Adicionar usuário para efetuar as alterações.

28. Agora clique em criar a configuração do LibreNMS para o seu sistema, clicando em Gerar Configuração.

29. Uma vez gerada a configuração, conforme mostrado na captura de tela anterior, copie-a e salve-a no diretório raiz de sua instalação, em um arquivo chamado /opt/librenms/config.php .

vi /opt/librenms/config.php
<?php
## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!

### Database config
$config['db_host'] = 'localhost';
$config['db_port'] = '3306';
$config['db_user'] = 'librenms';
$config['db_pass'] = '=@!#@%$libre';
$config['db_name'] = 'librenms';
$config['db_socket'] = '';

// This is the user LibreNMS will run as
//Please ensure this user is created and has the correct permissions to your install
$config['user'] = 'librenms';

### Locations - it is recommended to keep the default
#$config['install_dir']  = "/opt/librenms";

### This should *only* be set if you want to *force* a particular hostname/port
### It will prevent the web interface being usable form any other hostname
#$config['base_url']        = "http://librenms.company.com";

### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir
### and that your web server has permission to talk to rrdcached.
#$config['rrdcached']    = "unix:/var/run/rrdcached.sock";

### Default community
$config['snmp']['community'] = array("public");

### Authentication Model
$config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth
#$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth

### List of RFC1918 networks to allow scanning-based discovery
#$config['nets'][] = "10.0.0.0/8";
#$config['nets'][] = "172.16.0.0/12";
#$config['nets'][] = "192.168.0.0/16";

Update configuration
#$config['update_channel'] = 'release';  # uncomment to follow the monthly release channel
#$config['update'] = 0;  # uncomment to completely disable updates

30. Salve e feche o arquivo. Em seguida, retorne ao instalador web para continuar com o processo de instalação, clicando em Concluir instalação.

31. Agora que a instalação do LibreNMS está concluída, você pode clicar em “validar sua instalação e corrigir quaisquer problemas”, a página de login deverá aparecer.

32. Em seguida, insira suas credenciais de usuário para acessar a página de validação.

33. No processo de validação da instalação, o LibreNMS descobriu dois problemas: um é que os dispositivos não foram adicionados (este é um aviso por enquanto) e, em segundo lugar, temos não defina a permissão apropriada no arquivo de configuração (/opt/librenms/config.php) que foi adicionado manualmente, conforme mostrado na captura de tela abaixo.

Agora execute o seguinte comando para definir a permissão correta no arquivo de configuração.

sudo chown -R librenms:librenms /opt/librenms/config.php 

34. Para adicionar dispositivos, acesse: http://librenms.tecmint.lan/addhost. Depois de adicionar dispositivos, você pode ir para a página inicial e adicionar vários painéis.

É isso! Você pode encontrar mais informações, incluindo instalação e configuração na documentação do LibreNMS em https://docs.librenms.org/.

LibreNMS é um sistema de monitoramento de rede completo que suporta uma variedade de hardware de rede. Esperamos que este seja um guia de instalação lúcido. Se você tiver alguma dúvida, entre em contato conosco através do formulário de feedback abaixo.