LibreNMS ist ein Open-Source, leistungsstarkes und funktionsreiches PHP-basiertes Netzwerküberwachungssystem, das das SNMP-Protokoll verwendet. Es unterstützt eine Vielzahl von Betriebssystemen, darunter Linux, FreeBSD, sowie Netzwerkgeräte wie Cisco, Juniper, Brocade, Foundry, HP und viele mehr.
LibreNMS Funktionen:
- Es entdeckt automatisch ein ganzes Netzwerk mithilfe dieser Protokolle: CDP, FDP, LLDP, OSPF, BGP, SNMP und ARP.
- Es verfügt über eine benutzerfreundliche Web-Benutzeroberfläche, mit anpassbaren Dashboards.
- Unterstützt einen Unix-Agenten.
- Unterstützt horizontales Skalieren, um mit Ihrem Netzwerk zu wachsen.
- Unterstützt ein äußerst flexibles und anpassbares Benachrichtigungssystem; sendet Benachrichtigungen per E-Mail, IRC, Slack und mehr.
- Unterstützt eine API zum Verwalten, Grafieren und Abrufen von Daten aus Ihrem System.
- Bietet ein Traffic-Abrechnungssystem.
- Unterstützt auch Android- und iOS-Apps, die Kernfunktionen bieten.
- Unterstützt Integrationen mit NfSen, collectd, SmokePing, RANCID und Oxidized.
- Unterstützt mehrere Authentifizierungsmethoden wie MySQL, HTTP, LDAP, Radius und Active Directory.
- Ermöglicht automatische Updates und viele weitere Funktionen.
Eine Online-Demo steht zur Verfügung, um LibreNMS auf Linux-Systemen vor der Installation auszuprobieren.
Demo URL: https://demo.librenms.org/ Username: demo Password: demo
Testumgebung:
In diesem Tutorial lernen wir, wie man das LibreNMS Network Monitoring Tool auf einem frisch installierten Ubuntu oder CentOS Linux installiert (die gleichen Anweisungen funktionieren auch auf Debian– und RHEL-basierten Distributionen).
HINWEIS: Alle Anweisungen in diesem Artikel sollten als Benutzer root ausgeführt werden. Wenn Sie das nicht sind, verwenden Sie das sudo-Befehl, um Root-Benutzerrechte zu erlangen.
Schritt 1: Erforderliche Pakete installieren
1. Beginnen Sie zunächst mit der Installation aller erforderlichen Pakete mit dem Standard-Paketmanager, wie gezeigt.
Auf Ubuntu/Debian
$ sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois
Auf CentOS/RHEL
# yum install epel-release # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool
2. Sobald alle Pakete installiert sind, werden die Dienste nginx, php-fpm, mariadb und snmp gestartet und aktiviert, um beim Booten automatisch zu starten (normalerweise der Fall bei Ubuntu). Andernfalls können Sie die folgenden Befehle ausführen, um sie zu starten und zu aktivieren.
------------ On Debian/Ubuntu ------------ $ sudo systemctl nginx start php7.0-fpm mysql snmp $ sudo systemctl enable nginx php7.0-fpm mysql snmp ------------ On CentOS/RHEL ------------ # systemctl nginx start php-fpm mariadb snmpd # systemctl enable nginx php-fpm mariadb snmpd
Schritt 2: LibreNMS Monitoring Tool installieren
3. Als Nächstes erstellen Sie einen Systembenutzer namens librenms mit dem Befehl useradd; wobei die -M
-Flag die Erstellung des Home-Verzeichnisses des Benutzers deaktiviert und -r
die Erstellung eines Systemkontos ermöglicht. Fügen Sie dann den Benutzer librenms der Gruppe www-data (unter Ubuntu) oder nginx (unter CentOS) wie folgt hinzu.
------------ On Debian/Ubuntu ------------ $ sudo useradd librenms -d /opt/librenms -M -r $ sudo usermod -a -G librenms www-data ------------ On CentOS/RHEL ------------ # useradd librenms -d /opt/librenms -M -r # usermod -a -G librenms nginx
4. Installieren Sie anschließend LibreNMS über den composer-Befehl wie gezeigt.
------------ On Debian/Ubuntu ------------ $ cd /opt $ sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master ------------ On CentOS/RHEL ------------ # cd /opt # composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
Schritt 3: Erstellen Sie die LibreNMS-Datenbank
5. Bevor Sie den MariaDB-Server verwenden können, müssen Sie Ihre Installation sichern, indem Sie das Sicherheitsskript aus dem Binärpaket ausführen. Es wird Sie auffordern, ein Root-Passwort festzulegen, anonyme Benutzer zu entfernen, die Fernanmeldung für den Root zu deaktivieren und die Testdatenbank zu entfernen.
Sie können das Skript starten, indem Sie den folgenden Befehl ausführen und alle Fragen mit yes/y
beantworten.
$ sudo mysql_secure_installation [On Debian/Ubuntu] # mysql_secure_installation [On CentOS/RHEL]
6. Melden Sie sich dann an der MariaDB-Datenbank an, um eine Datenbank für LibreNMS zu erstellen (denken Sie daran, in einer Produktionsumgebung ein starkes/sicheres Passwort zu verwenden).
$ sudo mysql -u root -p MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci; MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
7. Deaktivieren Sie anschließend vorübergehend den MySQL-Strikten Modus (Kompatibilität mit dem MySQL-Strikten Modus muss noch hinzugefügt werden).
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu] # vi /etc/my.cnf [On CentOS/RHEL]
In dem Abschnitt [mysqld]
fügen Sie bitte hinzu.
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Dann starten Sie den Datenbankserver neu, um die Änderungen zu übernehmen.
$ sudo systemctl restart mysql [On Debian/Ubuntu] # systemctl restart mariadb [On CentOS/RHEL]
Schritt 4: Konfigurieren und Starten von PHP-FPM
8. Als nächstes setzen Sie Ihre date.timezone in der php.ini
auf Ihre aktuelle Zeitzone, zum Beispiel “Africa/Kampala”, wie im folgenden Screenshot gezeigt.
------------ On Debian/Ubuntu ------------ $ sudo vim /etc/php/7.0/fpm/php.ini $ sudo vim /etc/php/7.0/cli/php.ini ------------ On CentOS/RHEL ------------ # vi /etc/php.ini

