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 SNMPtil å 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
For denne opplæringen vil vi bruke nms.example.comsom domenenavnet peker mot Vultr-forekomsten. Sørg for å erstatte alle forekomster av eksempeldomenenavnet med det faktiske.
Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere CentOS 7 . Når systemet ditt har blitt oppdatert, fortsett å installere avhengighetene.
Installer Nginx og PHP
Frontenden av LibreNMS er i utgangspunktet 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 yum -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 YUM-depot inneholder en eldre versjon av PHP.
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php72
Installer PHP versjon 7.2 sammen med modulene som kreves av LibreNMS.
sudo yum -y install php php-cli php-common php-curl php-fpm php-gd php-mcrypt php-mysql php-process php-snmp php-xml php-zip
Åpne den innlastede konfigurasjonsfilen av PHP i en editor.
sudo nano /etc/php.ini
Finn følgende linjer, avkommenter og endre verdien som vist.
;cgi.fix_pathinfo=1
memory_limit = 128M
;date.timezone =
Bruk disse verdiene i stedet, erstatt Asia/Kolkatamed din lokale tidssone.
cgi.fix_pathinfo=0
memory_limit = -1
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
Åpne nå PHP-FPM-konfigurasjonsfilen.
sudo nano /etc/php-fpm.d/www.conf
Finn følgende linje.
listen = 127.0.0.1:9000
Erstatt den med følgende linje.
listen = /var/run/php-fpm/php-fpm.sock
Som standard er PHP-FPM konfigurert for Apache-nettserverbruker. Endre brukeren til nginx.
user = nginx
group = nginx
Fjern kommentarene til følgende linjer.
listen.owner = nobody
listen.group = nobody
Lagre filen og gå ut av redigeringsprogrammet. Start PHP-FPM på nytt og aktiver den til å starte ved oppstart.
sudo systemctl restart php-fpm
sudo systemctl enable php-fpm
Angi riktig eierskap til socket-filen.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Installer MariaDB
MariaDB er en gaffel av MySQL. Legg til MariaDB-depotet i systemet ditt. Standarddepotet yuminneholder en eldre versjon av MariaDB.
echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" | sudo tee /etc/yum.repos.d/mariadb.repo
Installer MariaDB.
sudo yum -y install mariadb mariadb-server
Åpne nå MySQL-konfigurasjonsfilen.
sudo nano /etc/my.cnf
Legg til følgende linjer på slutten av blokken.
[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
sudo systemctl enable mariadb
Før du konfigurerer databasen, må du sikre MariaDB først.
sudo mysql_secure_installation
Du vil bli bedt om det gjeldende MariaDB-rotpassordet. Som standard er det ikke noe root-passord i en fersk MariaDB-installasjon. Trykk på " Enter"-tasten for å fortsette. Angi et sterkt passord for rootbrukeren av MariaDB-serveren din og svar " Y" på alle de andre spørsmålene som blir stilt. 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 librenmsog brukernavnet librenmsetter eget valg. Sørg for å endre StrongPasswordtil et veldig sterkt passord.
Installer LibreNMS
Bortsett fra avhengighetene ovenfor, trenger LibreNMS få flere avhengigheter. Installer dem ved å kjøre.
sudo yum -y install cronie fping git ImageMagick jwhois mtr MySQL-python net-snmp net-snmp-utils nmap python-memcached rrdtool
Legg til en ny uprivilegert bruker for LibreNMS-applikasjonen.
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms nginx
LibreNMS kan installeres direkte ved å klone Github-depotet.
cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms
Fiks eierskapet.
sudo chown librenms:librenms -R /opt/librenms
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 RANDOMSTRINGGOESHEREog 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 nano /etc/cron.d/librenms
Fyll filen med følgende tekst.
33 */6 * * * librenms /opt/librenms/cronic /opt/librenms/discovery-wrapper.py 1
*/5 * * * * librenms /opt/librenms/discovery.php -h new >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/cronic /opt/librenms/poller-wrapper.py 16
15 0 * * * librenms /opt/librenms/daily.sh >> /dev/null 2>&1
* * * * * librenms /opt/librenms/alerts.php >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/poll-billing.php >> /dev/null 2>&1
01 * * * * librenms /opt/librenms/billing-calculate.php >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/check-services.php >> /dev/null 2>&1
Start cron daemon-tjenesten på nytt.
sudo systemctl restart crond
Sett opp logrotateslik 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:nginx /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.
Installer Certbot, som er klientapplikasjonen for Let's Encrypt CA.
sudo yum -y install certbot
Før du kan be om sertifikatene, må du tillate port 80og 443, eller standard HTTPog HTTPStjenester gjennom brannmuren.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
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 /usr/share/nginx/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.pemog 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/conf.d/nms.example.com.conf
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:/var/run/php-fpm/php-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Erstatt nms.example.commed ditt faktiske domene i konfigurasjonen ovenfor.
Start Nginx på nytt.
sudo chown nginx:nginx /var/lib/php/session
sudo systemctl restart nginx
Installasjon ved hjelp av WebUI
For å fullføre installasjonen, åpne https://nms.example.compå 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 vil 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å CentOS 7 Overvåk enhetene dine ved å bruke LibreNMS på CentOS 7]()
Når enheten er lagt til, kan du se detaljene ved å gå til " Devices"-fanen.
![Overvåk enhetene dine ved å bruke LibreNMS på CentOS 7 Overvåk enhetene dine ved å bruke LibreNMS på CentOS 7]()
På samme måte kan du legge til flere enheter i LibreNMS-applikasjonen for "døgnet rundt" overvåking.