Monitor Linux Server με Prometheus Grafana και node exporter

Σε αυτόν τον πλήρη οδηγό θα περιγράψουμε πώς να κάνουμε εγκατάσταση ένα πλήρες monitor σύστημα για έναν server που τρέχει linux. Τα εργαλεία που θα εγκατασταθούν είναι το grafana, το prometheus και το node exporter.

Το Grafana είναι ένα λογισμικό που μπορεί να προβάλει διάφορες τιμές και να εγκατασταθούν alerts και alarms. Η εγκατάσταση του είναι γρήγορη και εύκολή, ενώ τα monitoring dashboards που διαθέτει είναι εξαιρετικά.

Από την άλλη μεριά, το prometheus είναι και αυτό ένα open source λογισμικό που μπορεί να κάνει επεξεργαστεί logs από τους servers και να κάνει monitoring. Μπορεί να συνεργαστεί με τα πάντα και μαζί με το Grafana δημιουργούν ένα πολύ ευέλικτο σύστημα ελέγχου.

Σημειώνουμε εδώ ότι το Grafana διαθέτει ήδη το prometheus ως data source και δεν χρειάζονται επιπλέων ρυθμίσεις για την εγκατάσταση του.

Ο Node exporter είναι ο επίσημος , ας πούμε client του prometheus, μπορεί να εγκατασταθεί στους unix και linux servers που θέλουμε . Αυτό που κάνει είναι ουσιαστικά να συλλέγει logs και metrics από τους servers που θέλουμε να κάνουμε monitoring.

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

Πρακτικά λοιπόν, θα μπορούσαμε να είχαμε το prometheus και το Grafana στο ίδιο node ή server. Ενώ το Prometheus exporter – node exporter το κάνουμε εγκατάσταση στον server που θέλουμε να κάνουμε monitor.

Σε αυτόν τον οδηγό, θα βάλουμε και τα 3 λογισμικά στον ίδιο centos 7 server και θα κάνουμε monitor τον ίδιο. Αυτό για λόγους ευκολίας και κατανόησης του tutorial.

Εγκατάσταση Prometheus

Η εγκατάσταση θα γίνει σε έναν server με εγκατεστημένο το Centos 7 . Η επιλογή του OS στον server δεν εξαρτάται από τα λειτουργικά συστήματα που θέλουμε να κάνουμε monitor.

Για να μην κουράσει αυτός ο οδηγός υπάρχει ήδη στο laptopblog άρθρο με την Εγκατάσταση Prometheus

Ακολουθούμε τον παραπάνω οδηγό και δεν αλλάζουμε τίποτα από θέμα configuration.

Εγκατάσταση Grafana

Το Grafana όπως γράψαμε παραπάνω, θα εγκατασταθεί για λόγους ευκολίας στον ίδιο server που είχαμε νωρίτερα εγκαταστήσει το Prometheus. Στον οδηγό εγκατάστασης του Grafana που υπάρχει στο laptoblog δεν θα χρειαστεί να αλλάξει κάτι στο configuration.

Εδώ βρίσκεται η αναλυτική, βήμα – βήμα, εγκατάσταση του Grafana

Εγκατάσταση του Node exporter

Όπως περιγράψαμε και πιο πάνω, ο node exporter ή αλλιώς prometheus exporter είναι υπεύθυνος για την συλλογή των πληροφορικών και των metrics που θέλουμε να απεικονίσουμε στο Grafana.

O node exporter είναι ο client για *nix συστήματα και μόνο. Για να τον κάνουμε download στον server που θέλουμε να κάνουμε monitoring τρέχουμε την παρακάτω εντολή .

Αν θέλεις να εγκαταστήσεις τον client node exporter για windows συστήματα, δεν θα λειτουργήσει μην το προσπαθήσεις! Για αυτά θα χρειαστείς τον windows exporter που υπάρχει στο release repository του windows exporter τρέχοντας το αντίστοιχο .exe αρχείο.

| Πριν τρέξεις την παρακάτω εντολή για την εγκατάσταση του node exporter, συμβουλέψου πρώτα για τον αριθμό της ένας έκδοσης από το release repository του Node exporter. Αυτό το guide γράφτηκε όταν υπήρχε η έκδοση έκδοση 1.1.2 .

Οπότε, μεταβαίνουμε στο home folder μας, τρέχουμε το wget και αποσυμπιέζουμε το αρχείο:

wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
tar -xzf node_exporter-1.1.2.linux-amd64.tar.gz

Μετά δημιουργούμε ένα αρχείο με όνομα node_exporter.service στο directory /etc/systemd/system/ . Αυτό το υλοποιούμε με την παρακάτω εντολή :

vi /etc/systemd/system/node_exporter.service

Στο κενό, φρέσκο αρχείο μας πατάμε i για να μπούμε σε insert mode και κάνουμε αντιγραφή επικόλληση το παρακάτω :

[Unit]
Description=node_exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/home/centos/node_exporter-1.1.2.linux-amd64.tar.gz/node_exporter
[Install]
WantedBy=multi-user.target

Το μόνο που απομένει είναι να κάνουμε reload το service του systemd, να ξεκινήσουμε τον node_exporter. Πρόσθετα ζητάμε να ξεκινά με κάθε επανεκκίνηση του λειτουργικού συστήματος με τις παρακάτω εντολές :

systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
systemctl status node_exporter

