Πώς να χρησιμοποιήσετε τις πληροφορίες καταγραφής AWS για να υποβάλετε ερωτήματα στις μετρήσεις του πίνακα ελέγχου από τα αρχεία καταγραφής υπηρεσιών AWS

Κάθε υπηρεσία AWS καταγράφει την επεξεργασία της σε αρχεία οργανωμένα στις ομάδες καταγραφής CloudWatch. Οι ομάδες καταγραφής ονομάζονται συνήθως από την ίδια την υπηρεσία για ευκολότερη αναγνώριση. Τα μηνύματα συστήματος ή οι πληροφορίες κοινής κατάστασης της υπηρεσίας εγγράφονται σε αυτά τα αρχεία καταγραφής από προεπιλογή.

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

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

Ρωτήστε τα αρχεία καταγραφής

Πηγή: aws.amazon.com

Το AWS CloudWatch Log Insights σάς επιτρέπει να αναζητάτε και να αναλύετε δεδομένα καταγραφής από τους πόρους σας AWS σε πραγματικό χρόνο. Μπορείτε να το δείτε ως προβολή βάσης δεδομένων. Μπορείτε να ορίσετε το ερώτημα στον πίνακα εργαλείων και ο πίνακας εργαλείων θα το επιλέξει όταν το επισκεφτείτε ή στο καθορισμένο χρονικό παράθυρο στο παρελθόν, όπως το ορίζετε εσείς στην προβολή του πίνακα εργαλείων.

Χρησιμοποιεί μια γλώσσα ερωτημάτων που ονομάζεται CloudWatch Logs Insights για αναζήτηση και ανάλυση δεδομένων καταγραφής. Η γλώσσα ερωτήματος βασίζεται σε ένα υποσύνολο της γλώσσας SQL. Σας επιτρέπει να αναζητάτε και να φιλτράρετε δεδομένα καταγραφής. Μπορείτε να αναζητήσετε συγκεκριμένα συμβάντα καταγραφής, προσαρμοσμένο κείμενο ή λέξεις-κλειδιά καταγραφής και να φιλτράρετε δεδομένα καταγραφής με βάση συγκεκριμένα πεδία. Και το πιο σημαντικό, συγκεντρώστε δεδομένα καταγραφής σε ένα ή περισσότερα αρχεία καταγραφής για να δημιουργήσετε συνοπτικές μετρήσεις και απεικονίσεις.

Όταν εκτελείτε ένα ερώτημα, το CloudWatch Log Insights πραγματοποιεί αναζήτηση μέσω των δεδομένων καταγραφής στην ομάδα καταγραφής. Στη συνέχεια, επιστρέφει τα κείμενα που προκύπτουν από τα αρχεία που ταιριάζουν με τα κριτήρια του ερωτήματός σας.

Παράδειγμα ερωτήματος αρχείου καταγραφής

Ας ρίξουμε μια ματιά σε μερικά βασικά ερωτήματα για να κατανοήσουμε την έννοια.

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

fields @timestamp, @message
| filter @message like /ERROR/
| stats count() by bin(1h)

Ή δείτε πώς μπορείτε να παρακολουθήσετε τον μέσο χρόνο απόκρισης του API σας την τελευταία ημέρα:

fields @timestamp, @message
| filter @message like /API response time/
| stats avg(response_time) by bin(1d)

Εφόσον, από προεπιλογή, η χρήση της CPU είναι πληροφορίες που καταγράφονται από την υπηρεσία στο CloudWatch, μπορείτε επίσης να συγκεντρώσετε αυτόν τον τύπο μέτρησης:

fields @timestamp, @message
| filter @message like /CPUUtilization/
| stats avg(value) by bin(1h)

Αυτά τα ερωτήματα μπορούν να προσαρμοστούν ώστε να ταιριάζουν στη συγκεκριμένη περίπτωση χρήσης και μπορούν να χρησιμοποιηθούν για τη δημιουργία προσαρμοσμένων μετρήσεων και απεικονίσεων στους πίνακες ελέγχου CloudWatch. Ο τρόπος με τον οποίο μπορείτε να το κάνετε είναι να τοποθετήσετε το γραφικό στοιχείο στον πίνακα εργαλείων και να τοποθετήσετε τον κώδικα μέσα στο γραφικό στοιχείο για να ορίσετε τι θα επιλέξετε.

  Πώς να ορίσετε ένα ανοιχτό ή σκοτεινό θέμα στο Photoshop CC

Ακολουθούν μερικά από τα γραφικά στοιχεία που μπορούν να χρησιμοποιηθούν στους πίνακες ελέγχου CloudWatch και να συμπληρωθούν με περιεχόμενο από το Log Insights:

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

Πώς να δημιουργήσετε χρήσιμες πληροφορίες καταγραφής για τον πίνακα ελέγχου

Πηγή: aws.amazon.com

