Zoeken op website

LibreNMS - Een volledig functionele netwerkmonitoringtool voor Linux


LibreNMS is een open source, krachtig en rijk aan functies, op PHP gebaseerd netwerkmonitoringsysteem dat gebruikmaakt van het SNMP-protocol. Het ondersteunt een breed scala aan besturingssystemen, waaronder Linux, FreeBSD, maar ook netwerkapparaten, waaronder Cisco, Juniper, Brocade, Foundry, HP en nog veel meer.

LibreNMS-functies:

  1. Het ontdekt automatisch een heel netwerk met behulp van deze protocollen: CDP, FDP, LLDP, OSPF, BGP, SNMP en ARP.
  2. Het heeft een mobielvriendelijke webinterface, met aanpasbare dashboards.
  3. Ondersteunt een Unix-agent.
  4. Ondersteunt horizontale schaalvergroting om uit te breiden met uw netwerk.
  5. Ondersteunt een zeer flexibel en aanpasbaar waarschuwingssysteem; verzendt meldingen via e-mail, irc, slack en meer.
  6. Ondersteunt een API voor het beheren, grafisch weergeven en ophalen van gegevens uit uw systeem.
  7. Biedt een verkeersfactureringssysteem.
  8. Ondersteunt ook Android- en iOS-apps die kernfunctionaliteiten bieden.
  9. Ondersteunt integratie met NfSen, verzameld, SmokePing, RANCID en Oxidized.
  10. Ondersteunt meerdere authenticatiemethoden zoals MySQL, HTTP, LDAP, Radius en Active Directory.
  11. Maakt automatische updates en vele andere functies mogelijk.

Er is een online demo beschikbaar die u kunt uitproberen voordat u LibreNMS op Linux-systemen installeert.

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

Test omgeving:

  1. Ubuntu 16.04 met LEMP-stack
  2. CentOS 7 met LEMP-stack

In deze tutorial leren we hoe u LibreNMS Network Monitoring Tool installeert op een vers geïnstalleerde Ubuntu of CentOS Linux (dezelfde instructies werken ook op >Debian en RHEL gebaseerde distributies).

OPMERKING: al deze instructies in dit artikel moeten worden uitgevoerd als root-gebruiker. Als u dat niet bent, gebruikt u de opdracht sudo om root te krijgen gebruikersrechten.

Stap 1: Installeer de vereiste pakketten

1. Begin eerst met het installeren van alle vereiste pakketten met behulp van de standaard pakketbeheerder, zoals weergegeven.

Op 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

Op 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. Zodra alle pakketten zijn geïnstalleerd, nginx, php-fpm, mariadb en snmp< services worden gestart en ingeschakeld om automatisch te starten tijdens het opstarten (dit is normaal het geval bij Ubuntu), anders kunt u de onderstaande opdrachten uitvoeren om ze te starten en in te schakelen.

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

Stap 2: Installeer de LibreNMS Monitoring Tool

3. Maak vervolgens een systeemgebruiker aan met de naam librenms, met de opdracht useradd; waarbij de vlag -M het aanmaken van de thuismap van de gebruiker uitschakelt, en -r het aanmaken van een systeemaccount mogelijk maakt. Voeg vervolgens de librenms-gebruiker toe aan de groep www-data (op Ubuntu) of nginx (op CentOS) als volgt.

------------ 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. Installeer vervolgens LibreNMS via het composer commando, zoals weergegeven.

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

Stap 3: Maak een LibreNMS-database

5. Voordat u de MariaDB-server kunt gaan gebruiken, moet u uw installatie beveiligen en het beveiligingsscript uitvoeren dat in het binaire pakket wordt geleverd. Het zal u vragen een root-wachtwoord in te stellen, anonieme gebruikers te verwijderen, root-login op afstand uit te schakelen en de testdatabase te verwijderen.

U kunt het script starten door het onderstaande commando uit te voeren en alle vragen te beantwoorden met yes/y.

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

6. Log vervolgens in op de MariaDB-database om een database voor LibreNMS te maken (vergeet niet om een sterk/veilig wachtwoord te gebruiken in een productieomgeving).

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. Schakel daarna de MySQL strikte modus voorlopig uit (compatibiliteit met de strikte MySQL-modus moet nog worden toegevoegd).

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

Voeg in de sectie [mysqld] een.

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

Start vervolgens de databaseserver opnieuw op om de wijzigingen door te voeren.

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

Stap 4: Configureer en start PHP-FPM

8. Stel vervolgens uw date.timezone in php.ini in op uw huidige tijdzone, bijvoorbeeld “Africa/Kampala ”, zoals weergegeven in de volgende schermafbeelding.

------------ 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. Schakel vervolgens de mcrypt PHP-module in Ubuntu in en start php-fpm opnieuw zoals weergegeven.

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

10. Op CentOS/RHEL moet je de volgende wijzigingen aanbrengen in het php-fpm configuratiebestand.

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

Breng de volgende wijzigingen aan.

;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. Start de php-fpm service opnieuw zoals weergegeven.

systemctl restart php-fpm

Stap 5: Configureer Nginx voor LibreNMS

12. In deze stap moet u een Nginx serverblok configureren voor librenms om toegang te krijgen tot de webinterface. Maak er een .conf-bestand voor, zoals weergegeven.

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

