O LibreNMS é um sistema de monitoramento de rede de código aberto, poderoso e rico em recursos, baseado em PHP e com descoberta automática, que utiliza 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 outros.
Recursos do LibreNMS:
- Ele descobre automaticamente toda a rede usando estes protocolos: CDP, FDP, LLDP, OSPF, BGP, SNMP e ARP.
- Ele possui uma interface Web amigável para dispositivos móveis, com painéis personalizáveis.
- Suporta um agente Unix.
- Suporta escalabilidade horizontal para expandir com sua rede.
- Suporta um sistema de alerta altamente flexível e personalizável; envia notificações por e-mail, irc, slack e muito mais.
- Suporta uma API para gerenciar, representar graficamente e recuperar dados do seu sistema.
- Oferece um sistema de faturamento de tráfego.
- Também suporta aplicativos Android e iOS que oferecem funcionalidades principais.
- Suporta integração com NfSen, collectd, SmokePing, RANCID e Oxidized.
- Suporta múltiplos métodos de autenticação, como MySQL, HTTP, LDAP, Radius e Active Directory.
- 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:
Neste tutorial, aprenderemos como instalar a Ferramenta de Monitoramento de Rede LibreNMS em um sistema Ubuntu ou CentOS Linux recém-instalado (as mesmas instruções também funcionam em distribuições baseadas em Debian e RHEL).
NOTA: Todas as instruções neste artigo devem ser executadas como usuário root, se não estiver, use o comando sudo para obter privilégios de usuário root.
Passo 1: Instalar Pacotes Necessários
1. 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, os serviços nginx, php-fpm, mariadb e snmp serão iniciados e habilitados para iniciar automaticamente durante a inicialização (isso é normalmente o caso do Ubuntu), caso contrário, você pode executar os comandos abaixo para iniciá-los e habilitá-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
Passo 2: Instalar a Ferramenta de Monitoramento LibreNMS
3. Em seguida, crie um usuário do sistema chamado librenms, com o comando useradd; onde a flag -M
desabilita a criação do diretório home do usuário, e -r
habilita a criação de uma conta de sistema. Em seguida, adicione o usuário librenms ao grupo www-data (no Ubuntu) ou nginx (no CentOS) da seguinte forma.
------------ 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 via 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
Passo 3: Criar Banco de Dados do LibreNMS
5. Antes de começar a usar o servidor MariaDB, você precisa garantir a segurança da sua instalação, execute o script de segurança fornecido no pacote binário. Ele pedirá para definir uma senha de root, remover usuários anônimos, desabilitar login remoto de root e remover o banco de dados de teste.
Você pode iniciar o script emitindo o comando abaixo e responder 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 do MariaDB para criar um banco de dados para o 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, desabilite 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]
Dentro da seção [mysqld]
por favor adicione.
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Em seguida, reinicie o servidor de banco de dados para aplicar as alterações.
$ sudo systemctl restart mysql [On Debian/Ubuntu] # systemctl restart mariadb [On CentOS/RHEL]
Passo 4: Configurar e Iniciar o PHP-FPM
8. Em seguida, defina o seu date.timezone no arquivo php.ini
para o fuso horário atual, por exemplo “África/Kampala”, conforme mostrado na captura de tela 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 do 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
Passo 5: Configurar o Nginx para o LibreNMS
12. Neste passo, você precisa configurar um bloco de servidor Nginx para o librenms para acessar a interface 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, 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. Também remova a configuração do bloco de servidor padrão 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á desativar a seção do site padrão, se este for o ú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 o SELinux e configurar os contextos necessários pelo LibreNMS usando os comandos a seguir.
------------ 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. Permitir 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 esses 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 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
Passo 6: Configurar SNMPD para o LibreNMS
18. Agora use a configuração SNMP de exemplo para criar seu arquivo de configuração e abra-o para edição, conforme a seguir.
------------ 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 para sua própria string de comunidade, como mostrado na captura de tela.

19. Em seguida, baixe um script shell em seu sistema, que ajuda a detectar qual sistema operacional e se é Linux, então 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
Passo 7: Criar Cron e Configurar Logrotate
20. Agora execute o comando abaixo para configurar um trabalho cron para o 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ê precisa configurar esses logs para serem rotacionados automaticamente, usando o arquivo de configuração do logrotate fornecido, assim.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Em seguida, defina as permissões apropriadas no diretório raiz da 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
Passo 8: Acessar o Instalador Web do LibreNMS
22. Em seguida, use a seguinte URL para acessar o instalador 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 ir ao ar.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. Você verá a página de boas-vindas à 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) para o banco de dados do LibreNMS e clique em Próxima Etapa para prosseguir.

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

26. Assim que a importação do banco de dados estiver completa, você deverá ver a mensagem “Banco de dados está atualizado!”, conforme mostrado na captura de tela abaixo. Em seguida, clique em Ir para Adicionar Usuário para prosseguir.

27. Em seguida, adicione um usuário do 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. Assim que a configuração for gerada, conforme mostrado na captura de tela anterior, copie-a e salve-a no diretório raiz da 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 da web para continuar com o processo de instalação, clicando em Concluir Instalação.

31. Agora que a instalação do seu LibreNMS está completa, você pode clicar em “validar sua instalação e corrigir quaisquer problemas”, a página de login deve 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 (isso é um aviso por enquanto), e em segundo lugar, não definimos a permissão apropriada no arquivo de configuração (/opt/librenms/config.php) que foi adicionado manualmente, como 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, vá para: http://librenms.tecmint.lan/addhost. Após 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 tenha sido um guia de instalação lúcido, se tiver alguma dúvida, entre em contato conosco através do formulário de feedback abaixo.
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/