Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix
Αναφορά της Daria Vilkova για το Zabbix Meetup Online

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

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

Δημιουργήσαμε έναν ενεργό παράγοντα - το Mamonsu, ο οποίος παρείχε πιο ευέλικτη παρακολούθηση από ό,τι επέτρεπαν τα τυπικά εργαλεία εκείνη την εποχή, και εξασφάλισε τη συλλογή μετρήσεων και την αποστολή τους στον Zabbix Server. Στην εταιρεία μας, το Mamonsu χρησιμοποιείται στον έλεγχο.

Mamonsu

Το Mamonsu είναι ένας ενεργός παράγοντας (Zabbix Trapper) για την παρακολούθηση της PostgreSQL και του λειτουργικού συστήματος. Το Mamonsu (γραμμένο σε Python) σάς επιτρέπει να διαμορφώσετε τις ρυθμίσεις παρακολούθησης PostgreSQL και λειτουργικού συστήματος σε πέντε λεπτά.

Το Mamonsu έχει πρόσθετα εργαλεία:

  • Το mamonsu tune είναι μια εντολή που επεξεργάζεται τις ρυθμίσεις στο αρχείο διαμόρφωσης PostgreSQL για το μηχάνημα στο οποίο είναι εγκατεστημένος ο παράγοντας Mamonsu.
  • Η αναφορά mamonsu είναι μια εντολή που δημιουργεί απαντήσεις σχετικά με το λειτουργικό σύστημα και την PostgreSQL.

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

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

Πρόγραμμα εργασίας Mamonsu

Διαθέτει Mamonsu

  • Αποτελεσματική εργασία με την PostgreSQL. Μια επίμονη σύνδεση με την PostgreSQL είναι το κύριο πλεονέκτημα του Mamonsu. Σε αυτήν την περίπτωση, ο μέγιστος αριθμός συνδέσεων είναι ίσος με τον μέγιστο αριθμό βάσεων δεδομένων στις οποίες συνδέεται.
  • Επεκτασιμότητα. Το Mamonsu είναι ένας πλήρως "πρόσθετο" πράκτορας και λόγω της σταθερής δομής κάθε πρόσθετου και της σχετικής απλότητας της Python, μπορεί κανείς εύκολα να μάθει πώς να γράφει νέα ή να επεξεργάζεται τυπικά πρόσθετα, δηλαδή παραμέτρους συλλογής μετρήσεων.
  • Ευρεία κάλυψη μετρήσεων παρακολούθησης για PotgreSQL, συμπεριλαμβανομένων μετρήσεων για συγκεκριμένες επεκτάσεις.
  • γρήγορη εκκίνηση, διαθεσιμότητα εκτός συσκευασίας.
  • Μεταφόρτωση προτύπων και αρχείων διαμόρφωσης, καθώς και τη μεταφόρτωση στον διακομιστή Zabbix.
  • Διαγώνια πλατφόρμα, το οποίο είναι σημαντικό για τους πελάτες μας που χρησιμοποιούν διάφορες διανομές Linux, συμπεριλαμβανομένων των εγχώριων.
  • Άδεια χρήσης ρήτρας BSD.

Αυτή τη στιγμή προσφέρουμε πολλά πρόσθετα και σε κάθε επόμενη έκδοση προσπαθούμε να προσθέσουμε κάτι νέο.

  • 14 πρόσθετα για PostgreSQL,
  • 8 πρόσθετα για OS Linux,
  • 4 πρόσθετα για λειτουργικό σύστημα Windows.

Η Mamonsu συλλέγει πάνω από 110 μετρήσεις PostgreSQL και λειτουργικού συστήματος:

  • 70 μετρήσεις PostgreSQL,
  • 40 μετρήσεις OS Linux,
  • 8 μετρήσεις λειτουργικού συστήματος Windows.

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

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

Λίστα διαθέσιμων μετρήσεων στο GitHub

Τρέξτε το Mamonsu σε 5 λεπτά

Για να ρυθμίσετε την παρακολούθηση της PostgreSQL και του λειτουργικού συστήματος χρησιμοποιώντας το Mamonsu, μπορείτε να το κάνετε σε 5 λεπτά ακολουθώντας 5 απλά βήματα.

  1. Εγκατάσταση Mamonsu. Το Mamonsu μπορεί να κατασκευαστεί από την πηγή ή να χρησιμοποιήσει διαθέσιμα πακέτα.

$ git clone ... && cd mamonsu && python setup.py

build && python setup.py install

  1. Ρύθμιση σύνδεσης. Είναι απαραίτητο να ορίσετε τις παραμέτρους σύνδεσης για PostgreSQL και Zabbix Server στο αρχείο agent.conf.

/etc/mamonsu/agent.conf

  1. Εξαγωγή προτύπου στον διακομιστή Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Προσθήκη κεντρικού υπολογιστή στον Zabbix Server. Το εξαγόμενο πρότυπο θα συνδεθεί αυτόματα με τον νέο κεντρικό υπολογιστή στο διακομιστή Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. Запуск.

$ service mamonsu start

Οδηγίες Ανάπτυξης Mamonsu

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

Μονάδα παρακολούθησης PostgreSQL ως μέρος του Zabbix Agent 2

Ένα γρήγορο και δημοφιλές πρόγραμμα οδήγησης χρησιμοποιείται για τη σύνδεση στο PostgreSQL pgx (Πρόγραμμα οδήγησης PG και κιτ εργαλείων για Go).

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

Προσπαθήσαμε να βελτιστοποιήσουμε το έργο του DBMS ομαδοποιώντας μετρήσεις και χρησιμοποιώντας έναν χειριστή (χειριστή) για μετρήσεις και ομάδες μετρήσεων, καθώς και χρησιμοποιώντας ομάδες μετρήσεων σε JSON ως εξαρτημένες μεταβλητές (στοιχεία εξάρτησης) και ανακάλυψη χαμηλού επιπέδου (κανόνες ανακάλυψης ).

