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.
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/
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.
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.
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.
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.
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
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.
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.
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.
Gib die Details der MariaDB-Datenbank für deine LibreNMS-Installation ein und klicke auf die Schaltfläche Check Credentials.
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.
Gib die Details des Admin-Benutzers für die LibreNMS-Installation ein und klicke auf Benutzer hinzufügen.
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.
Nun wirst du auf die LibreNMS-Anmeldeseite weitergeleitet. Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf Anmelden.
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.
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.