So installierst du das LibreNMS Monitoring Tool unter Ubuntu 22.04

LibreNMS ist ein freies und quelloffenes Monitoring-Tool, das in PHP/MySQL/SNMP geschrieben wurde. Es ist ein Community-basierter Fork von Observium mit der GPL-Lizenz.

LibreNMS unterstützt eine Vielzahl von Hardware und Betriebssystemen, wie z.B. Cisco, Linux, Juniper und viele mehr. Es unterstützt die automatische Erkennung von Netzwerkdiensten über CDP, OSPF, BGP, SNMP und ARP. Es bietet ein anpassbares Benutzer-Dashboard, das du nach deinen Bedürfnissen konfigurieren kannst, und verfügt über ein anpassbares Warnsystem. Außerdem ist LibreNMS ein erweiterbares Überwachungssystem mit Integrationsmöglichkeiten wie NFSen, collectd, etc.

LibreNMS unterstützt mehrere Authentifizierungsmethoden, darunter lokales MySQL, Radius, LDAP und Active Directory. Diese Funktion ist nützlich, wenn du eine Infrastruktur mit zentralisierter Authentifizierung hast. LibreNMS bietet außerdem ein Abrechnungssystem, das es dem Administrator erleichtert, die Bandbreitennutzung und die Rechnung für jeden Nutzer zu überprüfen und zu erstellen.

In dieser Anleitung erfährst du, wie du das LibreNMS-Überwachungstool auf dem neuesten Ubuntu 22.04-Server installierst und konfigurierst. In dieser Anleitung werden einige zusätzliche Konfigurationen des LEMP-Stacks für die LibreNMS-Installation behandelt.

Voraussetzungen

  • Ein Ubuntu 22.04 Server
  • Ein Nicht-Root-Benutzer mit den Root-Rechten

Installieren der Paket-Abhängigkeiten

Zuerst installierst du die Paketabhängigkeiten für LibreNMS. Dazu gehören der LEMP Stack, einige Python-Tools und einige Netzwerk-Tools wie SNMP, whois und rrdtool.

Bevor du die Pakete installierst, führe den folgenden apt-Befehl aus, um dein Ubuntu-Repository zu aktualisieren und aufzufrischen.

sudo apt update

Installiere nun die Paketabhängigkeiten für LibreNMS mit dem unten stehenden apt-Befehl.

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

Gib zur Bestätigung Y ein und drücke ENTER, um fortzufahren. Nun beginnt die Installation der Abhängigkeiten. Warte, bis die Installation abgeschlossen ist.

Herunterladen und Installieren von LibreNMS

Nachdem du die Paketabhängigkeiten installiert hast, installierst du LibreNMS aus dem Quellcode.

Zunächst musst du einen neuen Benutzer namens „librenms“ hinzufügen. Dieser Benutzer wird verwendet, um die LibreNMS-Überwachungsanwendung auszuführen. Du kannst den Benutzer „librenms“ mit dem unten stehenden Befehl hinzufügen.

useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

Der Befehl erstellt einen neuen Benutzer „librenms“ mit dem Heimatverzeichnis /opt./librenms und der Standardshell bash.

Wechsle nun in das Verzeichnis /opt und lade den Quellcode des LibreNMS-Überwachungstools mit dem Befehl git herunter (siehe unten).

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

Du erhältst ein neues Verzeichnis namens librenms im Verzeichnis /opt.

Benutzer hinzufügen librenms Quellcode herunterladen

Als Nächstes führst du den folgenden Befehl aus, um die Eigentums- und Zugriffsrechte für das Verzeichnis /opt/librenms zu ändern.

Der Eigentümer muss der Benutzer„librenms“ sein und die Berechtigung„771„, die es dem Benutzer librenms erlaubt, in diesem Verzeichnis zu lesen, zu schreiben und auszuführen. Der Befehl setfacl wird verwendet, um die Dateizugriffskontrolllisten im Verzeichnis rrd (für die Speicherung des rrd-Graphen), logs für die Speicherung der Logs, den Cache für die Speicherung des LibreNMS-Caches und den Speicher für das Datenverzeichnis einzurichten.

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

librenms Erlaubnis einrichten

Melde dich nun mit dem unten stehenden Befehl als Benutzer„librenms“ an.

su - librenms

Zum Schluss installierst du alle PHP-Abhängigkeiten für das LibreNMS-Monitoring mit dem PHP-Skript „composer_wrapper.php“.

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

Unten siehst du den Screenshot während der Installation der PHP-Paketabhängigkeiten für LibreNMS.

librenms php-Abhängigkeiten installieren

Unten siehst du einen Screenshot, wenn die Installation von LibreNMS abgeschlossen ist. Wie du sehen kannst, installiert das Installationsskript einige zusätzliche Python-Tools aus dem PyPi-Repository.

librenms-Installation abgeschlossen

Zeitzone für PHP konfigurieren

In diesem Schritt stellst du die Zeitzone für PHP ein, indem du die Konfigurationsdatei php.ini bearbeitest.

Bearbeite die Konfigurationsdatei php.ini mit dem Editor nano.

sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.1/cli/php.ini

