Μονάδα 6 / 11

Παρακολούθηση και παρατηρησιμότητα: Κανόνες μέτρησης, καταγραφής, ανίχνευσης και συναγερμού

Κέρδη:

  • Ικανότητα κατανόησης των τριών πυλώνων της παρατηρησιμότητας (μετρική, καταγραφή, ίχνος) και τα τέσσερα χρυσά σήματα και η τεχνητή νοημοσύνη δημιουργεί ερωτήματα PromQL, κανόνες συναγερμού και πίνακες εργαλείων
  • Δυνατότητα αποτροπής κόπωσης συναγερμού διατηρώντας τους συναγερμούς προσανατολισμένους στη δράση και στα σωστά κατώφλια επείγουσας ανάγκης και δοκιμών σε σχέση με τα ιστορικά δεδομένα του συστήματός σας
  • Δυνατότητα αποτροπής απορρήτου και μυστικής διαρροής καλύπτοντας ευαίσθητες περιοχές πριν δώσετε τα αρχεία καταγραφής στην τεχνητή νοημοσύνη

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

  • Μέτρηση: Αριθμητικές τιμές που μετρώνται με την πάροδο του χρόνου — χρήση της CPU, αριθμός αιτημάτων, χρόνος απόκρισης, ποσοστό σφάλματος. "Πόσα;" απαντά στην ερώτηση.
  • Αρχείο καταγραφής: Εγγραφές συμβάντων κειμένου που παράγονται από το σύστημα—"συνδεμένος χρήστης", "χαμένη σύνδεση βάσης δεδομένων". «Τι ακριβώς συνέβη; απαντά στην ερώτηση.
  • Trace: Η διαδρομή που ακολουθεί ένα αίτημα κατά τη μετάβαση από υπηρεσία σε υπηρεσία εντός του συστήματος και η διάρκεια κάθε βήματος. «Πού είναι η βραδύτητα;» απαντά στην ερώτηση.

