Forutsetninger
Installer Nginx og PHP
Installer MariaDB
Installer LibreNMS
SSL og Nginx VHost konfigurasjoner
Installasjon ved hjelp av WebUI
LibreNMS er et fullverdig åpen kildekode-nettverksovervåkingssystem. Den brukes SNMP til å hente data fra forskjellige enheter. En rekke enheter støttes i LibreNMS som Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP og mange flere. Den støtter flere autentiseringsmekanismer og støtter tofaktorautentisering. Den har et tilpassbart varslingssystem som kan varsle nettverksadministratoren via e-post, IRC eller slack.
Forutsetninger
- En Vultr Ubuntu 16.04-serverforekomst.
- En sudo-bruker .
For denne opplæringen vil vi bruke nms.example.com som domenenavnet peker mot Vultr-forekomsten. Sørg for å erstatte alle forekomster av eksempeldomenenavnet med det faktiske.
Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere Ubuntu 16.04 . Når systemet ditt har blitt oppdatert, fortsett å installere avhengighetene.
Installer Nginx og PHP
Frontenden av LibreNMS er skrevet i PHP, så vi må installere en webserver og PHP. I denne opplæringen vil vi installere Nginx sammen med PHP 7.2 for å oppnå maksimal sikkerhet og ytelse.
Installer Nginx.
sudo apt -y install nginx
Start Nginx og la den starte ved oppstart automatisk.
sudo systemctl start nginx
sudo systemctl enable nginx
Legg til og aktiver Remi-depotet, ettersom standard apt-repository inneholder en eldre versjon av PHP.
sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update
Installer PHP versjon 7.2 sammen med modulene som kreves av LibreNMS.
sudo apt -y install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mysql php7.2-snmp php7.2-mbstring php7.2-xml php7.2-zip zip unzip
Åpne den innlastede konfigurasjonsfilen i et redigeringsprogram.
sudo nano /etc/php/7.2/fpm/php.ini
Finn følgende linjer.
;cgi.fix_pathinfo=1
;date.timezone =
Fjern kommentarer og bruk disse verdiene i stedet, erstatt Asia/Kolkata med din lokale tidssone.
cgi.fix_pathinfo=0
date.timezone = Asia/Kolkata
Du må også endre systemets tidssone ved å kjøre følgende kommando.
sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
Start PHP-FPM på nytt.
sudo systemctl restart php7.2-fpm
Installer MariaDB
MariaDB er en åpen kildekode-gaffel av MySQL. Legg til MariaDB-depotet i systemet ditt, da standard Ubuntu-depotet inneholder en eldre versjon av MariaDB.
sudo apt-key adv --yes --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.biz.net.id/repo/10.2/ubuntu xenial main'
sudo apt update
Installer MariaDB. Under installasjonen vil installasjonsprogrammet be om passordet til MySQL- rootbrukeren. Oppgi et sterkt passord.
sudo apt -y install mariadb-server
Før vi begynner å bruke MariaDB, må vi justere konfigurasjonen litt. Åpne konfigurasjonsfilen.
sudo nano /etc/mysql/conf.d/mariadb.cnf
Legg til følgende kode på slutten av filen.
[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Start MariaDB på nytt og la den starte automatisk ved oppstart.
sudo systemctl restart mariadb.service
sudo systemctl enable mariadb.service
Før du konfigurerer databasen, må du sikre MariaDB-forekomsten.
sudo mysql_secure_installation
Du vil bli bedt om det gjeldende MariaDB root-passordet, og deretter bli bedt om å endre rootpassordet. Siden vi allerede har satt et sterkt passord for rootbrukeren under installasjonen, hopp over det ved å svare " N". For alle andre spørsmål, svar " Y". Spørsmålene som stilles er selvforklarende.
Logg inn på MySQL-skallet som root.
mysql -u root -p
Oppgi passordet for MariaDB-rotbrukeren for å logge på. Kjør følgende spørringer for å opprette en database og en databasebruker for LibreNMS-installasjonen.
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Du kan erstatte databasenavnet librenms og brukernavnet librenms etter eget valg. Sørg for å endre StrongPassword til et veldig sterkt passord.
Installer LibreNMS
Bortsett fra avhengighetene ovenfor, trenger LibreNMS få flere avhengigheter.
sudo apt -y install fping git imagemagick jwhois mtr graphviz nmap python-memcache python-mysqldb rrdtool snmp snmpd whois composer
Legg til en ny uprivilegert bruker for LibreNMS-applikasjonen.
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -aG www-data librenms
LibreNMS kan installeres direkte ved å klone Github-depotet.
cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms
Endre eierskapet.
sudo chown librenms:librenms -R /opt/librenms
Installer PHP-avhengighetene.
cd /opt/librenms
sudo su librenms -c "composer install"
LibreNMS er avhengig av SNMP for mange oppgaver. Siden vi allerede har installert SNMP, kopier eksempelkonfigurasjonsfilen til plasseringen.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Åpne konfigurasjonsfilen i redigeringsprogrammet.
sudo nano /etc/snmp/snmpd.conf
Finn denne linjen.
com2sec readonly default RANDOMSTRINGGOESHERE
Rediger teksten RANDOMSTRINGGOESHERE og erstatt fellesskapsstrengen med hvilken som helst streng du ønsker. For eksempel.
com2sec readonly default my-org
Husk strengen siden den vil bli nødvendig senere når vi legger til den første SNMP-enheten.
SNMP trenger også informasjon om distribusjonsversjonen. Last ned og installer skriptet for å finne distribusjonsversjonen.
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
Start SNMP-demontjenesten og la den starte automatisk ved oppstart.
sudo systemctl enable snmpd
sudo systemctl restart snmpd
Nå må du legge til noen crontab-oppføringer for å kjøre de planlagte oppgavene. Opprett en ny cron-jobbfil.
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
Start cron daemon-tjenesten på nytt.
sudo systemctl restart cron
Sett opp logrotate slik at loggfilene automatisk oppdateres over tid.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Til slutt, angi riktig eierskap og tillatelser.
sudo chown -R librenms:www-data /opt/librenms
sudo chmod g+w -R /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
SSL og Nginx VHost konfigurasjoner
Pålogginger og annen informasjon som sendes gjennom nettgrensesnittet til LibreNMS er ikke sikret dersom tilkoblingen ikke er kryptert med SSL. Vi vil konfigurere Nginx til å bruke SSL generert med Let's Encrypt gratis SSL.
Legg til Certbot-depotet.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Installer Certbot, som er klientapplikasjonen for Let's Encrypt CA.
sudo apt -y install certbot
Merk : For å få sertifikater fra Let's Encrypt CA, må domenet som sertifikatene skal genereres for, peke mot serveren. Hvis ikke, gjør de nødvendige endringene i DNS-postene til domenet og vent til DNS-en forplanter seg før du foretar sertifikatforespørselen igjen. Certbot sjekker domeneautoriteten før sertifikatene leveres.
Generer SSL-sertifikatene.
sudo certbot certonly --webroot -w /var/www/html -d nms.example.com
De genererte sertifikatene vil sannsynligvis bli lagret i /etc/letsencrypt/live/nms.example.com/katalogen. SSL-sertifikatet vil bli lagret som fullchain.pem og privat nøkkel vil bli lagret som privkey.pem.
La oss kryptere sertifikater utløper om 90 dager, derfor anbefales det å sette opp automatisk fornyelse for sertifikatene ved å bruke en cron-jobb.
Åpne cron-jobbfilen.
sudo crontab -e
Legg til følgende linje på slutten av filen.
30 5 * * 1 /usr/bin/certbot renew --quiet
Ovennevnte cron-jobb vil kjøre hver mandag kl. 05.30 lokal tid. Hvis sertifikatet skal utløpe, vil det automatisk bli fornyet.
Opprett en ny virtuell vert.
sudo nano /etc/nginx/sites-available/librenms
Fyll ut filen.
server {
listen 80;
server_name nms.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name nms.example.com;
ssl_certificate /etc/letsencrypt/live/nms.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nms.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /opt/librenms/logs/librenms.nginx.access.log;
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:/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Erstatt nms.example.com med ditt faktiske domene i konfigurasjonen ovenfor.
Aktiver den nyopprettede konfigurasjonen.
sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/librenms
Start Nginx på nytt.
sudo systemctl restart nginx
Installasjon ved hjelp av WebUI
For å fullføre installasjonen, åpne https://nms.example.com på favorittnettleseren din. Du vil se at kravene er oppfylt. Oppgi databasedetaljer og opprett en ny administrativ konto. Når den er installert, vil du få en melding om å validere installasjonen. Klikk på lenken og logg på med administratorkontoen. Du bør se at alt unntatt " Poller" har en " Ok"-status.

Klikk nå på lenken for å legge til en enhet. På " Add Device"-grensesnittet, oppgi vertsnavnet som den lokale verten og la alt være som det er. Oppgi fellesskapets streng i fellesskapsfeltet. Det må være nøyaktig samme streng som du har oppgitt i snmpd.confunder konfigurasjonen av SNMP.
![Overvåk enhetene dine ved å bruke LibreNMS på Ubuntu 16.04 Overvåk enhetene dine ved å bruke LibreNMS på Ubuntu 16.04]()
Når enheten er lagt til, kan du se detaljene ved å gå til " Devices"-fanen. På samme måte kan du legge til flere enheter i LibreNMS-applikasjonen for "døgnet rundt" overvåking.