So installierst du LibreNMS mit Nginx unter Ubuntu 22.04
LibreNMS ist ein kostenloses, quelloffenes und leistungsstarkes Netzwerküberwachungsprogramm für Linux-basierte Betriebssysteme. Mit LibreNMS kannst du alle wichtigen Betriebssysteme und Netzwerkgeräte wie Cisco, Juniper, Foundry, FreeBSD, Brocade und viele mehr über einen Webbrowser überwachen. LibreNMS nutzt verschiedene Netzwerkprotokolle wie SNMP, ARP, CDP, FDP, LLDP, OSPF und BGP, um alle Netzwerkbetriebssysteme und Geräte automatisch zu erkennen. Es bietet eine Vielzahl von Funktionen wie automatische Erkennung, API-Zugang, anpassbare Warnmeldungen, automatische Updates und vieles mehr.
In diesem Lernprogramm zeigen wir dir Schritt für Schritt, wie du LibreNMS unter Ubuntu 22.04 installierst.
Voraussetzungen
- Ein Server, auf dem Ubuntu 22.04 läuft.
- Ein Root-Passwort ist auf deinem Server eingerichtet.
Erste Schritte
Zuerst solltest du deine Systempakete auf die neueste Version aktualisieren. Das kannst du mit dem folgenden Befehl tun:
apt-get update -y
Nachdem du alle Pakete aktualisiert hast, installiere alle Abhängigkeiten, die du für LibreNMS benötigst, mit dem folgenden Befehl:
apt-get install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3-mysqldb snmp snmpd python3-pip python3-memcache mtr-tiny acl unzip git curl wget -y
Sobald alle Abhängigkeiten installiert sind, kannst du mit dem nächsten Schritt fortfahren.
Nginx, PHP und MariaDB Server installieren
Als Nächstes musst du Nginx Webserver, MariaDB Server, PHP und andere PHP-Erweiterungen auf deinem Server installieren. Du kannst sie alle installieren, indem du den folgenden Befehl ausführst:
apt-get install nginx mariadb-server php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-bcmath php-imap php-json php-xml php-snmp php-fpm php-zip -y
Nachdem du alle Pakete installiert hast, musst du die Zeitzone in deiner php.ini-Datei einstellen.
nano /etc/php/8.1/fpm/php.ini nano /etc/php/8.1/cli/php.ini
Lege deine Systemzeitzone wie unten gezeigt fest:
date.timezone = UTC
Speichere und schließe die Datei, wenn du fertig bist. Starte dann den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart php8.1-fpm
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Erstellen einer LibreNMS-Datenbank
Als Nächstes musst du eine Datenbank und einen Benutzer für LibreNMS erstellen.
Melde dich zunächst mit folgendem Befehl in der MariaDB-Shell an:
mysql
Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:
MariaDB [(none)]> create database librenmsdb CHARACTER SET utf8 COLLATE utf8_unicode_ci; MariaDB [(none)]> grant all privileges on librenmsdb.* to librenms@localhost IDENTIFIED by "password";
Als Nächstes löschst du die Berechtigungen und verlässt die MariaDB-Shell mit dem folgenden Befehl:
MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit;
Als Nächstes bearbeitest du die MariaDB-Konfigurationsdatei und änderst einige empfohlene Einstellungen:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Füge die folgenden Zeilen im Abschnitt [mysqld] hinzu:
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Speichere und schließe die Datei und starte den MariaDB-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart mariadb
Jetzt ist deine MariaDB konfiguriert. Du kannst jetzt mit dem nächsten Schritt fortfahren.
LibreNMS installieren und konfigurieren
Zuerst musst du einen eigenen Benutzer für LibreNMS anlegen. Du kannst ihn mit dem folgenden Befehl hinzufügen:
useradd -r -M -d /opt/librenms librenms
Als Nächstes fügst du den Benutzer librenms mit dem folgenden Befehl zur Gruppe www-data hinzu:
usermod -a -G librenms www-data
Als Nächstes wechselst du in das Verzeichnis /opt und lädst die neueste Version von LibreNMS mit folgendem Befehl herunter:
cd /opt git clone https://github.com/librenms/librenms.git librenms
Als Nächstes erstellst du mit folgendem Befehl eine Logdatei für LibreNMS:
touch /opt/librenms/logs/librenms.log
Kopiere die SNMP-Beispielkonfigurationsdatei mit dem folgenden Befehl:
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Bearbeite anschließend die Datei snmpd.conf:
nano /etc/snmp/snmpd.conf
Suche die folgende Zeile:
com2sec readonly default RANDOMSTRINGGOESHERE
Und ersetze sie durch die folgende Zeile:
com2sec readonly default mysnmpserverkey
Speichere und schließe die Datei, lade die SNMP-Distro-Binärdatei herunter und kopiere sie an den gewünschten Ort:
curl -o distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x distro mv distro /usr/bin/distro
Starte dann den SNMP-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart snmpd
Als Nächstes musst du auch die LibreNMS cron- und logrotate-Datei an den gewünschten Ort kopieren. Du kannst sie mit dem folgenden Befehl kopieren:
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Wechsle als Nächstes in das Verzeichnis librenms und installiere die erforderlichen Abhängigkeiten mit dem folgenden Befehl:
cd /opt/librenms ./scripts/composer_wrapper.php install --no-dev
Sobald alle Abhängigkeiten installiert sind, änderst du mit folgendem Befehl die Eigentümerschaft des librenms-Verzeichnisses und erteilst die erforderlichen Berechtigungen:
chown -R www-data:librenms /opt/librenms chmod -R 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/
Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren. Mehr Über Cron und Cronjobs findest hier.
Virtuellen Nginx-Host für LibreNMS erstellen
Als Nächstes musst du eine Konfigurationsdatei für einen 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 librenms.example.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 /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/php8.1-fpm.sock; } location ~ /\.ht { deny all; } }
Speichere und schließe die Datei und überprüfe Nginx mit folgendem Befehl auf Syntaxfehler:
nginx -t
Du solltest die folgende Ausgabe sehen:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Du kannst den Status des Nginx-Dienstes auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Du solltest die folgende Ausgabe erhalten:
? 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 Sat 2022-07-02 08:35:53 UTC; 8s ago Docs: man:nginx(8) Process: 49538 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 49539 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 49543 (nginx) Tasks: 3 (limit: 4579) Memory: 3.3M CPU: 43ms CGroup: /system.slice/nginx.service ??49543 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??49544 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??49545 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" Jul 02 08:35:53 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 02 08:35:53 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Zugriff auf das LibreNMS-Webinterface
Öffne nun deinen Webbrowser und gib die URL http://librenms.example.com ein, um auf LibreNMS zuzugreifen. Du wirst auf die Seite zur Überprüfung der Vorinstallation weitergeleitet:
Vergewissere dich, dass alle erforderlichen Erweiterungen installiert sind und klicke dann auf die Datenbankeinstellungen. Du solltest die folgende Seite sehen:
Gib deinen Datenbank-Benutzernamen, den Datenbanknamen und das Passwort ein und klicke auf die Schaltfläche Anmeldeinformationen prüfen. Wenn die Überprüfung erfolgreich war, solltest du die folgende Seite sehen:
Klicke jetzt auf die Schaltfläche Datenbank erstellen. Du solltest die folgende Seite sehen:
Als Nächstes klickst du auf die Schaltfläche Admin-Benutzer anlegen. Du solltest die folgende Seite sehen:
Gib deinen Admin-Benutzernamen, deine E-Mail-Adresse und dein Passwort ein und klicke auf die Schaltfläche Benutzer hinzufügen. Du solltest die folgende Seite sehen:
Klicke als Nächstes auf die Schaltfläche Installation beenden. Du solltest die folgende Seite sehen:
Klicke als Nächstes auf die Schaltfläche „Installation bestätigen“. Du solltest die LibreNMS-Anmeldeseite sehen:
Gib deinen LibreNMS-Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche “ Anmelden“. Du solltest das LibreNMS Dashboard sehen:
Fazit
Glückwunsch! Du hast LibreNMS erfolgreich auf dem Ubuntu 22.04 Server installiert und konfiguriert. Du kannst nun über das LibreNMS-Dashboard einen Remote-Server oder ein Netzwerkgerät hinzufügen und die Überwachung über den Webbrowser starten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.