O LibreNMS é um sistema de monitoramento de rede baseado em PHP de código aberto, poderoso e rico em recursos, que utiliza o protocolo SNMP. Ele suporta uma ampla variedade 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 esses 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 email, IRC, Slack e muito mais.
- Suporta uma API para gerenciar, graficar e recuperar dados do seu sistema.
- Oferece um sistema de faturamento de tráfego.
- Também suporta aplicativos para 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 Ubuntu ou CentOS Linux recém-instalado (as mesmas instruções também funcionam em distribuições baseadas em Debian e RHEL).
NOTA: Todas essas instruções neste artigo devem ser executadas como usuário root, se você não for, 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 no momento do boot (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 irá solicitar que você defina uma senha de root, remova usuários anônimos, desabilite o login remoto de root e remova 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 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 seu date.timezone no php.ini
para o seu fuso horário atual, por exemplo, “Africa/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
Etapa 5: Configurar o Nginx para o LibreNMS
12. Nesta etapa, você precisa configurar um bloco de servidor Nginx para o librenms para acessar a interface da web. Crie um arquivo .conf
para isso conforme mostrado.
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
Adicione a seguinte configuração, 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 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 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: Configure 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, 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 sua própria string de comunidade, conforme mostrado na captura de tela.

19. Em seguida, faça o download de um script shell em seu sistema, que ajuda a detectar qual sistema operacional e se é Linux, então 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
Passo 7: Crie Cron e Configure o 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 automaticamente rotacionados, usando o arquivo de configuração do logrotate fornecido, assim.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Então 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: Acesse 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 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) 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 configuramos 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/