Προαπαιτούμενα
Εγκαταστήστε το Nginx και την PHP
Εγκαταστήστε το MariaDB
Εγκαταστήστε το LibreNMS
Διαμορφώσεις SSL και Nginx VHost
Εγκατάσταση με χρήση WebUI
Το LibreNMS είναι ένα σύστημα παρακολούθησης δικτύου ανοιχτού κώδικα με πλήρεις δυνατότητες. Χρησιμοποιείται SNMP για τη λήψη δεδομένων από διαφορετικές συσκευές. Στο LibreNMS υποστηρίζονται διάφορες συσκευές όπως Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP και πολλές άλλες. Υποστηρίζει πολλαπλούς μηχανισμούς ελέγχου ταυτότητας και υποστηρίζει έλεγχο ταυτότητας δύο παραγόντων. Διαθέτει ένα προσαρμόσιμο σύστημα ειδοποίησης που μπορεί να ειδοποιεί τον διαχειριστή του δικτύου μέσω email, IRC ή slack.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr Ubuntu 16.04.
- Ένας χρήστης sudo .
Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε nms.example.com ως όνομα τομέα που δείχνει προς την παρουσία του Vultr. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του παραδείγματος ονόματος τομέα με το πραγματικό.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το Ubuntu 16.04 . Αφού ενημερωθεί το σύστημά σας, προχωρήστε στην εγκατάσταση των εξαρτήσεων.
Εγκαταστήστε το Nginx και την PHP
Το μπροστινό μέρος του LibreNMS είναι γραμμένο σε PHP, επομένως θα χρειαστεί να εγκαταστήσουμε έναν διακομιστή web και PHP. Σε αυτό το σεμινάριο, θα εγκαταστήσουμε το Nginx μαζί με την PHP 7.2 για να αποκτήσουμε μέγιστη ασφάλεια και απόδοση.
Εγκαταστήστε το Nginx.
sudo apt -y install nginx
Ξεκινήστε το Nginx και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start nginx
sudo systemctl enable nginx
Προσθέστε και ενεργοποιήστε το αποθετήριο Remi, καθώς το προεπιλεγμένο αποθετήριο apt περιέχει μια παλαιότερη έκδοση της PHP.
sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update
Εγκαταστήστε την έκδοση 7.2 της PHP μαζί με τις λειτουργικές μονάδες που απαιτούνται από το 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
Ανοίξτε το φορτωμένο αρχείο διαμόρφωσης σε ένα πρόγραμμα επεξεργασίας.
sudo nano /etc/php/7.2/fpm/php.ini
Βρείτε τις παρακάτω γραμμές.
;cgi.fix_pathinfo=1
;date.timezone =
Καταργήστε το σχόλιο και χρησιμοποιήστε αυτές τις τιμές, αντικαταστήστε τις Asia/Kolkata με την τοπική ζώνη ώρας σας.
cgi.fix_pathinfo=0
date.timezone = Asia/Kolkata
Θα χρειαστεί επίσης να αλλάξετε τη ζώνη ώρας του συστήματος εκτελώντας την ακόλουθη εντολή.
sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
Επανεκκινήστε το PHP-FPM.
sudo systemctl restart php7.2-fpm
Εγκαταστήστε το MariaDB
Το MariaDB είναι ένα fork ανοιχτού κώδικα της MySQL. Προσθέστε το αποθετήριο MariaDB στο σύστημά σας, καθώς το προεπιλεγμένο αποθετήριο του Ubuntu περιέχει μια παλαιότερη έκδοση του 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
Εγκαταστήστε το MariaDB. Κατά την εγκατάσταση, το πρόγραμμα εγκατάστασης θα ζητήσει τον κωδικό πρόσβασης του rootχρήστη MySQL . Δώστε έναν ισχυρό κωδικό πρόσβασης.
sudo apt -y install mariadb-server
Πριν αρχίσουμε να χρησιμοποιούμε το MariaDB, θα χρειαστεί να τροποποιήσουμε λίγο τη διαμόρφωση. Ανοίξτε το αρχείο ρυθμίσεων.
sudo nano /etc/mysql/conf.d/mariadb.cnf
Προσθέστε τον ακόλουθο κώδικα στο τέλος του αρχείου.
[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Επανεκκινήστε το MariaDB και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl restart mariadb.service
sudo systemctl enable mariadb.service
Πριν ρυθμίσετε τις παραμέτρους της βάσης δεδομένων, θα χρειαστεί να ασφαλίσετε το στιγμιότυπο MariaDB.
sudo mysql_secure_installation
Θα σας ζητηθεί ο τρέχων κωδικός πρόσβασης root MariaDB και, στη συνέχεια, θα σας ζητηθεί να αλλάξετε τον rootκωδικό πρόσβασης. Επειδή έχουμε ήδη ορίσει έναν ισχυρό κωδικό πρόσβασης για τον rootχρήστη κατά την εγκατάσταση, παραλείψτε τον απαντώντας " N". Για όλες τις άλλες ερωτήσεις, απαντήστε " Y". Οι ερωτήσεις που τίθενται είναι αυτονόητες.
Συνδεθείτε στο κέλυφος της MySQL ως root.
mysql -u root -p
Εισαγάγετε τον κωδικό πρόσβασης στον χρήστη root του MariaDB για να συνδεθεί. Εκτελέστε τα ακόλουθα ερωτήματα για να δημιουργήσετε μια βάση δεδομένων και έναν χρήστη βάσης δεδομένων για την εγκατάσταση του LibreNMS.
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;
Μπορείτε να αντικαταστήσετε το όνομα της βάσης δεδομένων librenms και το όνομα χρήστη librenms σύμφωνα με την επιλογή σας. Βεβαιωθείτε ότι έχετε αλλάξει StrongPassword σε έναν πολύ ισχυρό κωδικό πρόσβασης.
Εγκαταστήστε το LibreNMS
Εκτός από τις παραπάνω εξαρτήσεις, το LibreNMS χρειάζεται λίγες περισσότερες εξαρτήσεις.
sudo apt -y install fping git imagemagick jwhois mtr graphviz nmap python-memcache python-mysqldb rrdtool snmp snmpd whois composer
Προσθέστε έναν νέο μη προνομιούχο χρήστη για την εφαρμογή LibreNMS.
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -aG www-data librenms
Το LibreNMS μπορεί να εγκατασταθεί απευθείας κλωνοποιώντας το αποθετήριο Github του.
cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms
Αλλάξτε την ιδιοκτησία.
sudo chown librenms:librenms -R /opt/librenms
Εγκαταστήστε τις εξαρτήσεις PHP.
cd /opt/librenms
sudo su librenms -c "composer install"
Το LibreNMS βασίζεται στο SNMP για πολλές εργασίες. Εφόσον έχουμε ήδη εγκαταστήσει το SNMP, αντιγράψτε το παράδειγμα αρχείου ρυθμίσεων στη θέση του.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Ανοίξτε το αρχείο ρυθμίσεων στο πρόγραμμα επεξεργασίας.
sudo nano /etc/snmp/snmpd.conf
Βρείτε αυτή τη γραμμή.
com2sec readonly default RANDOMSTRINGGOESHERE
Επεξεργαστείτε το κείμενο RANDOMSTRINGGOESHERE και αντικαταστήστε τη συμβολοσειρά κοινότητας με οποιαδήποτε συμβολοσειρά της επιλογής σας. Για παράδειγμα.
com2sec readonly default my-org
Θυμηθείτε τη συμβολοσειρά καθώς θα απαιτηθεί αργότερα όταν προσθέσουμε την πρώτη συσκευή SNMP.
Το SNMP χρειάζεται επίσης πληροφορίες σχετικά με την έκδοση διανομής. Κατεβάστε και εγκαταστήστε το σενάριο για να βρείτε την έκδοση διανομής.
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
Ξεκινήστε την υπηρεσία δαίμονα SNMP και ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση.
sudo systemctl enable snmpd
sudo systemctl restart snmpd
Τώρα θα χρειαστεί να προσθέσετε μερικές εγγραφές crontab για να εκτελέσετε τις προγραμματισμένες εργασίες. Δημιουργήστε ένα νέο αρχείο εργασίας cron.
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
Επανεκκινήστε την υπηρεσία cron daemon.
sudo systemctl restart cron
Ρύθμιση logrotate έτσι ώστε τα αρχεία καταγραφής να ανανεώνονται αυτόματα με την πάροδο του χρόνου.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Τέλος, ορίστε την κατάλληλη ιδιοκτησία και δικαιώματα.
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 και Nginx VHost
Οι συνδέσεις και άλλες πληροφορίες που αποστέλλονται μέσω της διεπαφής ιστού του LibreNMS δεν είναι ασφαλείς εάν η σύνδεση δεν είναι κρυπτογραφημένη με SSL. Θα διαμορφώσουμε το Nginx ώστε να χρησιμοποιεί το SSL που δημιουργείται με το Let's Encrypt free SSL.
Προσθέστε το αποθετήριο Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Εγκαταστήστε το Certbot, το οποίο είναι η εφαρμογή πελάτη για το Let's Encrypt CA.
sudo apt -y install certbot
Σημείωση : Για να αποκτήσετε πιστοποιητικά από το Let's Encrypt CA, ο τομέας για τον οποίο πρόκειται να δημιουργηθούν τα πιστοποιητικά πρέπει να κατευθύνεται προς τον διακομιστή. Εάν όχι, κάντε τις απαραίτητες αλλαγές στις εγγραφές DNS του τομέα και περιμένετε να διαδοθεί το DNS προτού υποβάλετε ξανά το αίτημα πιστοποιητικού. Το Certbot ελέγχει την αρχή τομέα πριν από την παροχή των πιστοποιητικών.
Δημιουργήστε τα πιστοποιητικά SSL.
sudo certbot certonly --webroot -w /var/www/html -d nms.example.com
Τα πιστοποιητικά που δημιουργούνται είναι πιθανό να αποθηκευτούν στον /etc/letsencrypt/live/nms.example.com/κατάλογο. Το πιστοποιητικό SSL θα αποθηκευτεί ως fullchain.pem και το ιδιωτικό κλειδί θα αποθηκευτεί ως privkey.pem.
Ας κρυπτογραφήσουμε τα πιστοποιητικά λήγουν σε 90 ημέρες, επομένως συνιστάται να ρυθμίσετε την αυτόματη ανανέωση για τα πιστοποιητικά χρησιμοποιώντας μια εργασία cron.
Ανοίξτε το αρχείο εργασίας cron.
sudo crontab -e
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου.
30 5 * * 1 /usr/bin/certbot renew --quiet
Η παραπάνω εργασία cron θα εκτελείται κάθε Δευτέρα στις 5:30 π.μ. τοπική ώρα. Εάν το πιστοποιητικό πρόκειται να λήξει, θα ανανεωθεί αυτόματα.
Δημιουργήστε έναν νέο εικονικό κεντρικό υπολογιστή.
sudo nano /etc/nginx/sites-available/librenms
Συμπληρώστε το αρχείο.
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;
}
}
Αντικαταστήστε nms.example.com τον πραγματικό τομέα σας στην παραπάνω διαμόρφωση.
Ενεργοποιήστε τη διαμόρφωση που δημιουργήθηκε πρόσφατα.
sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/librenms
Επανεκκινήστε το Nginx.
sudo systemctl restart nginx
Εγκατάσταση με χρήση WebUI
Για να ολοκληρώσετε την εγκατάσταση, ανοίξτε το https://nms.example.com στο αγαπημένο σας πρόγραμμα περιήγησης. Θα δείτε ότι οι απαιτήσεις ικανοποιούνται. Δώστε τα στοιχεία της βάσης δεδομένων σας και δημιουργήστε έναν νέο λογαριασμό διαχειριστή. Μόλις εγκατασταθεί, θα λάβετε ένα μήνυμα για την επικύρωση της εγκατάστασης. Κάντε κλικ στον σύνδεσμο και συνδεθείτε χρησιμοποιώντας τον λογαριασμό διαχειριστή. Θα πρέπει να δείτε ότι όλα εκτός από το " Poller" έχουν κατάσταση " Ok".

Τώρα, κάντε κλικ στον σύνδεσμο για να προσθέσετε μια συσκευή. Στη Add Deviceδιεπαφή " ", δώστε το όνομα κεντρικού υπολογιστή ως localhost και αφήστε τα πάντα ως έχουν. Δώστε τη συμβολοσειρά της κοινότητάς σας στο πεδίο κοινότητας. Πρέπει να είναι ακριβώς η ίδια συμβολοσειρά που καταχωρίσατε snmpd.confκατά τη διαμόρφωση του SNMP.
![Παρακολουθήστε τις συσκευές σας χρησιμοποιώντας το LibreNMS στο Ubuntu 16.04 Παρακολουθήστε τις συσκευές σας χρησιμοποιώντας το LibreNMS στο Ubuntu 16.04]()
Μόλις προστεθεί η συσκευή, μπορείτε να δείτε τις λεπτομέρειες μεταβαίνοντας στην Devicesκαρτέλα " ". Ομοίως, μπορείτε να προσθέσετε περισσότερες συσκευές στην εφαρμογή LibreNMS για παρακολούθηση "καθ' όλο το εικοσιτετράωρο".