9. Aktivieren Sie dann das mcrypt-PHP-Modul in Ubuntu und starten Sie php-fpm neu, wie unten gezeigt.
------------ On Debian/Ubuntu ------------ $ sudo phpenmod mcrypt $ sudo systemctl restart php7.0-fpm
10. Auf CentOS/RHEL müssen Sie die folgenden Änderungen in der Konfigurationsdatei von php-fpm vornehmen.
# vi /etc/php-fpm.d/www.conf
Führen Sie folgende Änderungen durch.
;user = apache user = nginx group = apache ; keep group as apache ;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php7.2-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
11. Starten Sie den php-fpm-Dienst neu, wie unten gezeigt.
# systemctl restart php-fpm
Schritt 5: Konfigurieren Sie Nginx für LibreNMS
12. In diesem Schritt müssen Sie einen Nginx-Serverblock für librenms konfigurieren, um auf die Web-Benutzeroberfläche zugreifen zu können. Erstellen Sie eine .conf
-Datei dafür, wie unten gezeigt.
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
Fügen Sie den folgenden Config hinzu und bearbeiten Sie server_name
wie erforderlich.
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/php7.0-fpm.sock; } location ~ /\.ht { deny all; } }
13. Speichern Sie dann die Datei und verlassen Sie sie. Entfernen Sie auch die Konfiguration des Standard-Serverblocks und starten Sie den Nginx-Server neu.
------------ On Debian/Ubuntu ------------ $ sudo rm /etc/nginx/sites-enabled/default $ sudo systemctl restart nginx ------------ On CentOS/RHEL ------------ # systemctl restart nginx
HINWEIS: Auf CentOS/RHEL müssen Sie den Abschnitt default site deaktivieren, wenn dies die einzige Website ist, die Sie hosten. Löschen Sie den Serverabschnitt aus der Datei /etc/nginx/nginx.conf.
14. Auch auf CentOS/RHEL müssen Sie das Policy-Tool für SELinux installieren und die für LibreNMS benötigten Kontexte mit den folgenden Befehlen konfigurieren.
------------ On CentOS/RHEL ------------ # yum install policycoreutils-python # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?' # restorecon -RFvv /opt/librenms/logs/ # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?' # restorecon -RFvv /opt/librenms/rrd/ # setsebool -P httpd_can_sendmail=1 # setsebool -P httpd_execmem 1
15. Ermöglichen Sie fping, indem Sie die Datei http_fping.tt
mit dem folgenden Inhalt erstellen.
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 };
16. Führen Sie dann diese Befehle aus.
------------ On CentOS/RHEL ------------ # 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
17. Wenn Sie die Firewall auf CentOS/RHEL verwenden, aktivieren Sie den HTTP/HTTPS-Zugriff durch die Firewall.
------------ On CentOS/RHEL ------------ # firewall-cmd --zone public --add-service http # firewall-cmd --permanent --zone public --add-service http # firewall-cmd --zone public --add-service https # firewall-cmd --permanent --zone public --add-service https
Schritt 6: Konfigurieren von SNMPD für LibreNMS
18. Verwenden Sie nun die Beispieldatei zur SNMP-Konfiguration, um Ihre Konfigurationsdatei zu erstellen, und öffnen Sie sie zum Bearbeiten, wie folgt.
------------ On Debian/Ubuntu ------------ $ sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf $ sudo vim /etc/snmp/snmpd.conf ------------ On CentOS/RHEL ------------ # cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf # vi /etc/snmp/snmpd.conf
Suchen Sie die Zeichenfolge RANDOMSTRINGGOESHERE
und ändern Sie sie in Ihre eigene Community-Zeichenfolge, wie im Screenshot gezeigt.

