Instalando o LibreNMS no Debian 10

Levando em conta de que você já tem o Debian 10 instalado, siga os passos abaixo.
No terminal, rode os seguintes comandos, como root:

apt install software-properties-common sudo vim curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nmap php php-fpm php-curl php-gd php-xml php-mysql python-memcache python-mysqldb rrdtool snmp snmpd whois nginx-full

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data

cd /opt
git clone https://github.com/librenms/librenms.git

/opt/librenms/scripts/composer_wrapper.php install --no-dev

chown -R librenms:librenms /opt/librenms
chmod 770 /opt/librenms

CONFIGURANDO O MYSQL

systemctl restart mysql
mysql -uroot -p

Depois do comando acima, será pedido uma senha, mas pode teclar apenas ENTER, em seguida digite os comandos abaixo no prompt do MySQL

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'senhaforte';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit

Na sequência edite o arquivo de configuração do servidor MySQL com o seu editor preferido, inserindo as duas linhas abaixo, na sessão [mysqld]

vim /etc/mysql/mariadb.conf.d/50-server.cnf

innodb_file_per_table=1
lower_case_table_names=0

Depois reinicie o serviço do MySQL

systemctl restart mysql

Agora edite cada um dos arquivos do PHP, para configurar a timezone, alterando o parâmetro date.timezone para a sua zona. No exemplo está a minha: America/Bahia

vim /etc/php/7.3/fpm/php.ini
vim /etc/php/7.3/cli/php.ini

date.timezone = America/Bahia

Agora reinicie o serviço do PHP

systemctl restart php7.3-fpm

Hora de configurar o domínio virtual para o site do LibreNMS. Edite o arquivo librenms.conf com o seu editor favorito inserindo as linhas abaixo:

vim /etc/nginx/conf.d/librenms.conf

server {
listen 80;
server_name librenms.seudominio.com.br;
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.3-fpm.sock;
}
location ~ /.ht {
deny all;
}
}

Na sequência, apague o arquivo de configuração default e reinicie o serviço http

rm /etc/nginx/sites-enabled/default
systemctl restart nginx

Agora vamos configurar o servidor de SNMP

cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vim /etc/snmp/snmpd.conf

subistituia RANDOMSTRINGGOESHERE pela sua community default.

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

Cuidando do cron, logrotate e permissões:

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
chown -R librenms:librenms /opt/librenms

Para instalar, aponte o seu navegador para o instalador, conforme configurado no servidor http

http://librenms.seudominio.com.br/install.php

Altere as permissões do arquivo config.php:

chmod 775 /opt/librenms/rrd
chown -R librenms:librenms /opt/librenms
chmod -R ug=rwX /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Por fim, valide a instalação com os comandos abaixo, seguindo as sugestões de para correção, caso haja necessidade:

cd /opt/librenms
./validate.php

Boa instalação!

Script para gerar alertas por email de servidor de DHCP clandestino

Essa dica poderá ajudar a economizar seu precioso tempo.
A esmagadora maioria dos provedores utiliza o protocolo PPPoE para a conexão dos roteadores dos seus clientes. Infelizmente, quando um desses clientes liga o cabo de rede da internet na porta LAN do roteador, o mesmo passa a agir como servidor de DHCP na rede do provedor, gerando efeitos colaterais indesejados, como quedas e lentidão, nos demais clientes.
Uma das maneiras de minimizar esse problema é reduzir o tamanho das redes, através da utilização de VLANs, sendo que, de qualquer forma, continuará afetando todos os clientes de determinada VLAN, onde haja um roteador invertido.
Uma forma de ser proativo em relação a esse problema é configurar um alerta de DHCP para cada interface onde haja um servidor de PPPoE.

O script abaixo cria um alerta para cada interface onde haja um servidor de PPPoE ativo, além de criar um cliente de DHCP para cada uma delas. Será especialmente útil pra quem tem muitas VLANs.

Você pode rodá-lo diretamente no terminal, clicando em New Terminal. Basta copiar e colar.

:global email "seuemail@seudominio.com.br"
:global identidade [/system identity get name]
:foreach X in=[/interface pppoe-server server find where disabled=no] do={
:global iface [/interface pppoe-server server get number=$X interface];
:global mac [/interface get [/interface find name=$iface] mac-address ]
/ip dhcp-server alert add on-alert=":global macaddress [ip dhcp-server alert get [find interface=$iface] unknown-server]\n
/tool e-mail send to=\"$email\" subject=\"[ROTEADOR INVERTIDO EM $identidade -> \$macaddress]\" body=\"Roteador invertido na interface: $iface, MAC: \$macaddress, IP: \$address\"" interface=$iface valid-server=$mac disable=no
/ip dhcp-client add add-default-route=no dhcp-options=hostname,clientid interface=$iface use-peer-dns=no use-peer-ntp=no
}

De hora em hora será checado se há algum servidor de DHCP indevido na rede, e caso haja, além de mostrar uma mensagem no log, será enviado um email, conforme definido na primeira linha, com informações do equipamento, a interface afetada, o MAC e o IP do roteador.
O script já deixa pronto um cliente DHCP para cada interface, no entanto eles ficam desativados, a princípio. Você pode ativá-los de acordo com a necessidade, a medida que for alertado, para facilitar a identificação do famigerado roteador.

Para evitar conflito com regras anteriores, sugiro apagar todos os alertas e todos os DHCP Clients que já existam.

Não esqueça de configurar os parâmetros para o remetente do email, em Tools / Email.

Mãos à obra!