LibreNMS - E Voll Feature Network Monitoring Tool fir Linux


LibreNMS ass en Open Source, mächtegen a Feature-räichen automateschentdecken PHP baséiert Netzwierk Iwwerwaachungssystem deen den SNMP Protokoll benotzt. Et ënnerstëtzt eng breet Palette vun Betribssystemer dorënner Linux, FreeBSD, souwéi Reseau Apparater dorënner Cisco, Juniper, Brocade, Foundry, HP a vill méi.

  1. Et entdeckt automatesch e ganzt Netzwierk mat dëse Protokoller: CDP, FDP, LLDP, OSPF, BGP, SNMP an ARP.
  2. Et huet eng mobil frëndlech Web UI, mat personaliséierbaren Dashboards.
  3. Ënnerstëtzt en Unix Agent.
  4. Ënnerstëtzt horizontale Skala fir mat Ärem Netz auszebauen.
  5. Ënnerstëtzt en héich flexibelen an personaliséierbare Alarmsystem; schéckt Notifikatiounen per E-Mail, irc, slack a méi.
  6. Ënnerstëtzt eng API fir d'Gestioun, d'Grafiken an d'Erhuelung vun Daten aus Ärem System.
  7. Offert e Verkéiersrechnungssystem.
  8. Ënnerstëtzt och eng Android an iOS Apps déi Kärfunktioune ubidden.
  9. Ënnerstëtzt Integratioun mat NfSen, collectd, SmokePing, RANCID an Oxidized.
  10. Ënnerstëtzt verschidde Authentifikatiounsmethoden wéi MySQL, HTTP, LDAP, Radius an Active Directory.
  11. Erlaabt automatesch Aktualiséierung a vill aner Funktiounen.

Eng Online Demo ass verfügbar fir Iech ze probéieren ier Dir LibreNMS op Linux Systemer installéiert.

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

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

An dësem Tutorial léiere mir wéi Dir LibreNMS Network Monitoring Tool op engem frësch installéierten Ubuntu oder CentOS Linux installéiere kënnt (déiselwecht Instruktioune funktionnéieren och op Debian a RHEL baséiert Verdeelungen).

NOTÉIERT: All dës Instruktiounen an dësem Artikel sollten als Root Benotzer lafen, wann Dir net sidd, benotzt de sudo Kommando fir Root Benotzer Privilegien ze kréien.

Schrëtt 1: Installéiert erfuerderlech Packagen

1. Fänkt als éischt un andeems Dir all déi erfuerderlech Packagen installéiert mat dem Standard Package Manager wéi gewisen.

$ 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
# 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. Wann all d'Packagen installéiert sinn, ginn nginx, php-fpm, mariadb an snmp Servicer gestart an aktivéiert fir automatesch bei der Bootzäit ze starten (dëst ass normalerweis de Fall mat Ubuntu), soss kënnt Dir d'Befehle hei drënner ausféieren. starten an aktivéieren hinnen.

------------ 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

Schrëtt 2: Installéiert LibreNMS Monitoring Tool

3. Als nächst erstellt e System Benotzer genannt librenms, mam Kommando useradd; wou de -M Fändel d'Schafung vum Heemverzeechnes vum Benotzer auszeschalten, an -r et erméiglecht e Systemkonto ze kreéieren. Füügt dann de Librenms Benotzer un d'Grupp www-data (op Ubuntu) oder nginx (op CentOS) wéi follegt.

------------ 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. Dann installéiert LibreNMS via Komponist Kommando wéi gewisen.

------------ 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

Schrëtt 3: LibreNMS Datebank erstellen

5. Ier Dir de MariaDB-Server benotze kënnt, musst Dir Är Installatioun sécheren, lafen d'Sécherheetsskript am binäre Paket. Et freet Iech e Root-Passwuert ze setzen, anonyme Benotzer ze läschen, Root Login op afstand auszeschalten an Testdatenbank ze läschen.

Dir kënnt de Skript lancéieren andeems Dir de Kommando hei ënnen erausstellt an all Froen mat jo/y beäntweren.