Entferne den Kommentar in der Option date.timezone und füge deine Zeitzone wie unten beschrieben ein. In diesem Beispiel wird die Zeitzone Etc/UTC sein.

date.timezone = Etc/UTC

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

Als Nächstes führst du den Befehl timedatectl aus, um die Zeitzone für dein System auf Etc/UTC einzustellen.

sudo timedatectl set-timezone Etc/UTC

Starte abschließend den PHP-FPM-Dienst neu, um die Änderungen in der Konfigurationsdatei php.ini zu übernehmen.

sudo systemctl restart php8.1-fpm

Damit hast du die Konfiguration der Zeitzone für PHP und dein Ubuntu-System abgeschlossen.

MariaDB Server konfigurieren

Das LibreNMS-Überwachungstool erfordert einige spezielle Konfigurationen auf dem MariaDB-Server. In diesem Schritt bearbeitest du die MariaDB-Serverkonfiguration und erstellst eine neue Datenbank und einen neuen Benutzer für LibreNMS.

Bearbeite die MariaDB-Serverkonfiguration 50-server.cnf mit dem Editor nano.

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

Füge unter dem Abschnitt „[mysqld]“ die folgende Konfiguration hinzu.

[mysqld]
...
innodb_file_per_table=1
lower_case_table_names=0

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

Als Nächstes führst du die folgenden systemctl-Befehle aus, um den MariaDB-Dienst zu aktivieren und neu zu starten. Dadurch wird der MariaDB-Dienst beim Systemstart gestartet und die neuen Änderungen an der MariaDB-Serverkonfiguration werden übernommen.

sudo systemctl enable mariadb
sudo systemctl restart mariadb

Damit hast du die Konfiguration des MariaDB-Servers abgeschlossen.

mariadb konfigurieren

Melde dich jetzt mit dem unten stehenden mysql-Befehl in der MariaDB-Shell an.

sudo mysql -u root -p

Führe die folgenden Abfragen aus, um eine neue Datenbank librenms, den Benutzer librenms und das Passwort„password“ zu erstellen.

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;

Gib zum Schluss exit ein, um dich von der MariaDB-Shell abzumelden. Nun musst du noch die Datenbank und den Benutzer für das LibreNMS-Überwachungstool anlegen.

Datenbank und Benutzer anlegen

PHP-FPM Pool für LibreNMS konfigurieren

Nachdem du den MariaDB-Server konfiguriert hast, richtest du den PHP-FPM-Pool für LibreNMS ein. Mit PHP-FPM kannst du mehrere Prozesspools für jede deiner Anwendungen erstellen. So kannst du einen Pool für eine bestimmte Anwendung festlegen, in diesem Fall für das Monitoring-Tool LibreNMS.

Die PHP-FPM-Poolkonfiguration findest du im Verzeichnis /etc/php/8.1/fpm/pool.d mit der Standard-Poolkonfiguration www.conf.

Führe nun den folgenden Befehl aus, um die Standard-Poolkonfiguration aus www.conf in librenms.conf zu kopieren.

sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf

Bearbeite die Pool-Konfiguration librenms.conf mit dem Editor nano.

sudo nano /etc/php/8.1/fpm/pool.d/librenms.conf

Ändere den Standard-Poolnamen von „[www]“ in „[librenms]“ (siehe unten).

[librenms]

Ändere den Standardbenutzer und die Standardgruppe in„librenms„.

user = librenms
group = librenms

Ändere jetzt den Listen-Socket für PHP-FPM in /run/php-fpm-librenms.sock wie eblow.

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

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

Als Nächstes führst du den unten stehenden Befehl aus, um den PHP-FPM-Dienst neu zu starten und neue Änderungen an der Pool-Konfiguration vorzunehmen.

sudo systemctl restart php8.1-fpm

PHP-FPM-Pool librenms konfigurieren

Wenn du schließlich alle verfügbaren Sock-Dateien auf deinem System überprüfst, kannst du die Sock-Datei /run/php-fpm-librenms.sock sehen, die zum PHP-FPM-Pool librenms gehört.

Du kannst die sock-Datei mit dem folgenden Befehl überprüfen.

ss -pln

Nginx-Serverblöcke für LibreNMS konfigurieren

Nachdem du die Konfiguration des MariaDB-Servers und von PHP-FPM für LibreNMS abgeschlossen hast, musst du jetzt noch Nginx-Serverblöcke für das LibreNMS-Überwachungstool einrichten.

Erstelle einen neuen Nginx-Serverblock librenms.conf mit dem nano-Editor.

sudo nano /etc/nginx/sites-available/librenms.conf

Kopiere die folgende Konfiguration und füge sie in die Datei ein. Ersetze außerdem den Standarddomainnamen librenms.hwdomain.io durch deine Domain.