Τα πιο κοινά εργαλεία: Prometheus για μετρήσεις, Grafana για οπτικοποίηση, Loki/ELK για log, Jaeger/OpenTelemetry για ίχνος. Η τεχνητή νοημοσύνη είναι πολύ ικανή στη σύνταξη των γλωσσών ερωτημάτων (ειδικά του Prometheus's PromQL), των κανόνων συναγερμού και των διαμορφώσεων του ταμπλό για αυτά τα εργαλεία. Είναι επίσης το σημείο όπου η τεχνητή νοημοσύνη είναι πιο δυνατή: συνοψίζει μεγάλα κομμάτια αρχείων καταγραφής και μετρήσεων και επισημαίνει ανωμαλίες.

Ας διευκρινίσουμε τη διαφορά μεταξύ παρακολούθησης και παρατηρησιμότητας με μια πρόταση: η παρακολούθηση είναι να θέτει ερωτήσεις που ήδη γνωρίζετε («Η CPU έχει περάσει το 90%;»). παρατηρησιμότητα είναι να μπορείς να κάνεις ερωτήσεις που δεν γνωρίζατε ήδη ("γιατί αυτή η παράξενη βραδύτητα συμβαίνει μόνο για έναν συγκεκριμένο πελάτη σε μια συγκεκριμένη στιγμή;"). Τα σύγχρονα συστήματα είναι τόσο πολύπλοκα που δεν μπορείτε να προβλέψετε όλους τους τρόπους αποτυχίας. Ως εκ τούτου, η δυνατότητα συλλογής εμπλουτισμένων μετρήσεων, αρχείων καταγραφής και ιχνών και στη συνέχεια αναζήτησης σε βάθος —δηλαδή παρατηρητικότητας— καθίσταται κρίσιμη. Αυτό είναι όπου η τεχνητή νοημοσύνη παίζει ρόλο όταν απαντά στην «προηγουμένως άγνωστη ερώτηση»: σαρώνει γρήγορα τα ακατέργαστα δεδομένα που έχετε, προτείνει μοτίβα και ανωμαλίες και φτάνετε στη βασική αιτία επαληθεύοντας αυτές τις ενδείξεις.

Βήμα προς βήμα: τι και πώς να παρακολουθώ;

  1. Επιλέξτε τις σωστές μετρήσεις. Στον κλάδο, λαμβάνονται ως βάση "τέσσερα χρυσά σήματα": λανθάνουσα κατάσταση, κίνηση, σφάλματα, κορεσμός — πόσο πλήρης είναι ο πόρος. Αυτά συνοψίζουν την υγεία των περισσότερων υπηρεσιών.
  2. Συλλέξτε μετρήσεις. Αφήστε την εφαρμογή να παρουσιάσει ένα τελικό σημείο που μπορεί να διαβάσει ο Προμηθέας.
  3. Ρύθμιση πίνακες εργαλείων. Οπτικοποιήστε αυτές τις μετρήσεις στο Grafana.
  4. Γράψτε κανόνες συναγερμού. Ποιος θα προειδοποιηθεί όταν ξεπεραστεί ένα όριο και πώς;
  5. Συγκεντρώστε τα αρχεία καταγραφής. Κάντε αναζήτηση όλων των αρχείων καταγραφής υπηρεσιών σε ένα μέρος.
  6. Μειώστε τον θόρυβο. Ο υπερβολικός συναγερμός δημιουργεί «κόπωση σε εγρήγορση». Ο σημαντικός συναγερμός εξαφανίζεται.
Συμβουλή: Ένας καλός συναγερμός συναντά δύο πράγματα: είναι εφαρμόσιμος και έχει τον κατάλληλο επείγοντα χαρακτήρα. Ένας συναγερμός που ξυπνά κάποιον στις 3 το πρωί πρέπει να είναι κάτι που στην πραγματικότητα απαιτεί νυχτερινή παρέμβαση. Μην ξυπνάτε κανέναν για κάτι που δεν απαιτεί ενέργεια από μόνο του, όπως "CPU 70%". εμφανίστε το στον πίνακα.

Πώς να γράψετε έναν κανόνα συναγερμού;

Μια ειδοποίηση αποτελείται από τρία στοιχεία: συνθήκη (ποια μέτρηση υπερβαίνει ποιο όριο και για πόσο χρονικό διάστημα), διάρκεια ("για 5 λεπτά" για να αποφευχθεί η πρόκληση στιγμιαίων διακυμάνσεων) και σημασία/ενέργεια (σε ποιον, μέσω ποιου καναλιού). Το AI καθιερώνει αριστοτεχνικά αυτά τα τρία με το σωστό πλαίσιο. Για παράδειγμα, η μετάφραση ενός κανόνα όπως "κρίσιμος συναγερμός εάν το ποσοστό σφάλματος υπερβαίνει το 5% για 5 λεπτά" σε PromQL είναι μια εργασία κλασμάτων του δευτερολέπτου για το AI — αλλά εσείς αποφασίζετε εάν το όριο είναι κατάλληλο για το σύστημά σας.

Προσοχή: Τα όρια συναγερμού που προτείνονται από το AI είναι γενικές υποθέσεις. Το κανονικό φορτίο, η ανοχή και ο αντίκτυπος στην εργασία του συστήματός σας είναι διαφορετικά. Προτού βάλετε ένα όριο απευθείας στην παραγωγή, κοιτάτε τα ιστορικά σας δεδομένα και ρωτάτε "πόσες φορές έχει ενεργοποιηθεί αυτό το όριο στο παρελθόν, πόσες από αυτές ήταν πραγματικά προβλήματα;" Απαντήστε στην ερώτηση.

Απόρρητο αρχείου καταγραφής: κρίσιμη προειδοποίηση

Τα κούτσουρα είναι η πιο συχνά παραβλέπεται πηγή διαρροών. Μια γραμμή καταγραφής μπορεί κατά λάθος να περιέχει έναν κωδικό πρόσβασης, έναν αριθμό πιστωτικής κάρτας ή προσωπικά δεδομένα (σύμφωνα με το KVKK/GDPR). Κατά την επικόλληση αρχείων καταγραφής σε ένα AI για ανάλυση:

  1. Καλύψτε τις ευαίσθητες περιοχές. Αντικαταστήστε τιμές όπως διακριτικό, κωδικό πρόσβασης, email, αριθμό αναγνωριστικού με <REDACTED>.
  2. Δώστε παραδείγματα, όχι όλα. Αντί για ένα εκατομμύριο γραμμές, μερικές εκατοντάδες αντιπροσωπευτικές γραμμές είναι συχνά αρκετές.
  3. Επιλέξτε ένα όχημα εγκεκριμένο από το ίδρυμα. Ειδικά για τα αρχεία καταγραφής παραγωγής, χρησιμοποιήστε ένα εργαλείο του οποίου τα δεδομένα δεν πηγαίνουν στην εκπαίδευση.

Τέσσερα χρυσά σήματα και τραπέζια συναγερμού

σήμα

μετριέται από

Παράδειγμα κατωφλίου συναγερμού

επείγον

λανθάνουσα κατάσταση

χρόνος απόκρισης

p95 > 800 ms, 5 λεπτά

ψηλά

κυκλοφορίας

Αίτημα/δευτ

Ξαφνική αύξηση/μείωση 300%.

μεσαίο

Σφάλμα

Ποσοστό αποτυχίας αιτήματος

> 5%, 5 λεπτά

κριτικό

Κορεσμός

κατάληψη πόρων

Δίσκος > 85%

ψηλά

τρεις μίνι θήκες

Περίπτωση 1 — 400 γραμμές καταγραφής που συνοψίζονται σε 30 δευτερόλεπτα. Μια υπηρεσία είχε επιβραδυνθεί. Ο μηχανικός έδωσε τις καλυμμένες 400 γραμμές καταγραφής στο AI και είπε, "συνοψίστε τα επαναλαμβανόμενα μοτίβα σφαλμάτων και την ένταση του χρόνου". Η τεχνητή νοημοσύνη έδειξε ότι μια συγκεκριμένη εξωτερική κλήση API λήγει κάθε 30 δευτερόλεπτα. Η βασική αιτία βρέθηκε σε 30 δευτερόλεπτα. Η μη αυτόματη σάρωση αρχείων καταγραφής θα διαρκούσε μισή ώρα.

Περίπτωση 2 — λύθηκε η κόπωση συναγερμού. Μια ομάδα λάμβανε 200 συναγερμούς την ημέρα και τους αγνοούσε όλους – μέχρι που παραβλέφθηκε επίσης ένας πραγματικός συναγερμός διακοπής λειτουργίας. Δώστε στην τεχνητή νοημοσύνη όλους τους κανόνες ειδοποίησης και ρωτήστε "ποιοι από αυτούς δεν είναι ενεργοί και ποιοι μπορούν να συνδυαστούν;" ρώτησαν. Ο αριθμός των συναγερμών μειώθηκε σε 12 την ημέρα. Κάθε συναγερμός λαμβανόταν πλέον στα σοβαρά.

Περίπτωση 3 — λάθος κατώφλι που εντοπίστηκε νωρίς. Ο YZ πρότεινε "Προειδοποίηση όταν είναι 95% γεμάτος" για το δίσκο. Ο μηχανικός εξέτασε τα ιστορικά δεδομένα: μόλις ο δίσκος έφτασε στο 95%, υπήρχε λίγος χρόνος για παρέμβαση. Μείωσε το όριο στο 80% και πρόσθεσε έναν δεύτερο συναγερμό με βάση τον «ρυθμό ανάπτυξης». Η επαλήθευση απέτρεψε μια πραγματική διακοπή τα μεσάνυχτα.

Τέσσερα πρότυπα με δυνατότητα αντιγραφής

1) Σύνοψη αρχείων καταγραφής (με μάσκα):