$ sudo mysql_secure_installation   [On Debian/Ubuntu]
# mysql_secure_installation        [On CentOS/RHEL]

6. Da Login op MariaDB Datebank fir eng Datebank fir LibreNMS ze schafen (erënneren engem staarke/sécher Passwuert an engem Produktioun Ëmfeld ze benotzen).

$ 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 '[email !#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Duerno deaktivéiert de MySQL strenge Modus fir elo (Kompatibilitéit mam MySQL strenge Modus ass nach net derbäigesat).

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu]
# vi /etc/my.cnf        [On CentOS/RHEL]

An der [mysqld] Sektioun w.e.g. fügen.

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

Da starten den Datebankserver nei fir d'Ännerungen auszeféieren.

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

Schrëtt 4: PHP-FPM konfiguréieren a starten

8. Als nächst setzt Är date.timezone an der php.ini op Är aktuell Zäitzone, zum Beispill \Afrika/Kampala, wéi am folgenden Screenshot gewisen.

------------ 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ächst aktivéiert de mcrypt PHP-Modul an Ubuntu an nei start php-fpm wéi gewisen.

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

10. Op CentOS/RHEL musst Dir folgend Ännerungen an der php-fpm Konfiguratiounsdatei maachen.

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

Maacht folgend Ännerungen.

;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. Restart php-fpm Service wéi gewisen.

# systemctl restart php-fpm

Schrëtt 5: Nginx fir LibreNMS konfiguréieren

12. An dësem Schrëtt musst Dir e Nginx Serverblock fir Librenms konfiguréieren fir op de Web UI ze kommen. Erstellt eng .conf Datei dofir wéi gewisen.

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

Füügt déi folgend Configuratioun un, ännert Servername wéi néideg.

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. Da späicheren an d'Datei ausmaachen. Huelt och d'Standardserverblockkonfiguratioun erof an den Nginx Server nei starten.

------------ On Debian/Ubuntu ------------ 
$ sudo rm /etc/nginx/sites-enabled/default
$ sudo systemctl restart nginx

------------ On CentOS/RHEL ------------ 
# systemctl restart nginx

NOTÉIERT: Op CentOS/RHEL musst Dir d'Default Site Sektioun auszeschalten, wann dëst deen eenzege Site ass deen Dir hostt. Läschen de Server Sektioun aus /etc/nginx/nginx.conf Datei.

14. Och op CentOS/RHEL musst Dir d'Politik-Tool fir SELinux installéieren an d'Kontexter konfiguréieren déi LibreNMS benotzt mat de folgende Kommandoen.

------------ 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. Erlaabt fping andeems Dir de Fichier http_fping.tt erstellt mat den folgenden Inhalter.

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. Da lafen dës Kommandoen.

------------ 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. Wann Dir Firewall op CentOS/RHEL benotzt, aktivéiert HTTP/HTTPS Zougang duerch 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

Schrëtt 6: SNMPD fir LibreNMS konfiguréieren

18. Benotzt elo d'Probe snmp Konfiguratioun fir Är Konfiguratiounsdatei ze kreéieren an opzemaachen fir z'änneren, wéi follegt.

------------ 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

Fannt d'String RANDOMSTRINGGOESHERE a ännert se op Är eege Gemeinschaftsstring wéi am Screenshot gewisen.

19. Als nächst luet e Shell-Skript op Ärem System erof, wat hëlleft fir z'entdecken wéi eng OS a wann et Linux ass, da wäert et erkennen wéi eng Linux Verdeelung Dir benotzt:

------------ 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

Schrëtt 7: Cron erstellen a Logrotate konfiguréieren

20. Laf elo de Kommando hei ënnen fir eng Cron Job fir LibreNMS opzestellen.

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

21. Als nächst ginn all LibreNMS Logbicher an /opt/librenms/logs opgeholl, Dir musst dës Logbicher konfiguréieren fir automatesch rotéiert ze ginn, andeems Dir d'logrotate Configuratiounsdatei benotzt, sou wéi dëst.

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

