So installierst du das LibreNMS Monitoring Tool unter Debian 11

LibreNMS ist ein kostenloses, quelloffenes, webbasiertes und selbsterkennendes Netzwerküberwachungsprogramm, das in PHP geschrieben wurde. Es nutzt MySQL oder MariaDB als Datenbank-Backend und verwendet SNMP, um die entfernten Clients zu erkennen. Es unterstützt eine Vielzahl von Netzwerkgeräten wie Linux, Cisco, Juniper, FreeBSD, HP, Windows und andere. Es unterstützt mehrere Authentifizierungsmethoden wie Radius, Active Directory, LDAP, MySQL und mehr. Es ist einfach, benutzerfreundlich und für jeden leicht zu verstehen und anzuwenden.

In diesem Tutorial erkläre ich dir, wie du LibreNMS mit Nginx auf Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf deinem Server konfiguriert.

MariaDB-Datenbank installieren und konfigurieren

Zuerst musst du den MariaDB-Datenbankserver auf deinem Server installieren. Du kannst ihn mit dem folgenden Befehl installieren:

apt-get install mariadb-server -y

Sobald die Installation abgeschlossen ist, führst du das folgende Skript aus, um die MariaDB-Installation zu sichern und ein Root-Passwort festzulegen:

mysql_secure_installation

Beantworte alle Fragen wie unten gezeigt:

Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] 
Reload privilege tables now? [Y/n] Y

Sobald MariaDB gesichert ist, bearbeitest du die MariaDB-Konfigurationsdatei und nimmst einige Einstellungen vor:

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

Füge die folgenden Zeilen in den Abschnitt [mysqld] ein:

innodb_file_per_table=1
lower_case_table_names=0

Speichere und schließe die Datei und starte MariaDB neu, um die Änderungen zu übernehmen:

systemctl restart mariadb

Als Nächstes loggst du dich mit folgendem Befehl bei MariaDB ein:

mysql -u root -p

Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer für LibreNMS:

MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'securepassword';

Als Nächstes erteilst du der LibreNMS-Datenbank alle Rechte mit dem folgenden Befehl:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';

Schließlich löschst du die Berechtigungen und verlässt die MariaDB-Shell mit folgendem Befehl:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx, PHP und die erforderlichen Abhängigkeiten installieren

Als Nächstes musst du den Nginx-Webserver, PHP und andere für LibreNMS benötigte Abhängigkeiten installieren. Du kannst sie alle installieren, indem du den folgenden Befehl ausführst:

apt-get install nginx-full nmap php-cli php-curl php-fpm php-gd php-json php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pip python3-pymysql python3-redis python3-setuptools python3-systemd rrdtool snmp snmpd whois acl curl composer fping git graphviz imagemagick mtr-tiny

Sobald alle Pakete installiert sind, bearbeite die Datei php.ini und stelle deine Zeitzone ein:

nano /etc/php/7.4/fpm/php.ini

Ändere die folgende Zeile:

date.timezone = UTC

Speichere und schließe die Datei, wenn du fertig bist.

LibreNMS installieren und konfigurieren

Erstelle zunächst mit dem folgenden Befehl einen eigenen Benutzer für LibreNMS:

useradd librenms -d /opt/librenms -M -r -s /bin/bash

Als Nächstes fügst du den LibreNMS-Benutzer mit dem folgenden Befehl zur Gruppe www-data hinzu:

usermod -a -G librenms www-data

Als Nächstes lädst du die neueste Version von LibreNMS aus dem GitHub-Repository in das Verzeichnis /opt herunter:

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

Setze als Nächstes die Eigentumsrechte und die Rechte für das LibreNMS-Verzeichnis:

chown -R librenms:librenms /opt/librenms
chmod 775 /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/

Als Nächstes änderst du den Benutzer mit folgendem Befehl in LibreNMS:

su - librenms

Als Nächstes installierst du den PHP Composer mit folgendem Befehl:

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

Sobald der Composer und andere PHP-Abhängigkeiten installiert sind, solltest du folgende Ausgabe sehen:

> @php artisan optimize
Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!
Routes cached successfully!
Files cached successfully!
> @php artisan config:clear
Configuration cache cleared!
> scripts/dynamic_check_requirements.py || pip3 install --user -r requirements.txt || :
Requirement already satisfied: PyMySQL!=1.0.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (0.9.3)
Requirement already satisfied: python-dotenv in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (0.15.0)
Requirement already satisfied: redis>=3.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (3.5.3)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from -r requirements.txt (line 4)) (52.0.0)
Collecting psutil>=5.6.0
  Downloading psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl (293 kB)
