Προαπαιτούμενα
Εγκαταστήστε το Nginx και την PHP
Εγκαταστήστε το MariaDB
Εγκαταστήστε το LibreNMS
Διαμορφώσεις SSL και Nginx VHost
Εγκατάσταση με χρήση WebUI
Το LibreNMS είναι ένα σύστημα παρακολούθησης δικτύου ανοιχτού κώδικα με πλήρεις δυνατότητες. Χρησιμοποιείται SNMPγια τη λήψη δεδομένων από διαφορετικές συσκευές. Στο LibreNMS υποστηρίζονται διάφορες συσκευές όπως Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP και πολλές άλλες. Υποστηρίζει πολλαπλούς μηχανισμούς ελέγχου ταυτότητας και υποστηρίζει έλεγχο ταυτότητας δύο παραγόντων. Διαθέτει ένα προσαρμόσιμο σύστημα ειδοποίησης που μπορεί να ειδοποιεί τον διαχειριστή του δικτύου μέσω email, IRC ή slack.
Προαπαιτούμενα
Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε nms.example.comως όνομα τομέα που δείχνει προς την παρουσία του Vultr. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του παραδείγματος ονόματος τομέα με το πραγματικό.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το CentOS 7 . Αφού ενημερωθεί το σύστημά σας, προχωρήστε στην εγκατάσταση των εξαρτήσεων.
Εγκαταστήστε το Nginx και την PHP
Το μπροστινό μέρος του LibreNMS είναι βασικά γραμμένο σε PHP, επομένως θα χρειαστεί να εγκαταστήσουμε έναν διακομιστή web και PHP. Σε αυτό το σεμινάριο, θα εγκαταστήσουμε το Nginx μαζί με την PHP 7.2 για να αποκτήσουμε μέγιστη ασφάλεια και απόδοση.
Εγκαταστήστε το Nginx.
sudo yum -y install nginx
Ξεκινήστε το Nginx και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start nginx
sudo systemctl enable nginx
Προσθέστε και ενεργοποιήστε το αποθετήριο Remi, καθώς το προεπιλεγμένο αποθετήριο YUM περιέχει μια παλαιότερη έκδοση της 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
Εγκαταστήστε την έκδοση 7.2 της PHP μαζί με τις λειτουργικές μονάδες που απαιτούνται από το 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
Ανοίξτε το φορτωμένο αρχείο διαμόρφωσης από την PHP σε ένα πρόγραμμα επεξεργασίας.
sudo nano /etc/php.ini
Βρείτε τις ακόλουθες γραμμές, αφαιρέστε το σχόλιο και αλλάξτε την τιμή τους όπως φαίνεται.
;cgi.fix_pathinfo=1
memory_limit = 128M
;date.timezone =
Χρησιμοποιήστε αυτές τις τιμές, αντικαταστήστε τις Asia/Kolkataμε την τοπική ζώνη ώρας.
cgi.fix_pathinfo=0
memory_limit = -1
date.timezone = Asia/Kolkata
Θα χρειαστεί επίσης να αλλάξετε τη ζώνη ώρας του συστήματος εκτελώντας την ακόλουθη εντολή.
sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
Τώρα ανοίξτε το αρχείο διαμόρφωσης PHP-FPM.
sudo nano /etc/php-fpm.d/www.conf
Βρείτε την παρακάτω γραμμή.
listen = 127.0.0.1:9000
Αντικαταστήστε το με την ακόλουθη γραμμή.
listen = /var/run/php-fpm/php-fpm.sock
Από προεπιλογή, το PHP-FPM έχει ρυθμιστεί για χρήστη διακομιστή ιστού Apache. Αλλάξτε τον χρήστη σε nginx.
user = nginx
group = nginx
Περαιτέρω, αποσχολιάστε τις ακόλουθες γραμμές.
listen.owner = nobody
listen.group = nobody
Αποθηκεύστε το αρχείο και βγείτε από το πρόγραμμα επεξεργασίας. Επανεκκινήστε το PHP-FPM και ενεργοποιήστε το να ξεκινήσει κατά την εκκίνηση.
sudo systemctl restart php-fpm
sudo systemctl enable php-fpm
Ορίστε την κατάλληλη ιδιοκτησία στο αρχείο υποδοχής.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Εγκαταστήστε το MariaDB
Το MariaDB είναι ένα πιρούνι της MySQL. Προσθέστε το αποθετήριο MariaDB στο σύστημά σας. Το προεπιλεγμένο yumαποθετήριο περιέχει μια παλαιότερη έκδοση του 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
Εγκαταστήστε το MariaDB.
sudo yum -y install mariadb mariadb-server
Τώρα, ανοίξτε το αρχείο διαμόρφωσης MySQL.
sudo nano /etc/my.cnf
Προσθέστε τις ακόλουθες γραμμές στο τέλος του μπλοκ.
[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Επανεκκινήστε το MariaDB και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Πριν διαμορφώσετε τη βάση δεδομένων, θα πρέπει πρώτα να ασφαλίσετε το MariaDB.
sudo mysql_secure_installation
Θα σας ζητηθεί ο τρέχων κωδικός πρόσβασης root MariaDB. Από προεπιλογή, δεν υπάρχει κωδικός πρόσβασης root σε μια νέα εγκατάσταση του MariaDB. Πατήστε το πλήκτρο " Enter" για να προχωρήσετε. Ορίστε έναν ισχυρό κωδικό πρόσβασης για τον rootχρήστη του διακομιστή MariaDB και απαντήστε " 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 yum -y install cronie fping git ImageMagick jwhois mtr MySQL-python net-snmp net-snmp-utils nmap python-memcached rrdtool
Προσθέστε έναν νέο μη προνομιούχο χρήστη για την εφαρμογή LibreNMS.
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms nginx
Το LibreNMS μπορεί να εγκατασταθεί απευθείας κλωνοποιώντας το αποθετήριο Github του.
cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms
Διορθώστε την ιδιοκτησία.
sudo chown librenms:librenms -R /opt/librenms
Το 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 nano /etc/cron.d/librenms
Συμπληρώστε το αρχείο με το παρακάτω κείμενο.
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
Επανεκκινήστε την υπηρεσία cron daemon.
sudo systemctl restart crond
Ρύθμιση logrotateέτσι ώστε τα αρχεία καταγραφής να ανανεώνονται αυτόματα με την πάροδο του χρόνου.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Τέλος, ορίστε την κατάλληλη ιδιοκτησία και δικαιώματα.
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 και Nginx VHost
Οι συνδέσεις και άλλες πληροφορίες που αποστέλλονται μέσω της διεπαφής ιστού του LibreNMS δεν είναι ασφαλείς εάν η σύνδεση δεν είναι κρυπτογραφημένη με SSL. Θα διαμορφώσουμε το Nginx ώστε να χρησιμοποιεί το SSL που δημιουργείται με το Let's Encrypt free SSL.
Εγκαταστήστε το Certbot, το οποίο είναι η εφαρμογή πελάτη για το Let's Encrypt CA.
sudo yum -y install certbot
Για να μπορέσετε να ζητήσετε τα πιστοποιητικά, θα πρέπει να επιτρέψετε τη θύρα 80και 443, ή το πρότυπο HTTPκαι τις HTTPSυπηρεσίες μέσω του τείχους προστασίας.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Σημείωση : Για να αποκτήσετε πιστοποιητικά από το Let's Encrypt CA, ο τομέας για τον οποίο πρόκειται να δημιουργηθούν τα πιστοποιητικά πρέπει να κατευθύνεται προς τον διακομιστή. Εάν όχι, κάντε τις απαραίτητες αλλαγές στις εγγραφές DNS του τομέα και περιμένετε να διαδοθεί το DNS προτού υποβάλετε ξανά το αίτημα πιστοποιητικού. Το Certbot ελέγχει την αρχή τομέα πριν από την παροχή των πιστοποιητικών.
Δημιουργήστε τα πιστοποιητικά SSL:
sudo certbot certonly --webroot -w /usr/share/nginx/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/conf.d/nms.example.com.conf
Συμπληρώστε το αρχείο.
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;
}
}
Αντικαταστήστε nms.example.comτον πραγματικό τομέα σας στην παραπάνω διαμόρφωση.
Επανεκκινήστε το Nginx.
sudo chown nginx:nginx /var/lib/php/session
sudo systemctl restart nginx
Εγκατάσταση με χρήση WebUI
Για να ολοκληρώσετε την εγκατάσταση, ανοίξτε το https://nms.example.comστο αγαπημένο σας πρόγραμμα περιήγησης. Θα δείτε ότι οι απαιτήσεις ικανοποιούνται. Δώστε τα στοιχεία της βάσης δεδομένων σας και δημιουργήστε έναν νέο λογαριασμό διαχειριστή. Μόλις εγκατασταθεί, θα λάβετε ένα μήνυμα για την επικύρωση της εγκατάστασης. Κάντε κλικ στον σύνδεσμο και συνδεθείτε χρησιμοποιώντας τον λογαριασμό διαχειριστή. Θα δείτε ότι όλα εκτός από το " Poller" έχουν κατάσταση " Ok".

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