19. Laden Sie als Nächstes ein Shell-Skript auf Ihrem System herunter, das dabei hilft, das Betriebssystem und, falls es sich um Linux handelt, die Linux-Distribution zu erkennen, die Sie verwenden:
------------ On Debian/Ubuntu ------------ $ sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro $ sudo chmod +x /usr/bin/distro $ sudo systemctl restart snmpd ------------ On CentOS/RHEL ------------ # curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro # chmod +x /usr/bin/distro # systemctl restart snmpd
Schritt 7: Cron erstellen und Logrotate konfigurieren
20. Führen Sie jetzt den folgenden Befehl aus, um einen Cron-Job für LibreNMS einzurichten.
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
21. Alle LibreNMS-Protokolle werden jetzt in /opt/librenms/logs aufgezeichnet. Sie müssen diese Protokolle so konfigurieren, dass sie automatisch rotieren, indem Sie die bereitgestellte Logrotate-Konfigurationsdatei verwenden, wie folgt.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Legen Sie dann die entsprechenden Berechtigungen auf dem Installationsverzeichnis von LibreNMS und den Protokolldateien fest.
------------ On Debian/Ubuntu ------------ $ sudo chown -R librenms:librenms /opt/librenms $ sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs $ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs ------------ On CentOS/RHEL ------------ # chown -R librenms:librenms /opt/librenms # setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs # setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs
Schritt 8: Zugriff auf den LibreNMS-Webinstaller
22. Verwenden Sie als Nächstes die folgende URL, um auf den Webinstaller zuzugreifen, und folgen Sie den Anweisungen auf dem Bildschirm.
http://librenms.tecmint.lan/install.php
Um diese Adresse auf einem lokalen Rechner zu verwenden, müssen Sie einen lokalen DNS einrichten, indem Sie die Hosts-Datei (/etc/hosts
) für lokale Domänenauflösung oder Testzwecke vor dem Livegang verwenden.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. Sie werden die Installationsbegrüßungsseite wie im folgenden Screenshot sehen. Klicken Sie auf Nächster Schritt, um fortzufahren.

24. Geben Sie dann die Einstellungen (Datenbankhost, Port, Benutzername und Benutzerpasswort) für die LibreNMS-Datenbank ein und klicken Sie auf Nächster Schritt, um fortzufahren.

