So installierst du die LibreNMS-Überwachungslösung auf Rocky Linux
LibreNMS ist ein Überwachungstool, das die automatische Erkennung mit mehreren Protokollen unterstützt, darunter SNMP, ARP, OSPF und BGP. Um Betriebssysteme zu überwachen, kannst du das SNMP-Protokoll verwenden, das auf den meisten Betriebssystemen verfügbar ist, darunter Linux, Windows und BSD.
Es gibt drei Versionen des SNMP-Protokolls: v1 und v2, die nur mit einem Community-Passwort gesichert sind, und das Protokoll v3, das Passwörter zur Authentifizierung und Verschlüsselung unterstützt. Für die Produktionsumgebung wird empfohlen, das SNMP-Protokoll v3 zu verwenden, das sicherer ist als v2 und v1.
In dieser Anleitung erfährst du, wie du das Überwachungsprogramm LibreNMS auf dem Rocky Linux Server installierst. Dieser Leitfaden umfasst die Installation des LEMP-Stacks (Nginx, MariaDB und PHP-FPM) und die grundlegende Konfiguration des SNMP-Dienstes.
Am Ende hast du die produktionsreife Überwachungslösung LibreNMS und kannst einfach einen neuen Host, Server oder ein Gerät zur Überwachung von LibreNMS hinzufügen.
Voraussetzungen
Um diese Anleitung zu erstellen, brauchst du die folgenden Voraussetzungen
- Einen Rocky Linux Server – In diesem Beispiel wird Rocky Linux 8 verwendet.
- Einen Nicht-Root-Benutzer mit sudo root/administrator-Rechten.
- Einen lokalen Domainnamen für die lokale Bereitstellung.
Repositories einrichten
Bevor du mit der Installation der Pakete beginnst, richtest du nun die Repositories auf deinem Rocky Linux System ein. Du musst das EPEL-Repository (Extra Packages for Enterprise Linux) und das PHP-Remi-Repository hinzufügen.
Führe den folgenden dnf-Befehl aus, um das EPEL-Repository zu deinem System hinzuzufügen.
sudo dnf install epel-release
Gib Y ein, wenn du zur Bestätigung aufgefordert wirst, und drücke ENTER, um fortzufahren.
Als Nächstes führst du den folgenden dnf-Befehl aus, um das PHP Remi-Repository hinzuzufügen. Dieses Repository stellt mehrere PHP-Versionen zur Verfügung, darunter auch die neueste PHP-Version 8.1, die für die Installation von LibreNMS benötigt wird.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Gib nun Y ein und drücke ENTER, um fortzufahren.
Nachdem das EPEL- und Remi-Repository hinzugefügt wurde, überprüfe es mit dem unten stehenden dnf-Befehl.
sudo dnf repolist
Du solltest sehen, dass das EPEL und Remi Repository hinzugefügt wurde und auf deinem Rocky Linux System verfügbar ist.
Installieren der Paketabhängigkeiten
Nachdem du die EPEL- und Remi-Repositories hinzugefügt hast, kannst du nun mit der Installation der Paketabhängigkeiten für LibreNMS beginnen. Dazu gehören der LEMP Stack, SNMP-Pakete und einige grundlegende Python-Abhängigkeiten.
Bevor du mit der Installation beginnst, führe den folgenden Befehl aus, um das PHP-Repository-Modul„remi-8.1“ zu aktivieren. Die neueste Version von LibreNMS benötigt mindestens PHP 8.
sudo dnf reset php sudo dnf module enable php:remi-8.1
Gib y ein, um zu bestätigen und das PHP-Repository Remi 8.1 zu aktivieren.
Als nächstes führst du den folgenden dnf-Befehl aus, um die Paketabhängigkeiten für LibreNMS zu installieren. Wenn du aufgefordert wirst, die Installation zu bestätigen, gibst du y ein und drückst die ENTER-Taste, um fortzufahren und die Installation zu starten.
sudo dnf install bash-completion cronie fping git ImageMagick mariadb-server mtr net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-devel python3-redis python3-memcached python3-pip python3-systemd rrdtool unzip
Nachdem die Abhängigkeiten installiert sind, führe den folgenden Befehl aus, um einige Dienste wie Nginx, MariaDB, PHP-FPM und snmpd zu starten und zu aktivieren.
sudo systemctl enable nginx php-fpm mariadb snmpd sudo systemctl start nginx php-fpm mariadb snmpd
Zu diesem Zeitpunkt werden einige grundlegende Dienste wie Nginx, MariaDB, PHP-FPM und snmpd beim Systemstart automatisch gestartet. Und alle diese Dienste laufen bereits.
Firewalld einrichten
Für dieses Beispiel verwenden wir das Rocky Linux mit aktivierter Firewalld. Jetzt fügst du sowohl das HTTP- als auch das HTTPS-Protokoll zur Firewalld hinzu.
Führe den folgenden Befehl firewall-cmd aus, um die HTTP- und HTTPS-Dienste zur Firewalld hinzuzufügen. Du solltest die Ausgabemeldung„Erfolg“ erhalten, was bedeutet, dass die neue Regel hinzugefügt wurde.
sudo firewall-cmd --permanent --zone public --add-service http sudo firewall-cmd --permanent --zone public --add-service https
Lade die Firewalld neu, um die neuen Änderungen zu übernehmen. Überprüfe dann den Status der Firewalld mit dem folgenden Befehl.
sudo firewall-cmd --reload sudo firewall-cmd --list-all
Du erhältst die Ausgabe, dass sowohl das HTTP- als auch das HTTPS-Protokoll zur Firewalld hinzugefügt wurde.
Herunterladen des LibreNMS-Quellcodes
In diesem Schritt lädst du den LibreNMS-Quellcode von GitHub herunter. Zuvor legst du jedoch einen neuen Benutzer„librenms“ an, der für die Ausführung der LibreNMS-Anwendung verwendet wird.
Führe den folgenden Befehl aus, um einen neuen Systembenutzer „librenms“ zu erstellen. Dieser Benutzer wird für die Ausführung der LibreNMS-Anwendung verwendet.
sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
Verschiebe nun dein Arbeitsverzeichnis in das Verzeichnis „/opt“ und lade den LibreNMS-Quellcode mit dem unten stehenden git-Befehl herunter. Du solltest nun ein neues Verzeichnis„/opt/librenms“ erhalten, das als LibreNMS-Installationsverzeichnis verwendet wird.
cd /opt git clone https://github.com/librenms/librenms.git
Ändere die Eigentümerschaft und die Rechte des LibreNMS-Installationsverzeichnisses„/opt/librenms„. Der Eigentümer des Installationsverzeichnisses sollte der Benutzer „librenms“ sein, und die Berechtigung 771 erlaubt es dem Benutzer, das Verzeichnis zu lesen, zu schreiben und auszuführen.
sudo chown -R librenms:librenms /opt/librenms sudo chmod 771 /opt/librenms
Führe abschließend den folgenden Befehl aus, um die Zugriffskontrolllisten für einige LibreNMS-Verzeichnisse festzulegen. Damit erhält die Gruppe„librenms“ die Berechtigung, auf bestimmten LibreNMS-Verzeichnissen zu lesen, zu schreiben und auszuführen.
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
Installation der PHP-Abhängigkeiten für LibreNMS
Nachdem du den LibreNMS-Quellcode heruntergeladen und die richtigen Berechtigungen konfiguriert hast, installierst du nun die PHP-Abhängigkeiten für LibreNMS.
Melde dich mit folgendem Befehl als Benutzer „librenms“ an.
su - librenms
Installiere nun die PHP-Abhängigkeiten über das Installer-Skript wie unten beschrieben.
./scripts/composer_wrapper.php install --no-dev
Du siehst nun die Installation der PHP-Abhängigkeiten, die für LibreNMS benötigt werden. Du siehst auch die Installation der Python-Pakete für LibreNMS.
Nachdem die Installation der PHP-Abhängigkeiten abgeschlossen ist, kannst du den Benutzer„librenms“ verlassen, indem du „Strg+d“ drückst oder den Befehl„exit“ eingibst.
PHP-FPM konfigurieren
In diesem Schritt konfigurierst du deine PHP-FPM-Installation für LibreNMS. Du änderst die Standardkonfiguration„/etc/php.ini“ und richtest einen speziellen PHP-FPM-Pool für LibreNMS ein.
Führe den folgenden Befehl aus, um die richtige Zeitzone für dein Rocky-Linux-System einzurichten.
sudo timedatectl set-timezone Europe/Stockholm
Bearbeite nun die PHP-Konfiguration„/etc/php.ini“ mit dem folgenden nano-Editor.
sudo nano /etc/php.ini
Entferne die Auskommentierung der Option „date.timezone“ und ändere den Wert mit deiner aktuellen Serverzeitzone.
date.timezone = Europe/Stockholm
Speichere die Datei und schließe den Editor, wenn du fertig bist.
Als Nächstes kopierst du die Standardkonfiguration des PHP-FPM-Pools„www.conf“ nach„librenms‘.conf„. In diesem Beispiel wirst du den speziellen PHP-FPM-Pool für das LibreNMS-Überwachungstool einrichten.
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf
Bearbeite nun die PHP-FPM-Pool-Konfiguration‚/etc/php-fpm.d/librenms.conf‘ mit dem folgenden nano-Editor.
sudo nano /etc/php-fpm.d/librenms.conf
Ändere den Standard-Poolnamen von ‚[www]‘ in ‚[librenms]‚.
[librenms]
Ändere den Standardbenutzer und die Standardgruppe in„librenms„. Dadurch wird der PHP-FPM-Prozess als der Benutzer und die Gruppe„librenms“ ausgeführt.
user = librenms group = librenms
Schließlich änderst du die Option listen in „/run/php-fpm-librenms.sock“. Damit wird die Sock-Datei für den PHP-FPM librenms-Pool angegeben.
listen = /run/php-fpm-librenms.sock
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den folgenden systemctl-Befehl aus, um den PHP-FPM-Dienst neu zu starten und die neuen Änderungen anzuwenden.
sudo systemctl restart php-fpm
MariaDB Server konfigurieren
Nachdem du den PHP-FPM konfiguriert hast, richtest du nun den MariaDB-Datenbankserver ein und legst eine neue Datenbank und einen neuen Benutzer für LibreNMS an.
LibreNMS benötigt den MariaDB-Datenbankserver mit aktiviertem InnoDB. Also musst du ihn jetzt aktivieren. Dann erstellst du eine neue Datenbank und einen neuen Benutzer für LibreNMS.
Bearbeite die MariaDB-Serverkonfiguration „/etc/my.cnf.d/mariadb-server.cnf“ mit dem folgenden nano-Editor.
sudo nano /etc/my.cnf.d/mariadb-server.cnf
Füge die folgende Konfiguration unter dem Abschnitt ‚[mysqld]‘ ein.
[mysqld] .... innodb_file_per_table=1 lower_case_table_names=0
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den folgenden systemctl-Befehl aus, um den MariaDB-Dienst neu zu starten und die neuen Änderungen anzuwenden. Der MariaDB-Server läuft jetzt mit aktivierter InnoDB-Datenbank-Engine.
sudo systemctl restart mariadb
Als Nächstes meldest du dich mit dem Befehl mysql in der MariaDB-Shell an. Wenn du nach dem Passwort gefragt wirst, kannst du einfach ENTER drücken oder das MariaDB-Root-Passwort eingeben.
sudo mysql -u root -p
Führe die folgenden Abfragen aus, um eine neue Datenbank und einen neuen Benutzer für LibreNMS zu erstellen. In diesem Beispiel erstellst du eine neue Datenbank und den Benutzer„librenms“ und änderst das Datenbankpasswort mit deinem Passwort.
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;
Als Nächstes führst du die folgende Abfrage aus, um die Berechtigungen des Datenbankbenutzers„librenms@localhost“ zu überprüfen.
SHOW GRANTS FOR librenms@localhost;
Du solltest sehen, dass der Benutzer‚librenms’@localhost‘ Rechte für die Datenbank‚librenms‚ hat.
Gib nun„exit“ ein, um dich von der MariaDB-Shell abzumelden.
Nginx Server Blöcke einrichten
Nachdem du den MariaDB-Server konfiguriert und die Datenbank und den Benutzer angelegt hast, erstellst du nun eine neue Nginx-Serverblockkonfiguration für LibreNMS.
Bevor du beginnst, solltest du sicherstellen, dass du dich für die lokale Domäne entschieden hast, die für LibreNMS verwendet werden soll. In diesem Beispiel soll das LibreNMS mit der Domain„librenms.hwdomain.io“ laufen.
Erstelle eine neue Nginx-Serverblock-Konfiguration„/etc/nginx/conf.d/librenms.conf“ mit dem folgenden nano-Editor.
sudo nano /etc/nginx/conf.d/librenms.conf
Füge die folgende Konfiguration in die Datei ein und achte darauf, dass du den Domainnamen durch deine Domain ersetzt.
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 die Datei und beende den Editor, wenn du fertig bist.
Als Nächstes führst du den folgenden Befehl aus, um die Nginx-Konfiguration zu überprüfen und sicherzustellen, dass die Konfiguration korrekt ist.
sudo nginx -t
Wenn deine Nginx-Konfiguration korrekt ist, siehst du eine Meldung wie„Test erfolgreich – Syntax OK„.
Starte nun den Nginx-Dienst neu, um die neue Serverblock-Konfiguration anzuwenden.
sudo systemctl restart nginx
Damit hast du die Konfiguration des LEMP-Stacks (Nginx, MariaDB-Datenbank und PHP-FPM) für das LibreNMS abgeschlossen. Außerdem sollte das LibreNMS jetzt auf deinem Rocky Linux System laufen.
SELinux konfigurieren
Für diese Anleitung wirst du LibreNMS mit aktiviertem SELinux im erzwingenden Modus betreiben. Daher wirst du jetzt SELinux-Regeln für LibreNMS einrichten.
Als Erstes führst du den folgenden dnf-Befehl aus, um das Paket„policycoreutils-python-utils“ auf deinem Rocky Linux-System zu installieren. Dieses Paket bietet mehrere Befehlszeilen für die Verwaltung von SELinux.
sudo dnf install policycoreutils-python-utils
Wenn du dazu aufgefordert wirst, gib y ein, um zu bestätigen, und drücke ENTER, um fortzufahren.
Als nächstes führst du den folgenden Befehl aus, um Labels für den LibreNMS-Quellcode einzurichten.
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(rrd|storage)(/.*)?' semanage fcontext -a -t httpd_log_t "/opt/librenms/logs(/.*)?" semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py' restorecon -RFvv /opt/librenms chcon -t httpd_sys_rw_content_t /opt/librenms/.env
Führe den folgenden Befehl aus, um den Zugriff auf einige Dienste für den Nginx-Webserver zu erlauben.
setsebool -P httpd_can_sendmail=1 setsebool -P httpd_execmem 1
Erstelle nun eine neue Datei „http_fping.tt“ mit dem folgenden nano-Editor.
nano http_fping.tt
Füge die folgende Konfiguration in die Datei ein.
module http_fping 1.0; require { type httpd_t; class capability net_raw; class rawip_socket { getopt create setopt write read }; } #============= httpd_t ============== allow httpd_t self:capability net_raw; allow httpd_t self:rawip_socket { getopt create setopt write read };
Speichere die Datei und beende den Editor, wenn du fertig bist.
Als Nächstes führst du den folgenden Befehl aus, um die Datei„http_fping.tt“ in das Format für SELinux zu konvertieren. Dann fügst du die neu kompilierte Regel zum SELinux hinzu.
checkmodule -M -m -o http_fping.mod http_fping.tt semodule_package -o http_fping.pp -m http_fping.mod semodule -i http_fping.pp
Damit hast du die SELinux-Konfiguration für LibreNMS abgeschlossen. Als Nächstes wirst du einige zusätzliche Konfigurationen für LibreNMS einrichten.
Fertigstellung der LibreNMS-Konfigurationen
Um die LibreNMS-Konfiguration abzuschließen, richtest du nun die Befehlszeile„lnms“ ein und kopierst einige Standardkonfigurationen für LibreNMS, einschließlich der Konfigurationen für cron und logrotate. Außerdem musst du den SNMP-Dienst für LibreNMS einrichten.
Führe den folgenden Befehl aus, um die„lnms„-Befehlszeile zu aktivieren und kopiere die Bash-Vervollständigung des„lnms„-Befehls.
ln -s /opt/librenms/lnms /usr/bin/lnms cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
Kopiere die Beispielkonfiguration des LibreNMS cron in die Datei„/etc/cron.d/librenms„.
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
Dann kopiere die Standardkonfiguration von logrotate für LibreNMS nach ‚/etc/logrotate.d/librenms‚.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Und nun kopiere die Standardkonfiguration des snmpd-Dienstes nach „/etc/snmp/snmpd.conf“. Bearbeite dann die neue Datei „/etc/snmp/snmpd.conf“ 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 für den snmpd-Dienst„RANDOMSTRINGGOESHERE“ durch dein Passwort.
# Change RANDOMSTRINGGOESHERE to your preferred SNMP community string com2sec readonly default RANDOMSTRINGGOESHERE
Speichere die Datei und beende den Editor, wenn du fertig bist.
Als Nächstes lädst du die Binärdatei herunter, die von LibreNMS verwendet wird, um das Betriebssystem jedes Zielhosts automatisch zu erkennen. Mache sie dann ausführbar, indem du die Standardberechtigung änderst.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x /usr/bin/distro
Starten Sie schließlich den snmpd-Dienst neu, um die neuen Änderungen und Konfigurationen zu übernehmen.
systemctl restart snmpd
Nun sind alle grundlegenden Konfigurationen abgeschlossen. Als Nächstes startest du die LibreNMS-Installation über den Webbrowser.
Zugriff auf die LibreNMS-Webinstallation
Bearbeite auf deinem lokalen Rechner die Datei „/etc/hosts“ und lege den lokalen Domainnamen deiner LibreNMS-Installation fest. Achte außerdem darauf, dass du die IP-Adresse mit der IP-Adresse deines Servers vergleichst.
192.168.5.100 librenms.hwdomain.io
Öffne nun den Webbrowser und rufe den Domainnamen deiner LibreNMS-Installation auf (z.B.: http://librenms.hwdomain.io/).
Zunächst prüft das LibreNMS-Installationsprogramm die Umgebungen für die Installation. Vergewissere dich, dass alle Anforderungen grün markiert sind. Das bedeutet, dass das System für die Installation von LibreNMS bereit ist.
Klicke auf das Datenbank-Symbol, um fortzufahren.
Gib nun die Datenbank- und Benutzerdaten für dein LibreNMS ein und klicke auf„Zugangsdaten prüfen„. Wenn deine Datenbank-Anmeldedaten korrekt sind, wird der Abschnitt grün markiert.
Klicke nun auf„Datenbank erstellen„, um die Datenbankmigration für LibreNMS zu starten.
Nachdem die Datenbankmigration abgeschlossen ist, wird der Bereich„Datenbank erstellen“ grün markiert.
Klicke auf das Schlüsselsymbol, um den Admin-Benutzer für LibreNMS zu konfigurieren.
Gib nun den neuen Admin-Benutzer, das Passwort und die E-Mail-Adresse für deine LibreNMS-Installation ein und klicke auf„Benutzer hinzufügen„.
Die Installation ist nun abgeschlossen und du siehst die folgende Seite. Du kannst sehen, dass die Installation abgeschlossen ist und die Konfigurationen in die Datei ‚.env‚ geschrieben wurden.
Klicke nun auf den Link„Installation bestätigen„, um die LibreNMS-Installation zu überprüfen.
Du solltest nun auf die LibreNMS-Anmeldeseite weitergeleitet werden. Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf„Anmelden„.
Vergewissere dich nun, dass alle Konfigurationen als„OK“ markiert sind, was bedeutet, dass die Konfiguration keine Fehler aufweist.
Du kannst auch alle Fehler oder Warnungen beheben, indem du die von LibreNMS empfohlenen Anweisungen befolgst.
Du kannst nun einen neuen Zielhost, eine virtuelle Maschine oder ein Netzwerkgerät zur Überwachung der LibreNMS Monitoring Solution hinzufügen.
Fazit
Herzlichen Glückwunsch! Du hast die LibreNMS Monitoring Solution auf dem Rocky Linux Server installiert. Außerdem hast du die Grundkonfiguration des LEMP-Stacks (Nginx, MariaDB und PHP-FPM) auf Rocky Linux gelernt.
Von hier aus kannst du nun einen Host oder Zielrechner zur Überwachung hinzufügen, den LibreNMS-Agenten einrichten, Warnmeldungen oder Benachrichtigungen einrichten, die Integration von Drittanbietern mit Graylog einrichten und weitere Aufgaben erledigen.