Αναλύστε το παράδειγμα καταγραφής παρακάτω (Κάλυψα ευαίσθητες τιμές με <REDACTED>). Δώστε μου: (1) επαναλαμβανόμενα μοτίβα σφαλμάτων, (2) συγκέντρωση με την πάροδο του χρόνου, (3) την πιο πιθανή βασική αιτία και (4) 3 μετρήσεις που θα εξετάσω για επαλήθευση. Μητρώο: [LINES]

2) Δημιουργία κανόνων συναγερμού:

Γράψτε έναν κανόνα συναγερμού για το Prometheus/Alertmanager: Δημιουργήστε συναγερμό [SEVERITY] εάν το [THRESHOLD] υπερβαίνει το [METRIC][DURATION]. Ο κανόνας πρέπει να είναι προσανατολισμένος στη δράση και να περιλαμβάνει ένα πεδίο σύνδεσης σχολιασμού και βιβλίου εκτέλεσης. Εξηγήστε το PromQL και γράψτε γιατί αυτό το όριο είναι λογικό.

3) Σύνταξη/δήλωση ερωτήματος PromQL:

Γράψτε ένα ερώτημα PromQL που μετρά: [EX. 5xxerror ποσοστό ποσοστού τα τελευταία 5 λεπτά]. Εξηγήστε το ερώτημα βήμα προς βήμα. Στη συνέχεια, πείτε μου ποιο θα πρέπει να είναι το υγιές εύρος για αυτήν την τιμή.

4) Σχεδιασμός ταμπλό:

Σχεδιάστε έναν πίνακα εργαλείων Grafana για το [SERVICE]: με ποιους πίνακες πρέπει να εμφανίζω τα τέσσερα χρυσά σήματα (λανθάνουσα κατάσταση, κίνηση, σφάλμα, κορεσμός); Προτείνετε μέτρηση, τύπο απεικόνισης και εύλογο όριο για κάθε πίνακα. Σκοπός: να δείτε την κατάσταση της υγείας ενός φύλακα σε 10 δευτερόλεπτα.

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμος: "Τι υπάρχει σε αυτό το ημερολόγιο;" (ακολουθούμενες από 5000 γραμμές ακατέργαστου κορμού, μάρκες σε αυτό)

