Das ist ein Zitat von einem meiner Bekannten, der mich vor langer Zeit mit einer Frage zu Postgres angesprochen hat. Damals haben wir sein Problem innerhalb weniger Tage gelöst, und nachdem er mir gedankt hatte, fügte er hinzu: „Es ist schön, einen bekannten DBA zu haben.“
Was aber tun, wenn es keinen bekannten DBA gibt? Die möglichen Antworten darauf können ziemlich vielfältig sein, angefangen bei der Suche unter Freunden und Bekannten bis hin zum Selbststudium des Themas. Doch egal, welche Antwort Ihnen in den Sinn kommt, ich habe eine gute Nachricht für Sie. In einer Testphase haben wir einen Empfehlungsdienst für Postgres und alles, was damit zusammenhängt, gestartet. Was genau ist das und wie sind wir zu dieser Lösung gekommen?
Was soll das Ganze?
Postgres ist mindestens nicht einfach und manchmal sogar sehr komplex. Das hängt vom Grad der Beteiligung und Verantwortung ab.
Diejenigen, die im Betrieb tätig sind, müssen darauf achten, dass Postgres als Dienst ordnungsgemäß und stabil funktioniert – sie müssen die Ressourcenauslastung, die Verfügbarkeit und die Angemessenheit der Konfiguration überwachen, regelmäßige Updates durchführen und Gesundheitsprüfungen vornehmen. Die Entwickler, die Anwendungen schreiben, müssen im Großen und Ganzen darauf achten, wie die Anwendung mit der Datenbank interagiert und dass sie keine Notfälle verursacht, die die Datenbank zum Absturz bringen könnten. Wenn jemand nicht so viel Glück hat und Tech-Lead/Technikdirektor ist, ist es wichtig, dass Postgres insgesamt zuverlässig, vorhersehbar funktioniert und keine Probleme verursacht, während man selbst nicht zu tief und langfristig in die Materie eintauchen möchte.
In jedem dieser Fälle stehen Sie und Postgres im Mittelpunkt. Um Postgres gut zu betreuen, müssen Sie sich damit auskennen und verstehen, wie es funktioniert. Wenn Postgres nicht Ihre direkte Spezialisierung ist, kann es viel Zeit in Anspruch nehmen, es zu studieren. Im Idealfall, wenn Zeit und Motivation vorhanden sind, ist es nicht immer klar, wo man anfangen und wie man weitermachen soll.
Selbst wenn man sich mit Monitoring umgibt, das eigentlich die Wartung erleichtern sollte, bleibt die Frage des Fachwissens offen. Um Grafiken lesen und verstehen zu können, benötigt man nach wie vor ein gutes Verständnis dafür, wie Postgres aufgebaut ist. Andernfalls verwandelt sich jedes Monitoring in traurige Bilder und Spam von Alarmnachrichten zu zufälligen Tageszeiten.
ist genau dafür gemacht, um die Wartung von Postgres zu erleichtern. Der Dienst sammelt und analysiert Daten über Postgres und gibt Empfehlungen, was verbessert werden kann.
Das Hauptziel des Dienstes besteht darin, verständliche Empfehlungen zu geben, die eine Vorstellung davon vermitteln, was geschieht und was als Nächstes zu tun ist.
Für Fachleute ohne Expertenwissen bieten die Empfehlungen einen Ausgangspunkt zur Weiterbildung. Für fortgeschrittene Spezialisten weisen die Empfehlungen auf Punkte hin, auf die man achten sollte. In dieser Hinsicht fungiert Weaponry als Assistent, der Routineaufgaben bei der Identifizierung von Problemen oder Mängeln übernimmt und besondere Aufmerksamkeit erfordert. Weaponry kann mit einem Linter verglichen werden, der Postgres überprüft und auf Mängel hinweist.
Wie sieht die Situation jetzt aus
Im Moment ist im Testmodus und kostenlos, die Registrierung ist vorübergehend eingeschränkt. Gemeinsam mit einigen Freiwilligen verbessern wir den Empfehlungs-Engine auf nahezu produktiven Basis, identifizieren Fehlalarme und arbeiten an den Texten der Empfehlungen.
Übrigens sind die Empfehlungen bisher ziemlich direkt – sie sagen einfach, was und wie zu tun ist, ohne zusätzliche Details – sodass man anfangs zu begleitenden Links wechseln oder selbst nachrecherchieren muss. Die Überprüfungen und Empfehlungen umfassen die Einstellungen des Systems und der Hardware, die Konfiguration von Postgres selbst, das innere Schema und die verwendeten Ressourcen. Es gibt noch viele weitere Dinge, die wir hinzufügen möchten.
Natürlich suchen wir auch nach Freiwilligen, die bereit sind, den Dienst auszuprobieren und Feedback zu geben. Darüber hinaus haben wir dort kann man vorbeischauen und sehen. Wenn Sie verstanden haben, dass dies für Sie erforderlich ist und bereit sind es auszuprobieren, dann schreiben Sie uns an .
Aktualisiert am 16.09.2020. Erste Schritte.
Nach der Registrierung wird der Benutzer aufgefordert, ein Projekt zu erstellen – das es ermöglicht, Datenbank-Instanzen in Gruppen zu bündeln. Nach der Erstellung des Projekts wird der Benutzer zur Anleitung für die Einrichtung und Installation des Agents geleitet. Kurz gesagt, man muss Benutzer für den Agenten erstellen, dann das Installationsskript für den Agenten herunterladen und ausführen. In Shell-Befehlen sieht das ungefähr so aus:
psql -c "CREATE ROLE pgscv WITH LOGIN SUPERUSER PASSWORD 'A7H8Wz6XFMh21pwA'"
export PGSCV_PG_PASSWORD=A7H8Wz6XFMh21pwA
curl -s https://dist.weaponry.io/pgscv/install.sh |sudo -E sh -s - 1 6ada7a04-a798-4415-9427-da23f72c14a5Wenn auf dem Host Pgbouncer installiert ist, muss auch ein Benutzer für die Verbindung des Agents erstellt werden. Die spezifische Methode zur Einrichtung des Benutzers in Pgbouncer kann sehr variabel sein und hängt stark von der verwendeten Konfiguration ab. Im Großen und Ganzen besteht die Konfiguration darin, den Benutzer zu der stats_users Konfigurationsdatei hinzuzufügen (in der Regel ist das die pgbouncer.ini) und das Passwort (oder den Hash davon) in die Datei zu schreiben, die im Parameter auth_file. Wenn sich stats_users ändert, ist ein Neustart von Pgbouncer erforderlich.
Das Skript install.sh akzeptiert eine Reihe von obligatorischen Argumenten, die für jedes Projekt einzigartig sind, und nimmt über Umgebungsvariablen die Anmeldedaten der erstellten Benutzer entgegen. Anschließend startet das Skript den Agenten im Bootstrap-Modus – der Agent kopiert sich selbst in den PATH, erstellt eine Konfiguration mit den Anmeldedaten, ein systemd-Unit und wird als systemd-Dienst gestartet.
Damit ist die Installation abgeschlossen. Innerhalb weniger Minuten erscheint die Datenbankinstanz in der Liste der Hosts in der Benutzeroberfläche, und man kann bereits die ersten Empfehlungen einsehen. Ein wichtiger Punkt ist jedoch, dass viele Empfehlungen eine große Menge an gesammelten Metriken erfordern (mindestens über einen Zeitraum von 24 Stunden).
Quelle: habr.com