server {
 listen      80;
 server_name librenms.hwdomain.io;
 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, wenn du fertig bist.

Als Nächstes aktivierst du die Konfiguration der Serverblöcke librenms.conf und überprüfst die Nginx-Konfiguration mit dem folgenden Befehl.

sudo ln -s /etc/nginx/sites-available/librenms.conf /etc/nginx/sites-enabled/
sudo nginx -t

Wenn du eine Ausgabe wie test-successful erhältst, ist deine Konfiguration korrekt.

Abschließend kannst du den nginx-Dienst neu starten, um die neue Serverblock-Konfiguration librenms.conf zu übernehmen.

sudo systemctl restart nginx

Jetzt ist deine LibreNMS-Installation über den Domainnamen librenms.hwdomain.io erreichbar.

nginx Server einrichten blockiert librenms

Zusätzliche Konfiguration für LibreNMS

Bevor du mit der LibreNMS-Installation beginnst, benötigst du einige zusätzliche Konfigurationen für dein Ubuntu-System. Alle diese Konfigurationen werden für LibreNMS benötigt.

Als erstes musst du einen symbolischen Link (Symlink) der LibreNMS-Binärdatei in das Verzeichnis /usr/bin erstellen, damit die Benutzer den Befehl lnms von der Shell aus ausführen können.

sudo ln -s /opt/librenms/lnms /usr/bin/lnms

Kopiere nun die lnms-Befehlsvervollständigung für die Bash-Shell in das Verzeichnis /etc/bash_completion.d/.

sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Als nächstes musst du den SNMP-Dienst für das LibreNMS-Überwachungstool konfigurieren. Der SNMP-Dienst kann dazu verwendet werden, Server oder Geräte hinzuzufügen und zu überwachen.

Kopiere die von LibreNMS bereitgestellte Beispielkonfiguration des SNMP-Dienstes in die Datei /etc/snmp/snmp.conf. Bearbeite dann die Konfiguration mit dem nano-Editor.

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf

Ändere das Standard-Community-Passwort„RANDOMSTRINGGOESHERE“ für den SNMP-Dienst mit deinem sicheren Passwort.

com2sec readonly default RANDOMSTRINGGOESHERE

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

Führe nun den unten stehenden Befehl aus, um das Binärskript LibreNMS agent for checking Linux distribution in das Verzeichnis /usr/bin/ herunterzuladen und es ausführbar zu machen.

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

Aktiviere nun den snmpd-Dienst und starte ihn neu, um die neue Konfiguration zu übernehmen.

systemctl enable snmpd
systemctl restart snmpd

Damit hast du die snmp-Konfiguration für LibreNMS abgeschlossen.

snmp-Dienst konfigurieren

Zum Schluss führst du den folgenden Befehl aus, um das Cron-Skript und die Logrotate-Konfiguration für LibreNMS zu erstellen.

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

Jetzt kannst du die LibreNMS-Installation über den Webbrowser starten.

Web-Installer LibreNMS starten

Öffne deinen Webbrowser und rufe die LibreNMS-Installationsdomain auf (z.B. http://librenms.hwdomain.io) und du solltest die folgende LibreNMS-Installationsseite sehen.

Zuerst siehst du die Seite zur Überprüfung vor der Installation. Vergewissere dich, dass alle Anforderungen mit grünem Status markiert sind. Das bedeutet, dass alle Anforderungen für die LibreNMS-Installation erfüllt sind.

Klicke oben auf das Datenbank-Symbol, um fortzufahren.

prere prüft librenms

Gib die Details der MariaDB-Datenbank für deine LibreNMS-Installation ein und klicke auf die Schaltfläche Check Credentials.

Datenbankkonfiguration librenms

Klicke auf die Schaltfläche Datenbank erstellen, um die Datenbankkonfiguration zu starten. Dadurch werden alle notwendigen Tabellen für LibreNMS importiert. Wenn der Prozess abgeschlossen ist, siehst du die Meldung„Database seeding completed successfully„.

Klicke nun auf das Schlüsselsymbol oben, um den LibreNMS-Benutzer zu konfigurieren.

Baudatenbank

Gib die Details des Admin-Benutzers für die LibreNMS-Installation ein und klicke auf Benutzer hinzufügen.

setp admin Benutzer

Wenn die Installation abgeschlossen ist, siehst du die folgende Seite. Die .env-Datei und die config.php-Datei wurden mit einer neuen Konfiguration geschrieben.

Außerdem musst du deine LibreNMS-Installation validieren, indem du auf den Link„validate your install“ klickst.

Installation abgeschlossen

Nun wirst du auf die LibreNMS-Anmeldeseite weitergeleitet. Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf Anmelden.

librenms Anmeldung

Sobald du dich eingeloggt hast, siehst du die folgende LibreNMS-Validierungsseite. Vergewissere dich, dass der LibreNMS-Status grün ist und auf „Ok“ steht, was bedeutet, dass die Konfiguration für LibreNMS korrekt ist.

Installation validieren

Jetzt kannst du einen Host-Rechner oder eine Hardware zu deinem LibreNMS-Überwachungstool hinzufügen.

Fazit

Herzlichen Glückwunsch! Du hast nun gelernt, wie du das LibreNMS-Überwachungstool auf dem neuesten Ubuntu 22.04 mit dem neuesten PHP 8, MariaDB Server und Nginx Webserver installierst. Du hast auch gelernt, wie du LibreNMS konfigurierst, um die Installation abzuschließen.

Das könnte dich auch interessieren …