Website-Suche

LibreNMS – Ein voll ausgestattetes Netzwerküberwachungstool für Linux


LibreNMS ist ein Open-Source-, leistungsstarkes und funktionsreiches, automatisch erkennendes PHP-basiertes Netzwerküberwachungssystem, das das SNMP-Protokoll verwendet. Es unterstützt eine breite Palette von Betriebssystemen, darunter Linux, FreeBSD, sowie Netzwerkgeräte, darunter Cisco, Juniper, Brocade, Foundry, HP und viele mehr.

LibreNMS-Funktionen:

  1. Es erkennt automatisch ein ganzes Netzwerk mithilfe dieser Protokolle: CDP, FDP, LLDP, OSPF, BGP, SNMP und ARP.
  2. Es verfügt über eine mobilfreundliche Web-Benutzeroberfläche mit anpassbaren Dashboards.
  3. Unterstützt einen Unix-Agenten.
  4. Unterstützt die horizontale Skalierung zur Erweiterung mit Ihrem Netzwerk.
  5. Unterstützt ein hochflexibles und anpassbares Warnsystem; Versendet Benachrichtigungen per E-Mail, IRC, Slack und mehr.
  6. Unterstützt eine API zum Verwalten, Darstellen und Abrufen von Daten aus Ihrem System.
  7. Bietet ein Verkehrsabrechnungssystem.
  8. Unterstützt auch Android- und iOS-Apps, die Kernfunktionen bieten.
  9. Unterstützt die Integration mit NfSen, Collectd, SmokePing, RANCID und Oxidized.
  10. Unterstützt mehrere Authentifizierungsmethoden wie MySQL, HTTP, LDAP, Radius und Active Directory.
  11. Ermöglicht automatische Aktualisierung und viele andere Funktionen.

Vor der Installation von LibreNMS auf Linux-Systemen steht Ihnen eine Online-Demo zum Ausprobieren zur Verfügung.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

Test Umgebung:

  1. Ubuntu 16.04 mit LEMP Stack
  2. CentOS 7 mit LEMP Stack

In diesem Tutorial lernen wir, wie man LibreNMS Network Monitoring Tool auf einem frisch installierten Ubuntu oder CentOS Linux installiert (dieselbe Anleitung funktioniert auch auf Debian- und RHEL-basierte Distributionen).

HINWEIS: Alle diese Anweisungen in diesem Artikel sollten als root-Benutzer ausgeführt werden. Andernfalls verwenden Sie den Befehl sudo, um root zu werden Benutzerrechte.

Schritt 1: Erforderliche Pakete installieren

1. Beginnen Sie zunächst mit der Installation aller erforderlichen Pakete mit dem Standardpaketmanager, 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, nginx, php-fpm, mariadb und snmp<-Dienste werden gestartet und für den automatischen Start beim Booten aktiviert (dies ist normalerweise bei Ubuntu der Fall). 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: Installieren Sie das LibreNMS-Überwachungstool

3. Als nächstes erstellen Sie mit dem Befehl useradd einen Systembenutzer namens librenms. Dabei deaktiviert das Flag -M die Erstellung des Home-Verzeichnisses des Benutzers und -r ermöglicht die Erstellung eines Systemkontos. Fügen Sie dann den Benutzer librenms der Gruppe www-data (auf Ubuntu) oder nginx (auf ) hinzu CentOS) wie folgt.

------------ 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 dann 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 eine LibreNMS-Datenbank

5. Bevor Sie den MariaDB-Server verwenden können, müssen Sie Ihre Installation sichern und das im Binärpaket bereitgestellte Sicherheitsskript ausführen. Sie werden aufgefordert, ein Root-Passwort festzulegen, anonyme Benutzer zu entfernen, die Root-Anmeldung aus der Ferne 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 bei 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 den strikten Modus MySQL vorerst (die Kompatibilität mit dem strikten Modus von MySQL 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]

Bitte fügen Sie im Abschnitt [mysqld] hinzu.

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Starten Sie dann den Datenbankserver neu, um die Änderungen zu übernehmen.

sudo systemctl restart mysql     [On Debian/Ubuntu]
systemctl restart mariadb        [On CentOS/RHEL]

Schritt 4: PHP-FPM konfigurieren und starten

8. Als nächstes stellen Sie Ihre date.timezone in der php.ini auf Ihre aktuelle Zeitzone ein, zum Beispiel „Afrika/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. Als nächstes aktivieren Sie das PHP-Modul mcrypt in Ubuntu und starten php-fpm wie gezeigt neu.

------------ On Debian/Ubuntu ------------ 
sudo phpenmod mcrypt
sudo systemctl restart php7.0-fpm

10. Unter CentOS/RHEL müssen Sie folgende Änderungen in der php-fpm-Konfigurationsdatei vornehmen.

vi /etc/php-fpm.d/www.conf

Nehmen Sie folgende Änderungen vor.

;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 wie gezeigt neu.

systemctl restart php-fpm