Για να χρησιμοποιήσετε αποτελεσματικά τα ερωτήματα του CloudWatch Insights στους πίνακες ελέγχου CloudWatch, είναι καλό να ακολουθείτε ορισμένες βέλτιστες πρακτικές κατά τη δημιουργία αρχείων καταγραφής CloudWatch για καθεμία από τις υπηρεσίες που χρησιμοποιείτε στο σύστημά σας. Εδώ είναι μερικές συμβουλές:

#1. Χρησιμοποιήστε δομημένη καταγραφή

Θα πρέπει να επιμείνετε σε μια μορφή καταγραφής που χρησιμοποιεί ένα προκαθορισμένο σχήμα για την καταγραφή δεδομένων σε δομημένη μορφή. Αυτό διευκολύνει την αναζήτηση και το φιλτράρισμα δεδομένων καταγραφής χρησιμοποιώντας ερωτήματα του CloudWatch Insights.

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

Για παράδειγμα, μπορείτε να ορίσετε ότι κάθε πρόβλημα που σχετίζεται με έναν συγκεκριμένο πίνακα βάσης δεδομένων θα καταγράφεται με αρχικό μήνυμα όπως:[TABLE_NAME] Προειδοποίηση / Σφάλμα: <μήνυμα>”.

Ή μπορείτε να διαχωρίσετε εργασίες πλήρους δεδομένων από εργασίες δεδομένων δέλτα με προθέματα όπως “[FULL/DELTA]” για να επιλέξετε μόνο μηνύματα που σχετίζονται με συγκεκριμένες διαδικασίες δεδομένων.

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

Πηγή: aws.amazon.com

#2. Χρησιμοποιήστε συνεπείς μορφές καταγραφής

Χρησιμοποιήστε συνεπείς μορφές αρχείων καταγραφής σε όλους τους πόρους AWS σας για να διευκολύνετε την αναζήτηση και το φιλτράρισμα δεδομένων καταγραφής χρησιμοποιώντας ερωτήματα του CloudWatch Insights.

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

  Πώς να συνεργαστείτε σε μια παρουσίαση του Microsoft PowerPoint

Το σκληρό γεγονός είναι ότι τα περισσότερα από τα έργα δεν ενοχλούν με κανένα πρότυπο σχετικά με την υλοτομία. Επιπλέον, πολλά έργα δεν δημιουργούν καν προσαρμοσμένα αρχεία καταγραφής. Είναι συγκλονιστικό αλλά και τόσο συνηθισμένο ταυτόχρονα.

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

Έτσι, μια συνεπής μορφή αρχείου καταγραφής είναι ένα ισχυρό πλεονέκτημα. Δεν τα έχουν πολλοί.

#3. Συμπεριλάβετε σχετικά μεταδεδομένα

Συμπεριλάβετε μεταδεδομένα στα δεδομένα καταγραφής σας, όπως χρονικές σημάνσεις, αναγνωριστικά πόρων και κωδικούς σφαλμάτων, για να διευκολύνετε την αναζήτηση και το φιλτράρισμα δεδομένων καταγραφής χρησιμοποιώντας ερωτήματα του CloudWatch Insights.

#4. Ενεργοποίηση Περιστροφής καταγραφής

Ενεργοποιήστε την εναλλαγή αρχείων καταγραφής για να αποτρέψετε τα δεδομένα καταγραφής σας από το να γίνουν πολύ μεγάλα και για να διευκολύνετε την αναζήτηση και το φιλτράρισμα δεδομένων καταγραφής χρησιμοποιώντας ερωτήματα του CloudWatch Insights.

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

#5. Χρησιμοποιήστε τους πράκτορες καταγραφής CloudWatch

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

Παραδείγματα ερωτημάτων πιο περίπλοκων πληροφοριών

Το ερώτημα CloudWatch Insights μπορεί να είναι πιο περίπλοκο από τη δήλωση δύο γραμμών.

fields @timestamp, @message
| filter @message like /ERROR/
| filter @message not like /404/
| parse @message /.*[(?<timestamp>[^]]+)].*"(?<method>[^s]+)s+(?<path>[^s]+).*" (?<status>d+) (?<response_time>d+)/
| stats avg(response_time) as avg_response_time, count() as count by bin(1h), method, path, status
| sort count desc
| limit 20