Βασικά χαρακτηριστικά

  • διατήρηση μιας επίμονης σύνδεσης με την PostgreSQL μεταξύ των ελέγχων.
  • υποστήριξη για ευέλικτα διαστήματα ψηφοφοριών·
  • συμβατότητα με εκδόσεις PostgreSQL που ξεκινούν από την 10 και Zabbix Server από την έκδοση 4.4.
  • τη δυνατότητα σύνδεσης και παρακολούθησης πολλαπλών παρουσιών PostgreSQL ταυτόχρονα λόγω του γεγονότος ότι το Zabbix Agent 2 σάς επιτρέπει να δημιουργείτε πολλαπλές συνεδρίες.

Επίπεδα παραμέτρων σύνδεσης PostgreSQL

Συνολικά, υπάρχουν τρία επίπεδα παραμέτρων σύνδεσης PostgreSQL, δηλαδή εργασίες και ρυθμίσεις:

  • Παγκόσμια,
  • Συνεδρίες,
  • Μακροεντολές.

  1. Οι καθολικές παράμετροι ορίζονται σε επίπεδο πράκτορα, οι παράμετροι Session και Macros καθορίζουν τις παραμέτρους σύνδεσης της βάσης δεδομένων.

  2. Οι παράμετροι σύνδεσης στο PostgreSQL - Οι περίοδοι λειτουργίας ορίζονται στο αρχείο zabbix_agent2.conf.

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

Επιλογές σύνδεσης PostgreSQL - Συνεδρίες

  • Μετά τη λέξη-κλειδί Συνεδρίες καθορίζεται ένα μοναδικό όνομα συνεδρίας, το οποίο πρέπει να καθοριστεί στο κλειδί (πρότυπο).
  • Παράμετροι URI и UserName απαιτείται για κάθε συνεδρία.
  • Εάν δεν έχει καθοριστεί το όνομα βάσης, χρησιμοποιείται το προεπιλεγμένο κοινό όνομα βάσης για όλες τις περιόδους λειτουργίας PostgreSQL, το οποίο ορίζεται επίσης στο αρχείο διαμόρφωσης.

  1. Οι παράμετροι σύνδεσης στο PostgreSQL - Οι μακροεντολές ορίζονται στο μετρικό κλειδί του προτύπου (παρόμοια με τη μέθοδο που χρησιμοποιείται στο Zabbix Agent 1), δηλαδή δημιουργούνται στο πρότυπο και στη συνέχεια καθορίζονται ως παράμετροι στο κλειδί. Σε αυτήν την περίπτωση, η ακολουθία των μακροεντολών είναι σταθερή, π.χ. URI αναγράφεται πάντα πρώτος.

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

Παράμετροι σύνδεσης PostgreSQL - Μακροεντολές

Η ενότητα παρακολούθησης PostgreSQL περιλαμβάνει ήδη περισσότερες από 95 μετρήσεις που σας επιτρέπουν να καλύψετε ένα αρκετά ευρύ φάσμα παραμέτρων PostgreSQL, όπως:

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

Οι μετρήσεις PostgreSQL δεν είναι ενημερωτικές χωρίς παραμέτρους λειτουργικού συστήματος. Αλλά το Zabbix Agent 2 ξέρει ήδη πώς να συλλέγει τις παραμέτρους του λειτουργικού συστήματος, επομένως για να έχουμε την πλήρη εικόνα, απλώς συνδέουμε τα απαραίτητα πρότυπα στον κεντρικό υπολογιστή.

Χειριστής

Ο χειριστής είναι η κύρια μονάδα της μονάδας στην οποία εκτελείται το ίδιο το αίτημα και που σας επιτρέπει να λαμβάνετε μετρήσεις.

Για να λάβετε μια απλή μέτρηση:

  1. Δημιουργήστε ένα αρχείο για να λάβετε μια νέα μέτρηση:

zabbix/src/go/plugins/postgres/handler_uptime.go

  1. Συνδέουμε το πακέτο και καθορίζουμε το μοναδικό κλειδί (κλειδιά) των μετρήσεων:

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

  1. Δημιουργούμε έναν χειριστή (handler) με ένα αίτημα, δηλαδή ξεκινάμε μια μεταβλητή που θα περιέχει το αποτέλεσμα:

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

  1. Εκτελούμε το αίτημα:

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

Είναι απαραίτητο να ελέγξετε το αίτημα για σφάλματα, μετά το οποίο το αποτέλεσμα θα παραληφθεί από τη διαδικασία Zabbix Agent 2.

  1. Καταχωρίστε το νέο μετρικό κλειδί:

Παρακολούθηση PostgreSQL χρησιμοποιώντας Zabbix

Αφού καταχωρήσετε τη μέτρηση, μπορείτε να δημιουργήσετε ξανά τον παράγοντα με τη νέα μέτρηση.

Η ενότητα είναι διαθέσιμη από το Zabbix 5.0 στον ιστότοπο https://www.zabbix.com/download. Σε αυτήν την έκδοση του Zabbix, οι παράμετροι ρυθμίζονται ξεχωριστά μέσω του κεντρικού υπολογιστή και της θύρας. Στο Zabbix 5.0.2, το οποίο θα κυκλοφορήσει σύντομα, οι παράμετροι σύνδεσης θα συσκευάζονται σε ένα μόνο URI.

Спасибо за внимание!

χρήσιμοι σύνδεσμοι

GitHub Mamonsu

Τεκμηρίωση Mamonsu

Zabbix Git

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο