Πώς να παρακολουθείτε την απόδοση του Ubuntu χρησιμοποιώντας το Netdata


Το Netdata είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο παρακολούθησης και αντιμετώπισης προβλημάτων σε πραγματικό χρόνο για διακομιστές cloud, κοντέινερ, εφαρμογές και υποδομές πληροφορικής εσωτερικής εγκατάστασης. Παρέχει υψηλές μετρήσεις συστήματος και σε πραγματικό χρόνο, όπως η απόδοση της CPU, η χρήση μνήμης RAM και δίσκου και στατιστικά εύρους ζώνης, για να αναφέρουμε μερικά.

Επιπλέον, το Netdata παρέχει επίσης διαδραστικές μετρικές απεικονίσεις στις οποίες μπορείτε να έχετε πρόσβαση σε ένα πρόγραμμα περιήγησης ιστού μαζί με έξυπνους συναγερμούς που βοηθούν στην αντιμετώπιση προβλημάτων του συστήματος.

Η τεχνολογία αιχμής και η δημοτικότητα του Netdata του έχουν κερδίσει μια θέση στα ανερχόμενα αστέρια του Forbes cloud 100 το 2020, κάτι που δεν είναι καθόλου κακό. Στην πραγματικότητα, τη στιγμή της συγγραφής αυτού του οδηγού, έχει λάβει σχεδόν 50.000 αστέρια Github.

Υπάρχουν δύο τρόποι που μπορείτε να χρησιμοποιήσετε για να εγκαταστήσετε τα Netdata. Μπορείτε να εκτελέσετε αμέσως ένα αυτοματοποιημένο σενάριο σε ένα κέλυφος BASH. Αυτό ενημερώνει τα συστήματά σας και ξεκινά την εγκατάσταση του Netdata. Εναλλακτικά, μπορείτε να κλωνοποιήσετε το αποθετήριο Git του Netdata και στη συνέχεια να εκτελέσετε το αυτοματοποιημένο σενάριο. Η πρώτη μέθοδος είναι απλή και απλή και σε αυτό θα επικεντρωθούμε σε αυτόν τον οδηγό.

Σε αυτό το άρθρο, θα δούμε πώς μπορείτε να εγκαταστήσετε το Netdata στο Ubuntu για να παρακολουθείτε την παρακολούθηση σε πραγματικό χρόνο, την απόδοση και την υγεία των διακομιστών και των εφαρμογών.

Υποστηριζόμενες πλατφόρμες

Το Netdata υποστηρίζει τις ακόλουθες διανομές Ubuntu LTS:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Πώς να εγκαταστήσετε το Netdata στο Ubuntu Linux

Για να ξεκινήσετε την εγκατάσταση, εκτελέστε την παρακάτω εντολή στο τερματικό bash για λήψη και εκτέλεση του σεναρίου.

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

Κατά την εκτέλεση του σεναρίου συμβαίνουν τα εξής:

  • Το σενάριο ανακαλύπτει αυτόματα τη διανομή Linux σας, ενημερώνει τη λίστα πακέτων και εγκαθιστά όλα τα απαραίτητα πακέτα λογισμικού.
  • Το πιο πρόσφατο δέντρο προέλευσης netdata γίνεται λήψη στη διαδρομή /usr/src/netdata.git.
  • Το σενάριο εγκαθιστά netdata εκτελώντας το σενάριο ./netdata-installer.sh από το δέντρο προέλευσης.
  • Πραγματοποιείται ενημέρωση στο cron.daily για να διασφαλιστεί ότι τα netdata ενημερώνονται σε καθημερινή βάση.

Καθώς εκτελείται το σενάριο, θα σας δοθούν συμβουλές σχετικά με τον τρόπο πρόσβασης στα Netdata σε ένα πρόγραμμα περιήγησης και πώς να τα διαχειρίζεστε ως υπηρεσία συστήματος.

Η εγκατάσταση διαρκεί λίγο, οπότε δώστε της περίπου 10 λεπτά και επιστρέψτε. Τέλος, θα λάβετε την έξοδο παρακάτω καθώς το σενάριο ολοκληρώνει την εγκατάσταση.

Μόλις εγκατασταθεί, ξεκινήστε, ενεργοποιήστε και επαληθεύστε την κατάσταση των Netdata όπως φαίνεται.

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

