LibreNMS is een open source, krachtig en functierijk PHP-gebaseerd netwerkmonitoringssysteem dat automatische ontdekking gebruikt via het SNMP-protocol. Het ondersteunt een breed scala aan besturingssystemen, waaronder Linux, FreeBSD, evenals netwerkapparaten zoals Cisco, Juniper, Brocade, Foundry, HP en nog veel meer.
LibreNMS Kenmerken:
- Het ontdekt automatisch een heel netwerk met behulp van deze protocollen: CDP, FDP, LLDP, OSPF, BGP, SNMP en ARP.
- Het heeft een mobielvriendelijke web-UI, met aanpasbare dashboards.
- Ondersteunt een Unix-agent.
- Ondersteunt horizontale schaalbaarheid om mee te groeien met uw netwerk.
- Ondersteunt een zeer flexibel en aanpasbaar waarschuwingssysteem; stuurt meldingen via e-mail, irc, slack en meer.
- Ondersteunt een API voor het beheren, grafieken maken en gegevens ophalen van uw systeem.
- Biedt een verkeersfacturatiesysteem.
- Ondersteunt ook Android- en iOS-apps met kernfunctionaliteiten.
- Ondersteunt integratie met NfSen, collectd, SmokePing, RANCID en Oxidized.
- Ondersteunt meerdere authenticatiemethoden zoals MySQL, HTTP, LDAP, Radius en Active Directory.
- Staat automatische updates en vele andere functies toe.
Een online demo is beschikbaar om te proberen voordat u LibreNMS installeert op Linux-systemen.
Demo URL: https://demo.librenms.org/ Username: demo Password: demo
Testomgeving:
In deze tutorial zullen we leren hoe we het LibreNMS Network Monitoring Tool kunnen installeren op een vers geïnstalleerde Ubuntu of CentOS Linux (dezelfde instructies werken ook op Debian en op op RHEL gebaseerde distributies).
LET OP: Alle instructies in dit artikel moeten worden uitgevoerd als de root gebruiker, als je dat niet bent, gebruik dan het sudo commando om rootgebruikersrechten te verkrijgen.
Stap 1: Vereiste pakketten installeren
1. Begin eerst met het installeren van alle vereiste pakketten met behulp van de standaard pakketbeheerder zoals getoond.
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, zullen de nginx, php-fpm, mariadb– en snmp-services worden gestart en ingeschakeld om automatisch te starten bij het opstarten (dit is normaal gesproken het geval bij Ubuntu), anders kun je de onderstaande commando’s 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: LibreNMS Monitoring Tool installeren
3. Vervolgens maakt u een systeemgebruiker genaamd librenms, met het useradd commando; waarbij de -M
vlag het maken van de gebruikers thuismap uitschakelt, en -r
het maken van een systeemaccount inschakelt. Voeg vervolgens de gebruiker librenms 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 getoond.
------------ 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 LibreNMS Database
5. Voordat u de MariaDB server kunt gaan gebruiken, moet u uw installatie beveiligen, voer het beveiligingsscript uit dat wordt meegeleverd in het binair pakket. Het zal u vragen om een rootwachtwoord in te stellen, anonieme gebruikers te verwijderen, rootaanmelding 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 ja/j
.
$ 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 een sterk/beveiligd 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 voorlopig de MySQL strict mode uit (compatibiliteit met de MySQL strict mode moet nog worden toegevoegd).
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu] # vi /etc/my.cnf [On CentOS/RHEL]
Binnen de [mysqld]
sectie voeg alstublieft het volgende toe.
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Herstart vervolgens de databaseserver 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 het php.ini
bestand in op uw huidige tijdzone, bijvoorbeeld “Africa/Kampala”, zoals getoond 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. Activeer vervolgens de mcrypt PHP-module in Ubuntu en herstart php-fpm zoals getoond.
------------ On Debian/Ubuntu ------------ $ sudo phpenmod mcrypt $ sudo systemctl restart php7.0-fpm
10. Op CentOS/RHEL moet u de volgende wijzigingen aanbrengen in het configuratiebestand van php-fpm.
# 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. Herstart de php-fpm service zoals getoond.
# 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 web-UI. Maak een .conf
bestand aan zoals getoond.
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
Voeg de volgende configuratie toe, bewerk server_name
indien nodig.
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 vervolgens het bestand op en verlaat het. Verwijder ook de standaard serverblokconfiguratie en herstart de Nginx-server.
------------ On Debian/Ubuntu ------------ $ sudo rm /etc/nginx/sites-enabled/default $ sudo systemctl restart nginx ------------ On CentOS/RHEL ------------ # systemctl restart nginx
LET OP: Op CentOS/RHEL moet u de standaard site sectie uitschakelen, als dit de enige site is die u host. Verwijder de serversectie uit het bestand /etc/nginx/nginx.conf.
14. Ook op CentOS/RHEL moet u het beleidsgereedschap voor SELinux installeren en de contexten configureren die nodig zijn door LibreNMS met de volgende commando’s.
------------ 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
aan 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 commando’s 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 je Firewall gebruikt op CentOS/RHEL, schakel dan HTTP/HTTPS toegang in via de 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
Stap 6: Configureer SNMPD voor LibreNMS
18. Gebruik nu de voorbeeld SNMP-configuratie om je configuratiebestand aan te maken en open het voor bewerking, 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
Vind de string RANDOMSTRINGGOESHERE
en verander het naar je eigen community string zoals getoond in de screenshot.