Voeg de volgende config toe, bewerk server_name zoals vereist.

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. Sla het bestand vervolgens op en sluit het af. Verwijder ook de standaard serverblokconfiguratie en start de Nginx-server opnieuw op.

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

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

OPMERKING: op CentOS/RHEL moet je de sectie standaardsite uitschakelen, als dit de enige site die u host. Verwijder de serversectie uit het bestand /etc/nginx/nginx.conf.

14. Ook op CentOS/RHEL moet je de beleidstool voor SELinux installeren en de >contexten die LibreNMS nodig heeft met behulp van de volgende opdrachten.

------------ 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. Sta fping toe door het bestand http_fping.tt te maken met de volgende inhoud.

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. Voer vervolgens deze opdrachten uit.

------------ 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. Als u Firewall gebruikt op CentOS/RHEL, schakel dan HTTP/HTTPS-toegang via de firewall in.

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

Stap 6: Configureer SNMPD voor LibreNMS

18. Gebruik nu de voorbeeld-SNMP-configuratie om uw configuratiebestand te maken en open het om te bewerken, als volgt.

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

Zoek de tekenreeks RANDOMSTRINGGOESHERE en wijzig deze in uw eigen communitytekenreeks, zoals weergegeven in de schermafbeelding.

19. Download vervolgens een shellscript op uw systeem, dat helpt bij het detecteren welk besturingssysteem en of het Linux is, en vervolgens zal detecteren welke Linux-distributie u gebruikt:

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

Stap 7: Cron aanmaken en Logrotate configureren

20. Voer nu de onderstaande opdracht uit om een cron-taak in te stellen voor LibreNMS.

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

21. Vervolgens worden alle LibreNMS-logboeken vastgelegd in /opt/librenms/logs. Mogelijk moet u deze logs zo configureren dat ze automatisch worden geroteerd , met behulp van het meegeleverde logrotate-configuratiebestand, zoals hier.

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

Stel vervolgens de juiste machtigingen in voor de hoofdmap van de LibreNMS-installatie en de logbestanden.

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

Stap 8: Open LibreNMS Web Installer

22. Gebruik vervolgens de volgende URL om toegang te krijgen tot het webinstallatieprogramma en volg de instructies op het scherm.

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

Om dit adres op een lokale machine te laten werken, moet u een lokale DNS instellen met behulp van het hosts-bestand (/etc/hosts), voor lokale domeinresolutie of testdoeleinden voordat u live gaat.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. U ziet de welkomstpagina van de installatie zoals weergegeven in de volgende schermafbeelding. Klik op Volgende fase om door te gaan.

24. Voer vervolgens de instellingen in (databasehost, poort, gebruikersnaam en gebruikerswachtwoord) voor de LibreNMS-database en klik op Volgende fase om door te gaan.

25. Het webinstallatieprogramma begint nu met het importeren van de MySQL-database, dit zal enige tijd duren. Houd er rekening mee dat het proces op bepaalde punten zal proberen te pauzeren. Klik eenvoudig op Opnieuw proberen om door te gaan met het importproces.

26. Zodra het importeren van de database is voltooid, zou u het bericht “Database is up-to-date!” moeten zien, zoals weergegeven in de onderstaande schermafbeelding. Klik vervolgens op Ga naar Gebruiker toevoegen om door te gaan.

27. Voeg vervolgens een LibreNMS-gebruiker toe, geef gebruikersnaam, wachtwoord en e-mailadres op en klik vervolgens op Gebruiker toevoegen om de wijzigingen door te voeren.

28. Klik nu op de LibreNMS-configuratie voor uw systeem maken, door op Config genereren te klikken.

29. Zodra de configuratie is gegenereerd, zoals weergegeven in de vorige screenhot, kopieert u deze en slaat u deze op in de hoofdmap van uw installatie, in een bestand met de naam /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. Sla het bestand op en sluit het. Ga vervolgens terug naar het webinstallatieprogramma om door te gaan met het installatieproces door op Installatie voltooien te klikken.

31. Nu uw LibreNMS installatie voltooid is, kunt u klikken op “uw installatie valideren en eventuele problemen oplossen”. De inlogpagina zou moeten verschijnen.

32. Voer vervolgens uw gebruikersgegevens in om toegang te krijgen tot de validatiepagina.

33. Tijdens het installatievalidatieproces heeft LibreNMS twee problemen ontdekt, één is dat er geen apparaten zijn toegevoegd (dit is voorlopig een waarschuwing), en ten tweede hebben we Stel niet de juiste toestemming in voor het configuratiebestand (/opt/librenms/config.php) dat handmatig is toegevoegd, zoals weergegeven in de onderstaande schermafbeelding.

Voer nu de volgende opdracht uit om de juiste machtiging voor het configuratiebestand in te stellen.

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

34. Om apparaten toe te voegen, ga naar: http://librenms.tecmint.lan/addhost. Nadat u apparaten heeft toegevoegd, kunt u naar de startpagina gaan en verschillende dashboards toevoegen.

Dat is het! U kunt meer informatie vinden, inclusief installatie en configuratie, in de LibreNMS-documentatie op https://docs.librenms.org/.

LibreNMS is een volledig uitgerust netwerkmonitoringsysteem dat een verscheidenheid aan netwerkhardware ondersteunt. We hopen dat dit een duidelijke installatiehandleiding was. Als u vragen heeft, kunt u ons bereiken via het onderstaande feedbackformulier.