25. Der Webinstaller wird nun damit beginnen, die MySQL-Datenbank zu importieren. Dies wird einige Zeit dauern. Beachten Sie, dass der Prozess an bestimmten Punkten pausieren wird. Klicken Sie einfach auf Wiederholen, um mit dem Importprozess fortzufahren.

26. Sobald der Import der Datenbank abgeschlossen ist, sollten Sie die Meldung „Datenbank ist auf dem neuesten Stand!“ sehen, wie im folgenden Screenshot gezeigt. Klicken Sie dann auf Zur Benutzererstellung gehen, um fortzufahren.

27. Fügen Sie als nächstes einen LibreNMS-Benutzer hinzu. Geben Sie Benutzername, Passwort und E-Mail-Adresse an und klicken Sie dann auf Benutzer hinzufügen, um die Änderungen zu übernehmen.

28. Klicken Sie jetzt auf Konfiguration generieren, um die LibreNMS-Konfiguration für Ihr System zu erstellen.


29. Sobald die Konfiguration generiert ist, wie im vorherigen Bildschirmfoto gezeigt, kopieren Sie sie und speichern Sie sie im Stammverzeichnis Ihrer Installation in einer Datei namens /opt/librenms/config.php.
# vi /opt/librenms/config.php
<?php ## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php! ### Database config $config['db_host'] = 'localhost'; $config['db_port'] = '3306'; $config['db_user'] = 'librenms'; $config['db_pass'] = '=@!#@%$libre'; $config['db_name'] = 'librenms'; $config['db_socket'] = ''; // This is the user LibreNMS will run as //Please ensure this user is created and has the correct permissions to your install $config['user'] = 'librenms'; ### Locations - it is recommended to keep the default #$config['install_dir'] = "/opt/librenms"; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname #$config['base_url'] = "http://librenms.company.com"; ### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir ### and that your web server has permission to talk to rrdcached. #$config['rrdcached'] = "unix:/var/run/rrdcached.sock"; ### Default community $config['snmp']['community'] = array("public"); ### Authentication Model $config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth #$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth ### List of RFC1918 networks to allow scanning-based discovery #$config['nets'][] = "10.0.0.0/8"; #$config['nets'][] = "172.16.0.0/12"; #$config['nets'][] = "192.168.0.0/16"; # Update configuration #$config['update_channel'] = 'release'; # uncomment to follow the monthly release channel #$config['update'] = 0; # uncomment to completely disable updates
30. Speichern Sie die Datei und schließen Sie sie. Gehen Sie dann zum Web-Installer zurück, um den Installationsprozess fortzusetzen, indem Sie auf Installieren beenden klicken.

31. Jetzt ist Ihre LibreNMS-Installation abgeschlossen. Sie können auf „Installation validieren und alle Probleme beheben“ klicken. Die Anmeldeseite sollte erscheinen.

32. Geben Sie als nächstes Ihre Benutzerdaten ein, um auf die Validierungsseite zuzugreifen.

33. Während des Installationsvalidierungsprozesses hat LibreNMS zwei Probleme festgestellt. Zum einen wurden Geräte noch nicht hinzugefügt (dies ist derzeit eine Warnung), und zum anderen haben wir die entsprechenden Berechtigungen für die Konfigurationsdatei (/opt/librenms/config.php), die manuell hinzugefügt wurde, nicht festgelegt, wie im Bildschirmfoto unten gezeigt.

Führen Sie nun den folgenden Befehl aus, um die korrekten Berechtigungen für die Konfigurationsdatei festzulegen.
$ sudo chown -R librenms:librenms /opt/librenms/config.php
34. Um Geräte hinzuzufügen, gehen Sie zu: http://librenms.tecmint.lan/addhost. Nach dem Hinzufügen von Geräten können Sie zur Startseite gehen und verschiedene Dashboards hinzufügen.

Das ist alles! Weitere Informationen, einschließlich Installation und Einrichtung, finden Sie in der LibreNMS-Dokumentation unter https://docs.librenms.org/.
LibreNMS ist ein voll ausgestattetes Netzwerküberwachungssystem, das eine Vielzahl von Netzwerkhardware unterstützt. Wir hoffen, dass dies eine klare Installationsanleitung war. Wenn Sie Fragen haben, erreichen Sie uns über das unten stehende Feedback-Formular.
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/