Setzt dann déi entspriechend Permissiounen am LibreNMS Installatiounsroot Verzeechnes a Logdateien.

------------ 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

Schrëtt 8: Zougang LibreNMS Web Installer

22. Als nächst benotzt déi folgend URL fir Zougang zum Webinstallateur ze kréien an d'Instruktioune um Bildschierm ze befollegen.

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

Fir dës Adress op enger lokaler Maschinn ze schaffen, musst Dir e lokalen DNS mat der Hostdatei (/etc/hosts) opsetzen, fir lokal Domain-Resolutioun oder Testzwecker ier Dir live geet.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Dir gesitt d'Installatioun Wëllkomm Säit wéi am folgenden Screenshot gewisen, klickt Next Stage fir weiderzemaachen.

24. Da gitt d'Astellungen (Datebankhost, Port, Benotzernumm a Benotzerpasswuert) fir d'LibreNMS-Datebank a klickt op Next Stage fir weiderzemaachen.

25. De Webinstallateur fänkt elo un d'MySQL-Datebank z'importéieren, dëst dauert e bëssen Zäit. Notéiert datt de Prozess probéiert op bestëmmte Punkten ze pausen, einfach klickt op Retry fir mam Importprozess weiderzemaachen.

26. Wann d'Datebankimport fäerdeg ass, sollt Dir d'Message Datebase ass aktuell! gesinn, wéi am Screenshot hei ënnendrënner.Klickt dann op Goto Add User fir weiderzegoen.

27. Als nächst füügt e LibreNMS Benotzer bäi, spezifizéiert Benotzernumm, Passwuert an E-Mail, da klickt op Add User fir d'Ännerungen auszeféieren.

28. Elo klickt op d'LibreNMS Konfiguratioun fir Äre System erstellen, andeems Dir op Generate Config klickt.

29. Wann d'Konfiguratioun generéiert ass, wéi am virege Screenhot gewisen, kopéiert se a späichert se am Root-Verzeichnis vun Ärer Installatioun, an enger Datei mam Numm /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'] = '[email !#@%$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. Späicheren a schloen d'Datei. Da gitt zréck op de Webinstallateur fir mam Installatiounsprozess weiderzemaachen, andeems Dir op Installatioun fäerdeg klickt.

31. Elo ass Är LibreNMS Installatioun fäerdeg, Dir kënnt op \Är Installatioun validéieren an all Themen fixéieren, d'Login Säit soll erschéngen.

32. Als nächst gitt Är Benotzer Umeldungsinformatioune fir op d'Validatiounssäit ze kommen.

33. Vum Installatiounsvalidatiounsprozess huet LibreNMS zwee Themen entdeckt, een ass datt d'Apparater net bäigefüügt goufen (dëst ass eng Warnung fir de Moment), an zweetens hu mir net déi entspriechend Erlaabnes op der Configuratiounsdatei gesat (/opt/librenms). /config.php) déi manuell bäigefüügt gouf, wéi am Bildschierm hei ënnen gewisen.

Fuert elo de folgende Kommando fir déi richteg Erlaabnes op der Configuratiounsdatei ze setzen.

$ sudo chown -R librenms:librenms /opt/librenms/config.php 

34. Fir Apparater ze addéieren, gitt op: http://librenms.tecmint.lan/addhost. Nodeems Dir Geräter bäigefüügt hutt, kënnt Dir op d'Homepage goen a verschidde Dashboards addéieren.

Dat ass et! Dir kënnt méi Informatioun fannen, dorënner Installatioun a Setup op der LibreNMS Dokumentatioun op https://docs.librenms.org/.

LibreNMS ass e voll ausgestatteten Netzwierk Iwwerwaachungssystem deen eng Vielfalt vun Netzwierkhardware ënnerstëtzt. Mir hoffen datt dëst e klore Installatiounsguide war, wann Dir Froen hutt, erreechen eis iwwer de Feedbackform hei ënnen.