LibreNMS - Et fuldt udstyret netværksovervågningsværktøj til Linux


LibreNMS er et open source, kraftfuldt og funktionsrige automatisk opdagende PHP-baseret netværksovervågningssystem, der bruger SNMP-protokollen. Det understøtter en bred vifte af operativsystemer, herunder Linux, FreeBSD samt netværksenheder, herunder Cisco, Juniper, Brocade, Foundry, HP og mange flere.

  1. Det opdager automatisk et helt netværk ved hjælp af disse protokoller: CDP, FDP, LLDP, OSPF, BGP, SNMP og ARP.
  2. Det har et mobilvenligt webgrænseflade med dashboards, der kan tilpasses.
  3. Understøtter en Unix-agent.
  4. Understøtter vandret skalering for at udvide med dit netværk.
  5. Understøtter et meget fleksibelt og tilpassbart alarmsystem; sender underretninger via e-mail, irc, slap og mere.
  6. Understøtter en API til styring, tegning og hentning af data fra dit system.
  7. Tilbyder et trafikfaktureringssystem.
  8. Understøtter også Android- og iOS-apps, der tilbyder kernefunktioner.
  9. Understøtter integration med NfSen, collectd, SmokePing, RANCID og Oxidized.
  10. Understøtter flere godkendelsesmetoder såsom MySQL, HTTP, LDAP, Radius og Active Directory.
  11. Giver mulighed for automatisk opdatering og mange andre funktioner.

En online demo er tilgængelig for dig at prøve, før du installerer LibreNMS på Linux-systemer.

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

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

I denne vejledning lærer vi, hvordan du installerer LibreNMS Network Monitoring Tool på et nyinstalleret Ubuntu eller CentOS Linux (samme instruktioner fungerer også på Debian- og RHEL-baserede distributioner).

BEMÆRK: Alle disse instruktioner i denne artikel skal køres som root-bruger, hvis du ikke er det, skal du bruge sudo-kommandoen for at få root-brugerrettigheder.

Trin 1: Installer påkrævede pakker

1. Start først med at installere alle de krævede pakker ved hjælp af standardpakkehåndteringen som vist.

$ 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. Når alle pakkerne er installeret, startes nginx-, php-fpm-, mariadb- og snmp-tjenester og aktiveres til automatisk start ved opstartstid (dette er normalt tilfældet med Ubuntu), ellers kan du køre nedenstående kommandoer til start og aktiver dem.

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

Trin 2: Installer LibreNMS Monitoring Tool

3. Opret derefter en systembruger kaldet librenms med kommandoen useradd; hvor -M flag deaktiverer oprettelse af brugerens hjemmekatalog, og -r muliggør oprettelse af en systemkonto. Føj derefter librenms-brugeren til gruppen www-data (på Ubuntu) eller nginx (på CentOS) som følger.

------------ 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. Installer derefter LibreNMS via komponistkommando som vist.

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

Trin 3: Opret LibreNMS-database

5. Inden du kan begynde at bruge MariaDB-serveren, skal du sikre din installation, køre det sikkerhedsscript, der findes i den binære pakke. Det beder dig om at indstille en root-adgangskode, fjerne anonyme brugere, deaktivere rod-login eksternt og fjerne testdatabase.

Du kan starte scriptet ved at udstede kommandoen nedenfor og besvare alle spørgsmål med ja/y .

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

6. Log derefter ind i MariaDB-databasen for at oprette en database til LibreNMS (husk at bruge en stærk/sikker adgangskode i et produktionsmiljø).

$ 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. Derefter skal du deaktivere MySQL-streng tilstand for nu (kompatibilitet med MySQL-streng tilstand er endnu ikke tilføjet).

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

I afsnittet [mysqld] skal du tilføje.

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

Genstart derefter databaseserveren for at foretage ændringerne.

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

Trin 4: Konfigurer og start PHP-FPM

8. Indstil derefter din date.timezone i php.ini til din aktuelle tidszone, for eksempel “Africa/Kampala”, som vist i det følgende skærmbillede.

------------ 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. Aktivér derefter mcrypt PHP-modulet i Ubuntu, og genstart php-fpm som vist.

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

10. På CentOS/RHEL skal du foretage følgende ændringer i php-fpm-konfigurationsfilen.

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

Foretag følgende ændringer.

;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. Genstart php-fpm-tjenesten som vist.

# systemctl restart php-fpm

Trin 5: Konfigurer Nginx til LibreNMS

12. I dette trin skal du konfigurere en Nginx-serverblok til librenms for at få adgang til web-UI. Opret en .conf -fil til den som vist.

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

Tilføj følgende konfiguration, rediger servernavn efter behov.

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. Gem og afslut derefter filen. Fjern også standardserverblokkonfigurationen, og genstart Nginx-serveren.

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

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

BEMÆRK: På CentOS/RHEL skal du deaktivere standardafsnittet, hvis dette er det eneste websted, du er vært for. Slet serversektionen fra /etc/nginx/nginx.conf-filen.

14. Også på CentOS/RHEL skal du installere politikværktøjet til SELinux og konfigurere de sammenhænge, LibreNMS har brug for, ved hjælp af følgende kommandoer.

------------ 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. Tillad fping ved at oprette filen http_fping.tt med følgende indhold.

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. Kør derefter disse kommandoer.

------------ 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. Hvis du bruger Firewall på CentOS/RHEL, skal du aktivere HTTP/HTTPS-adgang via 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

Trin 6: Konfigurer SNMPD til LibreNMS

18. Brug nu SNMP-eksempelkonfigurationen til at oprette din konfigurationsfil og åbne den til redigering som følger.

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

Find strengen RANDOMSTRINGGOESHERE og skift den til din egen community-streng som vist på skærmbilledet.

19. Dernæst skal du downloade et shell-script på dit system, som hjælper med at registrere hvilket operativsystem, og hvis det er Linux, vil det registrere hvilken Linux-distribution, du bruger:

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

Trin 7: Opret Cron og konfigurer Logrotate

20. Kør nu kommandoen nedenfor for at konfigurere et cron-job til LibreNMS.

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

21. Dernæst registreres alle LibreNMS-logfiler i/opt/librenms/logs, du skal muligvis konfigurere disse logfiler, så de automatisk roteres ved hjælp af den medfølgende logrotate-konfigurationsfil, som denne.

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

Indstil derefter de relevante tilladelser til LibreNMS installations rodmappe og logfiler.

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

Trin 8: Få adgang til LibreNMS Web Installer

22. Brug derefter følgende URL til at få adgang til webinstallatøren og følg instruktionerne på skærmen.

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

For at denne adresse skal fungere på en lokal maskine, skal du konfigurere en lokal DNS ved hjælp af værtsfilen (/etc/hosts ) til lokal domæneopløsning eller testformål, før du går live.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Du vil se installationsvelkomstsiden som vist i det følgende skærmbillede. Klik på Næste trin for at fortsætte.

24. Indtast derefter indstillingerne (databasehost, port, brugernavn og brugeradgangskode) for LibreNMS-databasen, og klik på Næste trin for at fortsætte.

25. Webinstallatøren begynder nu at importere MySQL-databasen, det vil tage noget tid. Bemærk, at processen vil forsøge at sætte en pause på bestemte punkter, skal du blot klikke på Prøv igen for at fortsætte med importprocessen.

26. Når importen af database er afsluttet, skal du se meddelelsen "Database er opdateret!", Som vist på skærmbilledet nedenfor. Klik derefter på Gå til Tilføj bruger for at fortsætte.

27. Dernæst tilføj en LibreNMS-bruger, angiv brugernavn, adgangskode og e-mail, og klik derefter på Tilføj bruger for at foretage ændringerne.

28. Klik nu på Opret LibreNMS-konfigurationen til dit system ved at klikke på Generer Config.

29. Når konfigurationen er genereret, som vist i forrige skærmbillede, skal du kopiere den og gemme den i rodmappen på din installation i en fil kaldet /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. Gem og luk filen. Gå derefter tilbage til webinstallatøren for at fortsætte med installationsprocessen ved at klikke på Afslut installation.

31. Nu er din LibreNMS installation færdig, du kan klikke på “valider din installation og rette eventuelle problemer”, login-siden skal vises.

32. Indtast derefter dine brugeroplysninger for at få adgang til valideringssiden.

33. Fra installationsvalideringsprocessen har LibreNMS opdaget to problemer, det ene er, at enheder ikke er tilføjet (dette er en advarsel for nu), og for det andet har vi ikke indstillet den passende tilladelse til konfigurationsfilen (/ opt/librenms /config.php), som blev tilføjet manuelt, som vist på skærmbilledet nedenfor.

Kør nu følgende kommando for at indstille den korrekte tilladelse til konfigurationsfilen.

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

34. Gå til: http: //librenms.tecmint.lan/addhost for at tilføje enheder. Når du har tilføjet enheder, kan du gå til startsiden og tilføje forskellige dashboards.

Det er det! Du kan finde flere oplysninger, herunder installation og opsætning i LibreNMS-dokumentationen på https://docs.librenms.org/.

LibreNMS er et fuldt udstyret netværksovervågningssystem, der understøtter en række netværkshardware. Vi håber, at dette var en klar installationsvejledning. Hvis du har spørgsmål, kan du kontakte os via feedbackformularen nedenfor.