Αφού πάνε όλα καλά, θα εμφανιστεί κάτι τέτοιο :

node_exporter.service - node_exporter
   Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-05-27 03:42:54 EDT; 2s ago
 Main PID: 9658 (node_exporter)
    Tasks: 3
   CGroup: /system.slice/node_exporter.service
           └─9658 /home/centos/node_exporter-1.1.2-rc.1.linux-amd64/node_exporter

Πρόσθεση του server στο Prometheus

Μπαίνουμε στο directory που έχουμε εγκαταστήσει το Prometheus και αναζητούμε το αρχείο prometheus.yml και το ανοίγουμε με τον αγαπημένο μας editor πχ vi :

vi prometheus.yml

Μετά προσθέτουμε το παρακάτω και στο τέλος του αρχείου prometheus.yml :

    - job_name: 'node_exporter'
      static_configs:
      - targets: ['localhost:9100']
        labels:
         group: 'production'

Οπότε μετά την παραπάνω αλλαγή, οι τελευταίες γραμμές του αρχείου θα μοιάζουν κάπως έτσι :

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
    - job_name: 'prometheus'
      static_configs:
      - targets: ['localhost:9090']
        labels:
         group: 'prometheus local'
    - job_name: 'node_exporter'
      static_configs:
      - targets: ['localhost:9100']
        labels:
         group: 'production'

Μετά την αποθήκευση του αρχείου προβαίνουμε στην επανεκκίνηση του Prometheus με τις παρακάτω εντολές που θα δώσουμε στο τερματικό μας:

systemctl stop prometheus.service
systemctl start prometheus.service

Αν για κάποιον λόγο υπάρχουν σφάλματα στο yml αρχείο τότε αν τρέξουμε systemctl status prometheus.service θα εμφανίσει fail . Υπόψιν τα yml αρχεία έχουν ιδιαιτερότητες, ακόμα και ένα κενό space είναι αρκετό για να εμφανίσει fail το service.

Ωστόσο έχουμε φτιάξει για εσένα το tutorial Έλεγχος του prometheus.yml ότι είναι σωστό που κάνει έλεγχο στο αρχείο yml του Prometheus, ρίξε μια ματιά θα σε βοηθήσει αρκετά.

Έλεγχος του Target στο Prometheus

Συνδεόμαστε στο γραφικό του prometheus και λογικά εκεί θα εμφανιστεί το target με το node_exporter που εγκαταστήσαμε πριν.

Αν όλα εχουν εγκατασταθεί σωστά τότε θα έχουμε την παραπάνω εικόνα

Σύνδεση του Grafana με το Prometheus

Μέχρι στιγμής λοιπόν έχουμε εγκαταστήσει το Prometheus, το Grafana, το node_exporter, ενώ στα ποιούμεναι βήματα έχουμε συνδέσει το node_exporter με το Promethues.

Τώρα θα χρειαστεί να συνδέσουμε το Prometheus (που λαμβάνει τα data από τον node server) και να τα απεικονίσουμε στο Grafana.

Πηγαίνουμε λοιπόν στο home του Grafana και στην στήλη αριστερά επιλέγουμε το εικονίδιο με το γρανάζι. Εκεί κάνουμε κλικ στο data sources

Σημειώνουμε το URL του Prometheus server μαζί με την πόρτα 9090. Στο δικό μας οδηγό τρέχουμε το Grafana και το Prometheus στον ίδιο server. Όποτε το url είναι http://localhost:9090 όπως φαίνεται στην παρακάτω φωτογραφία .

Φυσικά πατάμε μετά Save and test για να αποθηκευτούν οι αλλαγές ενώ παράλληλα ένα μήνυμα θα εμφανιστεί

Μετά από το παραπάνω έχουμε συνδέσει με επιτυχία το Prometheus. Τώρα ήρθε η ώρα να δημιουργήσουμε το πρώτο dashboard που θα περιλαμβάνει όλες τις μετρήσεις που παίρνει ο node exporter.

Για να το κάνουμε αυτό πηγαίνουμε στο home του grafana, πατάμε το σύμβολο + και μετά κάνουμε ένα κλικ στο import

Στο πεδίο import grafana.com σημειώνουμε απλά τον αριθμό 1860 που είναι το id του dashboard και πατάμε load

Μετά από λίγες στιγμές θα φορτώσει το datasource , επιλέγουμε Prometheus και μετά κάνουμε κλικ στο import

Όταν ολοκληρωθεί το import τότε θα εμφανιστούν όλα τα metrics του server. Για παράδειγμα η το system load, η ram, το load του CPU ktl

Αυτό ήταν! Με αυτόν το οδηγό μπορείς να πάρεις μια μικρή ιδέα το τι μετρήσεις μπορούν να κάνουν τα τρία λογισμικά. Σε συνεργασία μεταξύ τους μπορούν να κάνουν μετρήσεις σχεδόν σε οποιαδήποτε εφαρμογή ή υπηρεσία σε ένα server ή συστοιχία εξυπηρετητών.

Τι σχολιάζεις για αυτό; θα χαρούμε να διαβάσουμε το σχόλιο σου!

Άσε ένα σχόλιο

Laptopblog
Logo
Register New Account
Η εγγραφή είναι δωρεάν!
Reset Password
Compare items
  • Total (0)
Σύγκρινε
0
Shopping cart