Από προεπιλογή, το Netdata ακούει στη θύρα 1999 και αυτό μπορεί να επιβεβαιωθεί χρησιμοποιώντας την εντολή netstat όπως φαίνεται.

sudo netstat -pnltu | grep netdata

Εάν έχετε UFW σε λειτουργία, προσπαθήστε να ανοίξετε τη θύρα 19999 καθώς αυτό θα απαιτείται κατά την πρόσβαση στα Netdata στο πρόγραμμα περιήγησης.

sudo ufw allow 19999/tcp
sudo ufw reload

Τέλος, για πρόσβαση στα Netdata, μεταβείτε στο πρόγραμμα περιήγησής σας και περιηγηθείτε στην ακόλουθη διεύθυνση URL

http://server-ip:19999/

Αυτό σας καλωσορίζει μόλις περιηγηθείτε στη διεύθυνση URL. Στην πραγματικότητα, θα συνειδητοποιήσετε ότι δεν θα χρειαστεί να συνδεθείτε. Όλες οι μετρήσεις του συστήματος θα εμφανίζονται όπως φαίνεται.

Μπορείτε να ξεφυλλίσετε διάφορα γραφήματα κάνοντας κλικ στις μετρήσεις που προτιμάτε στη δεξιά πλαϊνή γραμμή του πίνακα ελέγχου. Για παράδειγμα, για να ελέγξετε τα στατιστικά στοιχεία της διεπαφής δικτύου, κάντε κλικ στην επιλογή «Διεπαφές δικτύου».

Ασφάλεια Netdata με Βασικό έλεγχο ταυτότητας στο Ubuntu

Μέχρι αυτό το σημείο, οποιοσδήποτε μπορεί να έχει πρόσβαση στον πίνακα ελέγχου Netdata και να ρίξει μια ματιά στις διάφορες μετρήσεις του συστήματος. Αυτό ισοδυναμεί με παραβίαση ασφάλειας και οπωσδήποτε θέλουμε να το αποφύγουμε.

Έχοντας αυτό υπόψη, πρόκειται να διαμορφώσουμε τον βασικό έλεγχο ταυτότητας HTTP. Πρέπει να εγκαταστήσουμε το πακέτο apache2-utils που παρέχει το πρόγραμμα htpasswd το οποίο θα χρησιμοποιηθεί για τη διαμόρφωση του ονόματος χρήστη και του κωδικού πρόσβασης του χρήστη. Επιπλέον, θα εγκαταστήσουμε τον διακομιστή ιστού Nginx που θα λειτουργεί ως αντίστροφος διακομιστής μεσολάβησης.

Για να εγκαταστήσετε τον διακομιστή web Nginx και το πακέτο apache2-utils, εκτελέστε την εντολή.


sudo apt install nginx apache2-utils

Με εγκατεστημένα τα Nginx και apache2-utils, θα δημιουργήσουμε ένα αρχείο διαμόρφωσης μέσα στον κατάλογο /etc/nginx/conf.d. Ωστόσο, μη διστάσετε να χρησιμοποιήσετε τον κατάλογο διαθέσιμοι ιστότοποι εάν χρησιμοποιείτε το Nginx για άλλους σκοπούς εκτός από τα Netdata.


sudo vim /etc/nginx/conf.d/default.conf

Μέσα στο αρχείο διαμόρφωσης, πρώτα θα δώσουμε εντολή στο Nginx να διαμεσολαβεί εισερχόμενα αιτήματα για τον πίνακα ελέγχου Netdata. Στη συνέχεια, θα προσαρτήσουμε κάποια βασική προτροπή ελέγχου ταυτότητας που επιτρέπει μόνο σε εξουσιοδοτημένους χρήστες πρόσβαση στον πίνακα ελέγχου Netdata χρησιμοποιώντας έλεγχο ταυτότητας ονόματος χρήστη/κωδικού πρόσβασης.

Εδώ είναι ολόκληρη η διαμόρφωση. Προσέξτε να αντικαταστήσετε τις οδηγίες server_ip και example.com με τη δική σας διεύθυνση IP διακομιστή και όνομα διακομιστή.


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

Ας κατανοήσουμε τη διαμόρφωση, ενότητα προς ενότητα.

Τμήμα 1:


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