Collecting command_runner>=1.3.0
  Downloading command_runner-1.3.0-py3-none-any.whl (17 kB)
Installing collected packages: psutil, command-runner
Successfully installed command-runner-1.3.0 psutil-5.8.0

Als Nächstes beendest du den LibreNMS-Benutzer mit dem folgenden Befehl:

exit

Als Nächstes musst du eine separate Konfigurationsdatei für PHP-FPM erstellen. Du kannst sie mit dem folgenden Befehl erstellen:

cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf

Als Nächstes bearbeitest du die Konfigurationsdatei librenms.conf mit deinem bevorzugten Editor:

nano /etc/php/7.4/fpm/pool.d/librenms.conf

Ändere [www-data] in [librenms] und aktualisiere auch den Listening-Socket:

user = librenms
group = librenms
listen = /run/php-fpm-librenms.sock

Speichere und schließe die Datei und starte den PHP-FPM-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart php7.4-fpm

Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx für LibreNMS konfigurieren

Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Nginx-Host für LibreNMS erstellen. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/nginx/conf.d/librenms.conf

Füge die folgenden Zeilen hinzu:

server {
  listen 80;
  server_name libre.yourdomain.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 ~ [^/]\.php(/|$) {
   fastcgi_pass unix:/run/php-fpm-librenms.sock;
   fastcgi_split_path_info ^(.+\.php)(/.+)$;
   include fastcgi.conf;
  }
  location ~ /\.(?!well-known).* {
   deny all;
  }
}

Speichere und schließe die Datei und überprüfe Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte abschließend Nginx neu, um die Änderungen zu übernehmen.

systemctl restart nginx php7.4-fpm

Du kannst den Nginx-Status auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du solltest die folgende Ausgabe sehen:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-03 14:39:18 UTC; 18s ago
       Docs: man:nginx(8)
    Process: 39888 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 39892 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 39893 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 2.7M
        CPU: 42ms
     CGroup: /system.slice/nginx.service
             ??39893 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??39894 nginx: worker process

Dec 03 14:39:18 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 03 14:39:18 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Dec 03 14:39:18 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Als Nächstes kopierst du die Konfigurationsdatei für den Cron-Job, um die automatische Erkennung und Abfrage für neu hinzugefügte Geräte zu aktivieren.

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

Als nächstes kopierst du die Konfigurationsdatei logrotate, um die alten Logs zu rotieren.

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

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Zugriff auf den LibreNMS Web-Installationsassistenten

Jetzt ist LibreNMS installiert und mit Nginx konfiguriert. Du kannst nun die webbasierte Einrichtung von LibreNMS über die URL http://libre.yourdomain.com aufrufen. Du solltest die Seite zur Überprüfung der Vorinstallation sehen:

Prüfungen vor der Installation

Vergewissere dich, dass alle Prüfungen erfolgreich waren, und klicke dann auf das Datenbank-Symbol. Du solltest die Seite für die Datenbankkonfiguration sehen:

Datenbank konfigurieren

Gib deine Datenbankinformationen ein und klicke auf die Schaltfläche Anmeldeinformationen prüfen. Du solltest die folgende Seite sehen:

Datenbank aufbauen

Klicke jetzt auf das Schlüsselsymbol, um einen Admin-Benutzer einzurichten:

Admin-Benutzer anlegen

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke dann auf die Schaltfläche Benutzer hinzufügen. Sobald der Benutzer erstellt ist, solltest du die folgende Seite sehen:

LibreNMS Admin Benutzer

Klicke auf die SchaltflächeJa. Du solltest die folgende Seite sehen:

Installation beenden

Öffne nun einen weiteren Tab in deinem Webbrowser und gib die URL https://libre.yourdomain.com/validate ein, um die Installation zu bestätigen. Du solltest die folgende Seite sehen:

Anmeldung bei LibreNMS

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Login. Du solltest die folgende Seite sehen:

LibreNMS Dashboard

Fazit

Herzlichen Glückwunsch! Du hast LibreNMS mit Nginx unter Debian 11 erfolgreich installiert. Du kannst jetzt damit beginnen, entfernte Geräte zum LibreNMS hinzuzufügen und sie von der zentralen Stelle aus zu überwachen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …