LibreNMS - Et fullt utstyrt nettverksovervåkingsverktøy for Linux


LibreNMS er et åpen kildekode, kraftig og funksjonsrikt, automatisk oppdagende PHP-basert nettverksovervåkingssystem som bruker SNMP-protokollen. Den støtter et bredt spekter av operativsystemer inkludert Linux, FreeBSD, samt nettverksenheter inkludert Cisco, Juniper, Brocade, Foundry, HP og mange flere.

  1. Den oppdager automatisk et helt nettverk ved å bruke disse protokollene: CDP, FDP, LLDP, OSPF, BGP, SNMP og ARP.
  2. Den har et mobilvennlig nettgrensesnitt med tilpassbare dashboards.
  3. Støtter en Unix-agent.
  4. Støtter horisontal skalering for å utvide med nettverket ditt.
  5. Støtter et svært fleksibelt og tilpassbart varslingssystem; sender varsler via e-post, irc, slack og mer.
  6. Støtter et API for å administrere, tegne grafer og hente data fra systemet ditt.
  7. Tilbyr et trafikkfaktureringssystem.
  8. Støtter også Android- og iOS-apper som tilbyr kjernefunksjoner.
  9. Støtter integrasjon med NfSen, collectd, SmokePing, RANCID og Oxidized.
  10. Støtter flere autentiseringsmetoder som MySQL, HTTP, LDAP, Radius og Active Directory.
  11. Tillater automatisk oppdatering og mange andre funksjoner.

En online demo er tilgjengelig for deg å 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 opplæringen lærer vi hvordan du installerer LibreNMS Network Monitoring Tool på en nyinstallert Ubuntu eller CentOS Linux (samme instruksjoner fungerer også på Debian- og RHEL-baserte distribusjoner).

MERK: Alle disse instruksjonene i denne artikkelen bør kjøres som root-bruker, hvis du ikke er det, bruk sudo-kommandoen for å få root-brukerprivilegier.

Trinn 1: Installer nødvendige pakker

1. Start først med å installere alle nødvendige pakker ved å bruke standard pakkebehandling 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 pakkene er installert, vil nginx, php-fpm, mariadb og snmp-tjenestene startes og aktiveres for å automatisk starte ved oppstart (dette er vanligvis tilfellet med Ubuntu), ellers kan du kjøre kommandoene nedenfor for å starte og aktivere 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

Trinn 2: Installer LibreNMS overvåkingsverktøy

3. Deretter oppretter du en systembruker kalt librenms, med kommandoen useradd; der -M-flagget deaktiverer opprettelse av brukerens hjemmekatalog, og -r muliggjør opprettelse av en systemkonto. Legg deretter librenms-brukeren 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 deretter 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

Trinn 3: Opprett LibreNMS-database

5. Før du kan begynne å bruke MariaDB-serveren, må du sikre installasjonen din, kjøre sikkerhetsskriptet som følger med i binærpakken. Den vil be deg angi et root-passord, fjerne anonyme brukere, deaktivere root-pålogging eksternt og fjerne testdatabase.

Du kan starte skriptet ved å gi kommandoen nedenfor og svare på alle spørsmål med yes/y.

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

6. Logg deretter på MariaDB database for å lage en database for LibreNMS (husk å bruke et sterkt/sikkert passord i et produksjonsmiljø).

$ 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. Etterpå, deaktiver MySQL streng modus for nå (kompatibilitet med MySQL streng modus er ennå ikke lagt til).

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

Legg til i [mysqld]-delen.

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

Start deretter databaseserveren på nytt for å utføre endringene.

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

Trinn 4: Konfigurer og start PHP-FPM

8. Deretter setter du date.timezone i php.ini til din nåværende tidssone, for eksempel \Afrika/Kampala, som vist i følgende skjermbilde.

------------ 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. Aktiver deretter mcrypt PHP-modulen i Ubuntu og start php-fpm på nytt som vist.

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

10. På CentOS/RHEL må du gjøre følgende endringer i php-fpm konfigurasjonsfilen.

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

Gjør følgende endringer.

;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 php-fpm-tjenesten på nytt som vist.

# systemctl restart php-fpm

Trinn 5: Konfigurer Nginx for LibreNMS

12. I dette trinnet må du konfigurere en Nginx-serverblokk for librenmer for å få tilgang til web-UI. Opprett en .conf-fil for den som vist.

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

Legg til følgende konfigurasjon, rediger server_name etter 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. Lagre og avslutt deretter filen. Fjern også standard serverblokkkonfigurasjon og start Nginx-serveren på nytt.

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

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

MERK: På CentOS/RHEL må du deaktivere standardsidedelen, hvis dette er det eneste nettstedet du er vert for. Slett serverdelen fra filen /etc/nginx/nginx.conf.

14. Også på CentOS/RHEL må du installere policyverktøyet for SELinux og konfigurere kontekstene som trengs av LibreNMS ved å bruke 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. Tillat fping ved å lage filen http_fping.tt med følgende innhold.

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. Kjør deretter disse kommandoene.

------------ 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 bruker brannmur på CentOS/RHEL, aktiver HTTP/HTTPS-tilgang via brannmur.

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

Trinn 6: Konfigurer SNMPD for LibreNMS

18. Bruk nå eksempel snmp-konfigurasjonen for å lage konfigurasjonsfilen og åpne den for 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

Finn strengen RANDOMSTRINGGOESHERE og endre den til din egen fellesskapsstreng som vist på skjermbildet.

19. Last deretter ned et shell-script på systemet ditt, som hjelper deg med å oppdage hvilket OS og hvis det er Linux, vil det oppdage hvilken Linux-distribusjon du bruker:

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

Trinn 7: Opprett Cron og konfigurer Logrotate

20. Kjør nå kommandoen nedenfor for å sette opp en cron-jobb for LibreNMS.

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

21. Deretter blir alle LibreNMS-logger registrert i /opt/librenms/logs, du kan trenge å konfigurere disse loggene til å bli automatisk rotert, ved å bruke logrotate-konfigurasjonsfilen som følger med, slik som dette.

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

Sett deretter de riktige tillatelsene på LibreNMS installasjonsrotkatalog og loggfiler.

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

Trinn 8: Få tilgang til LibreNMS Web Installer

22. Bruk deretter følgende URL for å få tilgang til nettinstallasjonsprogrammet og følg instruksjonene på skjermen.

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

For at denne adressen skal fungere på en lokal maskin, må du sette opp en lokal DNS ved å bruke vertsfilen (/etc/hosts), for lokal domeneopplø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 velkomstsiden for installasjonen som vist i følgende skjermbilde, klikk på Neste trinn for å fortsette.

24. Angi deretter innstillingene (databasevert, port, brukernavn og brukerpassord) for LibreNMS-databasen og klikk på Neste trinn for å fortsette.

25. Nettinstallasjonsprogrammet vil nå begynne å importere MySQL-databasen, dette vil ta litt tid. Merk at prosessen vil prøve å stoppe på visse punkter, klikk på Prøv på nytt for å fortsette med importprosessen.

26. Når databaseimporten er fullført, skal du se meldingen «Databasen er oppdatert!», som vist på skjermbildet nedenfor. Klikk deretter på Gå til Legg til bruker for å fortsette.

27. Legg deretter til en LibreNMS-bruker, spesifiser brukernavn, passord og e-post, og klikk deretter på Legg til bruker for å utføre endringene.

28. Klikk nå på opprett LibreNMS-konfigurasjonen for systemet ditt, ved å klikke Generer konfig.

29. Når konfigurasjonen er generert, som vist i forrige skjermbilde, kopierer du den og lagrer den i rotkatalogen til installasjonen, i en fil som heter /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. Lagre og lukk filen. Gå deretter tilbake til nettinstallasjonsprogrammet for å fortsette med installasjonsprosessen, ved å klikke på Fullfør installasjon.

31. Nå er LibreNMS-installasjonen fullført, du kan klikke på \valider installasjonen og fiks eventuelle problemer, påloggingssiden skal vises.

32. Deretter skriver du inn brukerlegitimasjonen din for å få tilgang til valideringssiden.

33. Fra installasjonsvalideringsprosessen har LibreNMS oppdaget to problemer, det ene er at enheter ikke er lagt til (dette er en advarsel for nå), og for det andre har vi ikke satt riktig tillatelse på konfigurasjonsfilen (/opt/librenms /config.php) som ble lagt til manuelt, som vist på skjermbildet nedenfor.

Kjør nå følgende kommando for å angi riktig tillatelse på konfigurasjonsfilen.

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

34. For å legge til enheter, gå til: http://librenms.tecmint.lan/addhost. Etter å ha lagt til enheter kan du gå til hjemmesiden og legge til ulike dashboards.

Det er det! Du kan finne mer informasjon, inkludert installasjon og oppsett i LibreNMS-dokumentasjonen på https://docs.librenms.org/.

LibreNMS er et fullt utstyrt nettverksovervåkingssystem som støtter en rekke nettverksmaskinvare. Vi håper at dette var en klar installasjonsveiledning, hvis du har spørsmål, kontakt oss via tilbakemeldingsskjemaet nedenfor.