Αυτό το ερώτημα κάνει τα εξής:

  • Επιλέγει συμβάντα καταγραφής που περιέχουν τη συμβολοσειρά “ERROR” αλλά όχι “404”.
  • Αναλύει το μήνυμα καταγραφής για να εξαγάγει τη χρονική σήμανση, τη μέθοδο HTTP, τη διαδρομή, τον κωδικό κατάστασης και τον χρόνο απόκρισης.
  • Υπολογίζει τον μέσο χρόνο απόκρισης και τον αριθμό των συμβάντων καταγραφής για κάθε συνδυασμό μεθόδου HTTP, διαδρομής, κωδικού κατάστασης και ώρας.
  • Ταξινομεί τα αποτελέσματα μετρώντας με φθίνουσα σειρά.
  • Περιορίζει την έξοδο στα κορυφαία 20 αποτελέσματα.
  • Αυτό το ερώτημα προσδιορίζει τα πιο συνηθισμένα σφάλματα στην εφαρμογή σας και παρακολουθεί τον μέσο χρόνο απόκρισης για κάθε συνδυασμό μεθόδου HTTP, διαδρομής και κώδικα κατάστασης. Μπορείτε να χρησιμοποιήσετε τα αποτελέσματα για να δημιουργήσετε προσαρμοσμένες μετρήσεις και απεικονίσεις στους πίνακες ελέγχου CloudWatch για να παρακολουθείτε την απόδοση της εφαρμογής Ιστού σας και να αντιμετωπίζετε προβλήματα.

    Ένα άλλο παράδειγμα ερωτήματος για τα μηνύματα υπηρεσίας Amazon S3:

    fields @timestamp, @message
    | filter @message like /REST.API.REQUEST/
    | parse @message /.*"(?<method>[^s]+)s+(?<path>[^s]+).*" (?<status>d+) (?<response_time>d+)/
    | stats avg(response_time) as avg_response_time, count() as count by bin(1h), method, path, status
    | sort count desc
    | limit 20
    • Το ερώτημα επιλέγει συμβάντα καταγραφής που περιέχουν τη συμβολοσειρά “REST.API.REQUEST”.
    • Στη συνέχεια αναλύει το μήνυμα καταγραφής για να εξαγάγει τη μέθοδο HTTP, τη διαδρομή, τον κωδικό κατάστασης και τον χρόνο απόκρισης.
    • Υπολογίζει τον μέσο χρόνο απόκρισης και τον αριθμό των γεγονότων καταγραφής για κάθε συνδυασμό μεθόδου HTTP, διαδρομής και κώδικα κατάστασης και ταξινομεί τα αποτελέσματα κατά πλήθος με φθίνουσα σειρά.
    • Περιορίζει την έξοδο στα κορυφαία 20 αποτελέσματα.
      Πώς να ελέγξετε ποιος έκανε retweet ένα tweet

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

    Κατασκευή του ταμπλό

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

    Μετά από αυτό, έτσι φαίνεται ο κώδικας ενός πίνακα ελέγχου CloudWatch και περιέχει μετρήσεις που συμπληρώνονται από δεδομένα ερωτήματος CloudWatch Insights:

    {
        "widgets": [
            {
                "type": "metric",
                "x": 0,
                "y": 0,
                "width": 12,
                "height": 6,
                "properties": {
                    "metrics": [
                        [
                            "AWS/EC2",
                            "CPUUtilization",
                            "InstanceId",
                            "i-0123456789abcdef0",
                            {
                                "label": "CPU Utilization",
                                "stat": "Average",
                                "period": 300
                            }
                        ]
                    ],
                    "view": "timeSeries",
                    "stacked": false,
                    "region": "us-east-1",
                    "title": "EC2 CPU Utilization"
                }
            },
            {
                "type": "log",
                "x": 0,
                "y": 6,
                "width": 12,
                "height": 6,
                "properties": {
                    "query": "fields @timestamp, @message
    | filter @message like /ERROR/
    | stats count() by bin(1h)
    ",
                    "region": "us-east-1",
                    "title": "Application Errors"
                }
            }
        ]
    }

    Αυτός ο πίνακας ελέγχου CloudWatch περιέχει δύο γραφικά στοιχεία:

  • Ένα μετρικό γραφικό στοιχείο που εμφανίζει τη μέση χρήση της CPU μιας παρουσίας EC2 με την πάροδο του χρόνου. Το ερώτημα CloudWatch Insights συμπληρώνει το γραφικό στοιχείο. Επιλέγει τα δεδομένα χρήσης της CPU για μια συγκεκριμένη περίπτωση EC2 και τα συγκεντρώνει σε διαστήματα 5 λεπτών.
  • Ένα γραφικό στοιχείο καταγραφής που εμφανίζει τον αριθμό των σφαλμάτων της εφαρμογής με την πάροδο του χρόνου. Επιλέγει συμβάντα καταγραφής που περιέχουν τη συμβολοσειρά “ERROR” και τα συγκεντρώνει ανά ώρα.
  • Είναι ένα αρχείο μορφής JSON με ορισμό του πίνακα εργαλείων και μετρήσεων μέσα. Περιέχει (ως ιδιότητα) και το ίδιο το ερώτημα insight.

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

    Τελικές Λέξεις

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

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

    Στη συνέχεια, ελέγξτε τα καλύτερα εργαλεία παρακολούθησης AWS.