19. Download vervolgens een shell-script op je systeem, dat helpt bij het detecteren van welk besturingssysteem en als het Linux is, zal het detecteren welke Linux-distributie je 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: Maak Cron aan en Configureer Logrotate
20. Voer nu het onderstaande commando 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-logs opgenomen in /opt/librenms/logs, je moet deze logs configureren om automatisch geroteerd te worden, met behulp van het logrotate-configuratiebestand dat is meegeleverd, zoals dit.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Stel vervolgens de juiste machtigingen in op de installatierootmap van LibreNMS en 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: Toegang tot LibreNMS Web Installer
22. Gebruik vervolgens de volgende URL om toegang te krijgen tot de webinstallateur en volg de instructies op het scherm.
http://librenms.tecmint.lan/install.php
Om dit adres te laten werken op een lokale machine, moet je een lokale DNS instellen met behulp van het hosts-bestand (/etc/hosts), voor lokale domeinresolutie of testdoeleinden voordat je live gaat.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. Je ziet de installatiewelkomstpagina zoals weergegeven in de volgende schermafbeelding, klik op Volgende fase om door te gaan.

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

25. De webinstallateur zal nu beginnen met het importeren van de MySQL-database, dit zal enige tijd in beslag nemen. Let op dat het proces op bepaalde punten zal proberen te pauzeren, klik eenvoudig op Opnieuw proberen om door te gaan met het importproces.

26. Zodra de database-import is voltooid, zou je 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-mail op, en klik vervolgens op Gebruiker Toevoegen om de wijzigingen door te voeren.

28. Klik nu op het maken van de LibreNMS-configuratie voor je systeem door op Configuratie Genereren te klikken.


29. Zodra de configuratie is gegenereerd, zoals weergegeven in de vorige schermafbeelding, kopieer deze dan en sla hem op in de hoofdmap van je installatie, in een bestand genaamd /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 de webinstallateur om door te gaan met het installatieproces door op Installatie voltooien te klikken.

31. Nu is je LibreNMS-installatie voltooid, je kunt op “valideer je installatie en los eventuele problemen op” klikken, de inlogpagina zou moeten verschijnen.

32. Voer vervolgens je gebruikersreferenties in om toegang te krijgen tot de validatiepagina.

33. Tijdens het validatieproces van de installatie heeft LibreNMS twee problemen ontdekt, ten eerste zijn er geen apparaten toegevoegd (dit is op dit moment een waarschuwing), en ten tweede hebben we de juiste machtigingen niet ingesteld op het configuratiebestand (/opt/librenms/config.php) dat handmatig is toegevoegd, zoals te zien is in de onderstaande schermafbeelding.

Voer nu het volgende commando uit om de juiste machtigingen in te stellen op het configuratiebestand.
$ sudo chown -R librenms:librenms /opt/librenms/config.php
34. Om apparaten toe te voegen, ga naar: http://librenms.tecmint.lan/addhost. Nadat je apparaten hebt toegevoegd, kun je naar de startpagina gaan en verschillende dashboards toevoegen.

Dat is alles! Je kunt meer informatie vinden, inclusief installatie en setup, 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 installatiegids was, als je vragen hebt, neem dan contact met ons op via het feedbackformulier hieronder.
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/