Έχουμε καθορίσει μια ενότητα ανοδικής ροής που ονομάζεται netdata-backend που αναφέρεται στον ενσωματωμένο διακομιστή ιστού του Netdata χρησιμοποιώντας τη διεύθυνση loopback 127.0.0.1< και θύρα 19999 που είναι η προεπιλεγμένη θύρα στην οποία ακούει το Netdata. Η οδηγία keepalive ορίζει τον μέγιστο αριθμό συνδέσεων αδράνειας που μπορούν να παραμείνουν ανοιχτές.

Τομέας 2:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Αυτή είναι η κύρια ενότητα μπλοκ διακομιστή Nginx. Η πρώτη γραμμή καθορίζει την εξωτερική διεύθυνση IP που πρέπει να ακούει το Nginx όταν οι πελάτες στέλνουν τα αιτήματά τους. Η οδηγία όνομα_διακομιστή καθορίζει το όνομα τομέα του διακομιστή και δίνει εντολή στο Nginx να εκτελέσει το μπλοκ διακομιστή όταν οι πελάτες επικαλούνται το όνομα τομέα αντί για την εξωτερική διεύθυνση IP.

Οι δύο τελευταίες γραμμές υποδεικνύουν τον απλό έλεγχο ταυτότητας HTTP που απαιτεί από τον χρήστη να συνδεθεί χρησιμοποιώντας όνομα χρήστη και κωδικό πρόσβασης. Η λειτουργική μονάδα auth_basic ενεργοποιεί το αναδυόμενο παράθυρο ονόματος χρήστη/κωδικού πρόσβασης στο πρόγραμμα περιήγησης με το "Απαιτείται έλεγχος ταυτότητας" στον τίτλο, το οποίο μπορεί αργότερα να προσαρμοστεί σύμφωνα με τις προτιμήσεις σας.

Η ενότητα auth_basic_user_file δείχνει το όνομα αρχείου που θα περιέχει το όνομα χρήστη και τον κωδικό πρόσβασης του χρήστη που είναι εξουσιοδοτημένος να έχει πρόσβαση στον πίνακα εργαλείων του Netdata – Σε αυτήν την περίπτωση, netdata-access. Θα δημιουργήσουμε αυτό το αρχείο αργότερα.

Ενότητα 3:

Η τελευταία ενότητα είναι το μπλοκ τοποθεσία που περιέχεται στο μπλοκ διακομιστή. Αυτό χειρίζεται την αποστολή μεσολάβησης και την προώθηση των εισερχόμενων αιτημάτων στον διακομιστή ιστού Nginx.


location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }

Για έλεγχο ταυτότητας, θα δημιουργήσουμε ένα όνομα χρήστη και έναν κωδικό πρόσβασης για έναν χρήστη που ονομάζεται tecmint χρησιμοποιώντας το βοηθητικό πρόγραμμα htpasswd και θα αποθηκεύσουμε τα διαπιστευτήρια μέσα στο αρχείο netdata-access .


sudo htpasswd -c /etc/nginx/netdata-access tecmint

Δώστε τον κωδικό πρόσβασης και επιβεβαιώστε τον.

Στη συνέχεια, επανεκκινήστε τον διακομιστή ιστού Nginx για να τεθούν σε ισχύ οι αλλαγές.


sudo systemctl restart nginx

Για να ελέγξετε εάν η διαμόρφωση πήγε σωστά, προχωρήστε και περιηγηθείτε στη διεύθυνση IP του διακομιστή σας


http://server-ip

Θα εμφανιστεί ένα αναδυόμενο παράθυρο ελέγχου ταυτότητας όπως φαίνεται παρακάτω. Δώστε το όνομα χρήστη και τον κωδικό πρόσβασής σας και πατήστε ENTER.

Στη συνέχεια, θα έχετε πρόσβαση στον πίνακα ελέγχου Netdata.

Αυτό μας φέρνει στο τέλος του θέματος μας για σήμερα. Μόλις μάθατε πώς να εγκαταστήσετε το εργαλείο παρακολούθησης Netdata και τη διαμόρφωση του βασικού ελέγχου ταυτότητας HTTP στο Ubuntu. Μη διστάσετε να ελέγξετε άλλα γραφήματα για διάφορες μετρήσεις συστήματος.