Instalação do LibreNMS no Debian 10, ferramenta de monitoramento de dispositivos
LibreNMS é um monitoramento de rede baseado em PHP/MySQL/SNMP que inclui suporte para uma ampla gama de hardware de rede e sistemas operacionais, incluindo Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP e muitos mais.
LibreNMS é um fork do Observium
Requisitos:
Instalação Debian 10 Limpa
Instale os pacotes necessários
# apt install acl curl composer fping git graphviz imagemagick \ mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.3-cli \ php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring \ php7.3-mysql php7.3-snmp php7.3-xml php7.3-zip python-memcache \ python-mysqldb rrdtool snmp snmpd whois python3-pymysql \ python3-dotenv python3-redis python3-setuptools
Criaremos um usuário librenms
# useradd librenms -d /opt/librenms -M -r # usermod -a -G librenms www-data
Download LibreNMS
# cd /opt # git clone https://github.com/librenms/librenms.git
Ajustes as permissões
# chown -R librenms:librenms /opt/librenms # chmod 770 /opt/librenms # setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ # setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
Instale dependências de PHP
# su - librenms $ ./scripts/composer_wrapper.php install --no-dev $ exit
Configuração do MariaDB
# mariadb -u root
Defina a senha para o usuario root do MariaDB e em seguida crie o banco/usuário
librenms e defina também uma senha para o mesmo, recomendo você gerar uma senha aleatória
em https://senhasegura.remontti.com.br Não esqueção de alterar nas linhas a baixo SENHA_ROOT/SENHA_LIBRENMS
USE mysql; UPDATE user SET password=PASSWORD('SENHA_ROOT') WHERE User='root'; UPDATE user SET plugin="mysql_native_password"; CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'SENHA_LIBRENMS'; GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; FLUSH PRIVILEGES; quit;
Ative o innodb_file_per_table e desative o lower_case_table_names no banco de dados
# vim /etc/mysql/mariadb.conf.d/50-server.cnf
Adicione logo a baixo de “[mysqld]”
[mysqld] innodb_file_per_table=1 lower_case_table_names=0
Reinicie o serviço
# systemctl restart mariadb
Altere a memoria limite usada pelo php, bem como tempo de execução, e time zone: https://www.php.net/manual/pt_BR/timezones.php
# sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/7.3/fpm/php.ini /etc/php/7.3/cli/php.ini # sed -i 's/max_input_time = 60/max_input_time = 300/' /etc/php/7.3/fpm/php.ini /etc/php/7.3/cli/php.ini # sed -i 's/;date.timezone =/date.timezone = America\/Sao_Paulo/' /etc/php/7.3/fpm/php.ini /etc/php/7.3/cli/php.ini # echo 'opcache.enable=1' >> /etc/php/7.3/fpm/conf.d/10-opcache.ini # echo 'opcache.memory_consumption=256' >> /etc/php/7.3/fpm/conf.d/10-opcache.ini # systemctl restart php7.3-fpm
NGINX
Remova o arquivo default
# rm /etc/nginx/sites-enabled/default # vim /etc/nginx/sites-available/librenms.conf
Criaremos um novo arquivo, altere o server_name, se desejar restringir pode desomtar as linhas onde cito.
server { listen 80; listen [::]:80; server_name librenms.seudominio.com.br 192.168.0.100; root /opt/librenms/html; index index.php; # Desmomente para deixar restringido apenas para determinados prefixos #allow 192.168.87.0/24; #allow 2001:0db8::/32; #deny all; #error_page 403 http://www.remontti.com.br; 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; proxy_read_timeout 300; proxy_connect_timeout 300; proxy_send_timeout 300; 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.3-fpm.sock; } location ~ /\.ht { deny all; } }
Crie o link em sites-available e reinicie o nginx
# ln -s /etc/nginx/sites-available/librenms.conf /etc/nginx/sites-enabled/ # systemctl restart nginx
Configurando o snmpd
# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.old # cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf # chmod 600 /etc/snmp/snmpd.conf
Altere as variáveis para seus valores
# SUA_COMMUNITY="minhacommunity" # SEU_NOME="Rudimar Remontti" # SEU_EMAIL="noc@remontti.com.br" # LOCALIZACAO="Rua RR, Frederico Westphalen/RS, Brasil [-27.334143, -53.420506]"
Agora rodamos o comando que ira trocar alterar as variáveis em /etc/snmp/snmpd.conf
# sed -i "s/RANDOMSTRINGGOESHERE/$SUA_COMMUNITY/" /etc/snmp/snmpd.conf # sed -i "s/Your Name/$SEU_NOME/" /etc/snmp/snmpd.conf # sed -i "s/your@email.address/$SEU_EMAIL/" /etc/snmp/snmpd.conf # sed -i "s/syslocation/#syslocation/" /etc/snmp/snmpd.conf # sed -i "9i\syslocation $LOCALIZACAO" /etc/snmp/snmpd.conf
Baixa o script de detecção de distro
# curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro # chmod +x /usr/bin/distro # systemctl restart snmpd
Ajustando rotinas no Cron
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms # systemctl restart cron
Configuração do logrotate
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms # logrotate /etc/logrotate.d/librenms --debug # systemctl restart logrotate
Agora acesse seu servido em seu navegador: “http://librenms.seudominio.com.br/install”
Tenha todos os pré-requisitos
Clique no ícone do banco de dados e preencha os dados do banco com usuário e senha criada anteriormente.
Clique em Build database para ele criar todo seu banco de dados.
Se tudo deu certo clique no ícone da chave
Crie o usuário para acessar seu LibreNMS web
Clique no ícone “v” para finalizar
Um “erro” irá aparecer, não se assuste, ele apenas não conseguiu modificar o /opt/librenms/.env, então copie o conteúdo:
Iremos limpar o arquivo atual, e edite o mesmo
# echo > /opt/librenms/.env # vim /opt/librenms/.env
Colando as informações copiadas do navegado.
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxx= DB_HOST=localhost DB_DATABASE=librenms DB_USERNAME=librenms DB_PASSWORD=SENHA_LIBRENMS #APP_URL= NODE_ID=xxxxxxxxxxxxx
Mais uma vez altere as permissões bem como faça alguns ajustes
# chown -R librenms:librenms /opt/librenms # setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ # chmod -R ug=rwX /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ # cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/ # ln -s /opt/librenms/lnms /usr/bin/lnms
Logue com librenms e rode o comando:
# su - librenms $ ./scripts/github-remove -d Are you sure you want to delete all modified and untracked files? [y/N] y <<< $ exit
Finalize
Entre com usuário senha que criou
Adicione seu próprio servidor para monitorar
Valide as configurações
Extra: Plugin Weathermap
# cd /opt/librenms/html/plugins # git clone https://github.com/librenms-plugins/Weathermap.git # chown -R librenms:librenms /opt/librenms/html/plugins/Weathermap/ # chmod 775 /opt/librenms/html/plugins/Weathermap/configs # echo '*/5 * * * * librenms /opt/librenms/html/plugins/Weathermap/map-poller.php' >> /etc/cron.d/librenms
Ative o plugin em OverView ->Plugins -> Plugin Admin
Recomendo a leitura: https://docs.librenms.org/
Gostou? Quer me ajudar? 🙂
Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.
Fontes:
https://github.com/librenms/librenms
https://docs.librenms.org/Installation/
Essa ferramenta consome muito HW? Como faço essa otimização?
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms (Não existe ou não encontrado)
$ ./scripts/composer_wrapper.php install –no-dev (Exige PHP >=8.1 e não deixa instalar)
Nesse ponto Aqui:
“./scripts/composer_wrapper.php install –no-dev”
Esta exigindo PHP >=8.1
e não sai dai.
“cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms”
Não existe ou não encontrado
Poderia completar seu tutorial com o plugin https://github.com/librenms-plugins/Weathermap/blob/master/INSTALL.md
Acretido que seria muito interessante.
Muito massa! Server rodando já. Obrigado.
boa tarde, depois da instalação deu o erro Fail: Database: incorrect column (notifications/datetime)
Fail: Database: incorrect column (users/created_at)
Fail: We have detected that your database schema may be wrong, please report the following to us on Discord (https://t.libren.ms/discord) or the community site (https://t.libren.ms/5gscd):
Fix:
Run the following SQL statements to fix.
SQL Statements
SET TIME_ZONE=’+00:00′;
ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT ‘1970-01-02 00:00:00’ ;
ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT ‘1970-01-02 00:00:01’ ;
Alguem sabe como mudar de quanto em quanto tempo o sensor faz a leitura ?
Deu erro pra mim, quando criei o link no diretório sites-enabled, o nginx não reinicio de jeito nenhum
Instalação bem tranquila.
Uma dica em:
Criaremos um usuário librenms
Loga com # su -l
Vlw
Eu adoro o libre.
Instalação Limpa e eficaz. Uso a bastante tempo.
Obrigado por compartilhar.