Αποτέλεσμα: διαρρέετε μυστικά και το AI δίνει μια άστοχη, επιφανειακή περίληψη.

Ισχυρό: "Βρείτε επαναλαμβανόμενα μοτίβα σφαλμάτων και την ένταση του χρόνου στο παράδειγμα καταγραφής 300 γραμμών με μάσκα, πείτε μου την πιο πιθανή βασική αιτία και τις μετρήσεις που θα εξετάσω για να επαληθεύσω. Έφτιαξα τα διακριτικά <REDACTED>."

Διαφορά: η δεύτερη προτροπή δίνει ένα συγκαλυμμένο και εστιασμένο παράδειγμα, ζητώντας ένα σαφές αποτέλεσμα ανάλυσης. Είναι και ασφαλές και χρήσιμο.

Συνήθη λάθη

  • Επικόλληση του αρχείου καταγραφής στο AI χωρίς να το αποκρύψετε. Η πιο συνηθισμένη διαρροή μυστικών/προσωπικών δεδομένων.
  • Ρύθμιση ξυπνητηριών για τα πάντα. Η κούραση συναγερμού θάβει τον πραγματικό συναγερμό.
  • Συναγερμός μη ενεργός. Είναι προειδοποιητικός θόρυβος για τον οποίο κανείς δεν μπορεί να κάνει τίποτα.
  • Αποδοχή του ορίου του AI χωρίς αμφιβολία. Το όριο θα πρέπει να οριστεί σύμφωνα με το ιστορικό του συστήματός σας.
  • Απλώς κοιτάζοντας τη μέτρηση. Χωρίς ημερολόγιο και ίχνος, η βασική αιτία δεν μπορεί να βρεθεί τις περισσότερες φορές.
  • Μη ρύθμιση ώρας αφύπνισης (για). Οι στιγμιαίες διακυμάνσεις παράγουν ψευδείς συναγερμούς.

Συνοπτικά

Παρατηρησιμότητα; Είναι η ικανότητα κατανόησης του εσωτερικού του συστήματος από το εξωτερικό με μετρήσεις, αρχεία καταγραφής και ίχνη. Τα τέσσερα χρυσά σήματα (λανθάνουσα κατάσταση, κίνηση, σφάλμα, κορεσμός) συνοψίζουν την υγεία των περισσότερων υπηρεσιών. Η τεχνητή νοημοσύνη είναι πολύ ισχυρή στο να γράφει ερωτήματα PromQL, κανόνες συναγερμού και πίνακες εργαλείων, και να συνοψίζει μεγάλα κομμάτια αρχείων καταγραφής και να βρίσκει ανωμαλίες. Ωστόσο, είναι δική σας ευθύνη να επαληθεύετε τα όρια συναγερμών σε σχέση με το ιστορικό του συστήματός σας, να διατηρείτε τους συναγερμούς προσανατολισμένους σε ενέργειες και να μην μοιράζεστε ποτέ αρχεία καταγραφής χωρίς να τα αποκρύπτετε.

Εργασία εφαρμογής

Για μια υπηρεσία (ή ένα δείγμα υπηρεσίας): (1) Δημιουργήστε έναν κανόνα συναγερμού για το ποσοστό σφάλματος με το πρότυπο "Δημιουργία κανόνα συναγερμού" και ορίστε το προτεινόμενο όριο σε "πόσες φορές έχει ενεργοποιηθεί στο παρελθόν;" Δοκιμάστε το με την ερώτηση. (2) καλύπτετε ένα δείγμα αρχείου καταγραφής που έχετε και αναλύστε το με το πρότυπο "Σύνοψη αρχείου καταγραφής". (3) σημειώστε ποια μέτρηση θα εξετάσετε για να επιβεβαιώσετε την πιο πιθανή βασική αιτία.

λίστα ελέγχου

  • [ ] Επέλεξα τις μετρήσεις για παρακολούθηση με βάση τέσσερα χρυσά σήματα.
  • [ ] Κάλυψα όλα τα αρχεία καταγραφής που έδωσα στο AI όσον αφορά τις ευαίσθητες περιοχές.
  • [ ] Επιβεβαίωσα ότι κάθε συναγερμός ήταν προσανατολισμένος στη δράση και είχε τον σωστό επείγοντα χαρακτήρα.
  • [ ] Δοκίμασα τα όρια συναγερμού σε σχέση με τα ιστορικά δεδομένα του συστήματός μου.
  • [ ] Φιλτράρισα τις στιγμιαίες διακυμάνσεις προσθέτοντας για (διάρκεια) στους συναγερμούς.
  • [ ] Χρησιμοποίησα μετρική + καταγραφή + ίχνος μαζί για τη βασική αιτία.