Schritt 5: Nginx für LibreNMS konfigurieren

12. In diesem Schritt müssen Sie einen Nginx-Serverblock für librenms konfigurieren, um auf die Web-Benutzeroberfläche zuzugreifen. Erstellen Sie wie gezeigt eine .conf-Datei dafür.

sudo vim /etc/nginx/conf.d/librenms.conf     [On Debian/Ubuntu]
vi /etc/nginx/conf.d/librenms.conf           [On CentOS/RHEL]         

Fügen Sie die folgende config hinzu und bearbeiten Sie server_name nach Bedarf.

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 und beenden Sie dann die Datei. Entfernen Sie außerdem die Standard-Serverblockkonfiguration 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: Unter CentOS/RHEL müssen Sie den Abschnitt Standard-Site deaktivieren, falls dies der Fall ist einzige Website, die Sie hosten. Löschen Sie den Serverabschnitt aus der Datei /etc/nginx/nginx.conf.

14. Auch unter CentOS/RHEL müssen Sie das Richtlinientool für SELinux installieren und das konfigurieren >Kontexte, die von LibreNMS benötigt werden, mithilfe der folgenden Befehle.

------------ 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. Erlauben 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 eine Firewall unter CentOS/RHEL verwenden, aktivieren Sie den HTTP/HTTPS-Zugriff über 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: SNMPD für LibreNMS konfigurieren

18. Erstellen Sie nun mithilfe der Beispiel-SNMP-Konfiguration Ihre Konfigurationsdatei und öffnen Sie sie wie folgt zur Bearbeitung.

------------ 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 Ihr System herunter, mit dessen Hilfe Sie erkennen können, welches Betriebssystem und, falls es sich um Linux handelt, welche Linux-Distribution 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 nun den folgenden Befehl aus, um einen Cron-Job für LibreNMS einzurichten.

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

21. Als Nächstes werden alle LibreNMS-Protokolle in /opt/librenms/logs aufgezeichnet. Möglicherweise müssen Sie diese Protokolle so konfigurieren, dass sie automatisch rotiert werden , unter Verwendung der bereitgestellten Logrotate-Konfigurationsdatei, wie folgt.

cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Legen Sie dann die entsprechenden Berechtigungen für das LibreNMS-Installationsstammverzeichnis und die 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: Greifen Sie auf den LibreNMS Web Installer zu

22. Verwenden Sie als Nächstes die folgende URL, um auf das Web-Installationsprogramm zuzugreifen, und befolgen Sie die Anweisungen auf dem Bildschirm.

http://librenms.tecmint.lan/install.php

Damit diese Adresse auf einem lokalen Computer funktioniert, müssen Sie mithilfe der Hosts-Datei (/etc/hosts) ein lokales DNS für die lokale Domänenauflösung oder zu Testzwecken einrichten, bevor Sie live gehen.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Sie sehen die Willkommensseite der Installation, wie im folgenden Screenshot gezeigt. 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 Web-Installer beginnt nun mit dem Import der MySQL-Datenbank, dies wird einige Zeit dauern. Beachten Sie, dass der Vorgang an bestimmten Stellen versucht, anzuhalten. Klicken Sie einfach auf Wiederholen, um mit dem Importvorgang fortzufahren.

26. Sobald der Datenbankimport abgeschlossen ist, sollten Sie die Meldung „Datenbank ist auf dem neuesten Stand!“ sehen, wie im Screenshot unten gezeigt. Klicken Sie dann auf Gehe zu Benutzer hinzufügen, um fortzufahren.

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

28. Klicken Sie nun auf „Erstellen der LibreNMS-Konfiguration für Ihr System, indem Sie auf Konfiguration generieren klicken.

29. Sobald die Konfiguration generiert wurde, wie im vorherigen Screenshot 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 und schließen Sie die Datei. Kehren Sie dann zum Web-Installer zurück, um mit der Installation fortzufahren, indem Sie auf Installation abschließen klicken.

31. Nachdem Ihre LibreNMS-Installation abgeschlossen ist, können Sie auf „Installation validieren und etwaige Probleme beheben“ klicken. Die Anmeldeseite sollte angezeigt werden.

32. Geben Sie als Nächstes Ihre Benutzeranmeldeinformationen ein, um auf die Validierungsseite zuzugreifen.

33. Beim Installationsvalidierungsprozess hat LibreNMS zwei Probleme entdeckt: Zum einen wurden keine Geräte hinzugefügt (dies ist vorerst eine Warnung) und zum anderen haben wir es getan Es wurde nicht die entsprechende Berechtigung für die Konfigurationsdatei (/opt/librenms/config.php) festgelegt, die manuell hinzugefügt wurde, wie im Screenshot unten gezeigt.

Führen Sie nun den folgenden Befehl aus, um die richtige Berechtigung 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. Nachdem Sie Geräte hinzugefügt haben, können Sie zur Startseite gehen und verschiedene Dashboards hinzufügen.

Das ist es! 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.