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 [email protected] 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.

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:

Vor-Installations-Check

Vergewissere dich, dass alle erforderlichen Erweiterungen installiert sind und klicke dann auf die Datenbankeinstellungen. Du solltest die folgende Seite sehen:

Konfiguriere die Datenbank

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:

Datenbank-Anmeldeinformationen

Klicke jetzt auf die Schaltfläche Datenbank erstellen. Du solltest die folgende Seite sehen:

Datenbank aufbauen - erfolgreich

Als Nächstes klickst du auf die Schaltfläche Admin-Benutzer anlegen. Du solltest die folgende Seite sehen:

Admin-Benutzer anlegen

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:

Admin Benutzer

Klicke als Nächstes auf die Schaltfläche Installation beenden. Du solltest die folgende Seite sehen:

Installation beenden

Klicke als Nächstes auf die Schaltfläche „Installation bestätigen“. Du solltest die LibreNMS-Anmeldeseite sehen:

Anmeldung bei LibreNMS

Gib deinen LibreNMS-Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche “ Anmelden“. Du solltest das LibreNMS Dashboard sehen:

LibreNMS Dashboard

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.

Das könnte dich auch interessieren …