PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Tipps für die Remoteverwaltung von PostgreSQL

Für die Remote-Verwaltung Ihrer PostgreSQL-Datenbank-Cluster steht Ihnen eine Vielzahl von Ressourcen zur Verfügung. Mit den richtigen Tools ist die Verwaltung aus der Ferne keine schwierige Aufgabe.

Die Verwendung von vollständig verwalteten Diensten für PostgreSQL bietet eine Beobachtbarkeit, die Ihnen das meiste liefern kann, was Sie zum Verwalten Ihrer Datenbank benötigen. Sie bieten Ihnen ein Warnsystem, Metriken, die Automatisierung zeitaufwändiger Systemadministrationsaufgaben, die Verwaltung Ihrer Backups usw.

Bei der Ausführung vor Ort ist es eine andere Herausforderung. Das werden wir in diesem Blog behandeln. Wir geben Tipps zur Fernverwaltung Ihres PostgreSQL-Datenbank-Clusters.

Datenbankbeobachtbarkeit

Der Begriff Beobachtbarkeit mag einigen Leuten nicht geläufig sein. Beobachtbarkeit gehört nicht der Vergangenheit an, sondern ist der Trend bei der Verwaltung Ihrer Datenbanken (oder sogar PaaS- oder SaaS-Anwendungen). Beobachtbarkeit befasst sich mit der Überwachung, deckt aber bis zu einem gewissen Grad die Fähigkeit ab, den Zustand Ihrer Datenbankgesundheit und -leistung zu bestimmen, und verfügt über eine proaktive und reaktive Fähigkeit, die auf der Grundlage eines bestimmten Status Ihrer Datenbankknoten entscheidet.

Ein gutes Beispiel dafür ist ClusterControl. Wenn ClusterControl Warnungen basierend auf den Überprüfungen einer bestimmten Konfiguration erkennt, sendet es Warnungen an die bereitgestellten Kanäle. Diese können vom System- oder Datenbankadministrator eingerichtet und angepasst werden.

Wenn Ihre primäre Datenbank heruntergestuft wurde und keine Transaktionen verarbeiten kann (entweder Lese- oder Schreibvorgänge), wird ClusterControl entsprechend reagieren und ein Failover auslösen, damit ein neuer Knoten die ungerechtfertigte Ursache des überlaufenden Datenverkehrs verarbeiten kann. Während dies geschieht, kann ClusterControl die Ingenieure benachrichtigen, was passiert ist, indem es Alarme auslöst und Warnungen sendet. Protokolle werden ebenfalls zentralisiert und welche Untersuchungs- und Diagnoseaufgaben können an einem Ort durchgeführt werden, sodass Sie schnell Ergebnisse liefern können.

Obwohl dies nicht bedeuten muss, dass ClusterControl ein komplettes Paket für Observability ist, ist es eines der mächtigen Tools. Es gibt Tools mit einer stärkeren Architektur, um insbesondere in containerisierten Umgebungen wie Rancher gemischt mit Datadog verwaltet zu werden.

Wie hilft Ihnen das bei der Fernverwaltung?

Ein Grundprinzip des Managements ist Seelenfrieden. Wenn ein Problem auftritt, müssen die Tools, die Sie für die Observability verwenden, in der Lage sein, Sie per E-Mail, SMS oder über eine Pager-Anwendung (wie PagerDuty) zu benachrichtigen, um Sie über den Status Ihres Datenbankclusters zu informieren,

oder Sie können Benachrichtigungen wie die folgenden erhalten...

Es ist sehr wichtig, dass Sie benachrichtigt werden, wenn Änderungen auftreten. Sie können dann den Zustand Ihrer Infrastruktur verbessern und analysieren und alle Auswirkungen vermeiden, die sich auf das Geschäft auswirken können.

Datenbankautomatisierung

Es ist sehr wichtig, dass die meisten zeitaufwändigen Aufgaben automatisiert werden. Die Automatisierung ermöglicht es Ihnen, die Arbeitskraft zu reduzieren. Was bedeutet es, Ihre PostgreSQL-Datenbankcluster zu automatisieren?

Failover

Failover ist ein automatischer Ansatz, der auftritt, wenn ein beispielloser Vorfall auftritt (z. B. ein Hardwarefehler, ein Systemabsturz, ein Stromausfall in Ihrem primären Hauptknoten oder ein Netzwerkverlust im gesamten Rechenzentrum). . Ihre Failover-Kapazität muss regelmäßig getestet werden und branchenüblichen Verfahren entsprechen. Die Diensterkennung eines internen Fehlers muss bis zu dem Punkt gehen, an dem er als wahr festgestellt wurde und tatsächlich auftritt.

Wenn in ClusterControl ein Vorfall auftritt, löst es den Failover-Mechanismus aus und befördert den aktuellsten Standby-Knoten und löst dann Alarme aus, wie unten gezeigt ...

Dann funktioniert es im Hintergrund für ein Failover, wie Sie unten gesehen haben , der Fortschritt ist in Bewegung.

belassen Sie das Ergebnis so, wie es unten endet...

Sicherungsplanung

Backups sind ein sehr wichtiger Bestandteil der Notfall- und Wiederherstellungsplanung (DRP). Backups dienen als Ihr Rückgrat, wenn Ihre Clusterdaten verloren gehen, nachdem ein Split Brain oder eine Netzwerkpartition aufgetreten ist. Es gibt bestimmte Fälle, in denen pg_rewind ebenfalls von Vorteil sein kann, aber die Automatisierung Ihrer Backups ist immer sehr wichtig, um solch einen großen Datenverlust und geringere RPO und RTO zu vermeiden.

In ClusterControl können Sie ohne spezielle Tools ein Backup erstellen oder erstellen oder Dienstprogramme hinzufügen, um ein automatisiertes Backup per Skript zu erstellen. Alle sind da und es liegt an Ihrer Organisation, wann die Sicherung stattfindet und welche Richtlinien für Ihre Sicherung gelten, einschließlich ihrer Aufbewahrung. Tatsächlich ist das Wichtigste hier, dass die Sicherung Ihre Produktionsumgebung nicht beeinträchtigt und Ihre Knoten nicht sperrt, wenn die Sicherung stattfindet.

Die Backup-Verifizierung spielt auch hier eine sehr wichtige Rolle. Seien Sie versichert, dass Ihr Backup ein gültiger Backup-Typ sein muss und eine zuverlässige Kopie ist, wenn eine Krise eintritt. Fügen Sie den Mechanismus hinzu, um Ihr Backup nicht nur in Ihren Räumlichkeiten oder Ihrem Rechenzentrum zu speichern, sondern es auch anderswo sicher zu speichern, z. B. in der Cloud oder in AWS S3 oder Google Cloud Storage.

Mit ClusterControl wurde dies einfach und im Alleingang auf der Plattform erledigt, indem Sie einfach der unten gezeigten GUI folgen,

Auf diese Weise können Sie die von Ihnen gewählte Sicherungsmethode übernehmen und in der Cloud speichern, um die Aufbewahrung und Sicherheit der Sicherung zu erhöhen, indem Sie Ihre Sicherungskopie nicht nur in einer Quelle, sondern auch in der Cloud verteilen. Dann haben Sie die Möglichkeit, die Sicherung zu überprüfen, sobald die Erstellung der Sicherung abgeschlossen ist, um zu überprüfen, ob es sich um eine gültige Sicherung handelt oder nicht. Ein Teil davon ist, dass Sie Ihre Sicherung auch verschlüsseln können, was eine sehr wichtige Praxis bei der Speicherung Ihrer Daten im Ruhezustand und der Einhaltung von Sicherheitsrichtlinien ist.

Datenbanksicherheit

Sicherheit ist normalerweise das Hauptanliegen der Mehrheit, wenn es um die Remote-Verwaltung Ihres PostgreSQL-Datenbank-Clusters geht. Wer kann remote auf die Datenbank zugreifen oder soll es nur lokal sein? Wie man Sicherheitsbeschränkungen hinzufügt und wie man die Benutzer verwaltet und die Berechtigung des Benutzers durch einen Sicherheitsanalysten überprüft. Es ist sehr wichtig, einen besseren Überblick zu haben und ein klares Bild Ihrer Architektur zu vermitteln, damit analysiert werden kann, wo die Schlupflöcher sind und was die notwendigen Dinge sind, um die Sicherheit zu verbessern oder zu verschärfen.

ClusterControl bietet Ihnen eine Übersicht und Verwaltung Ihrer PostgreSQL-Benutzer und stellt Ihnen eine Visualisierung und einen Editor für Ihre pg_hba.conf zur Verfügung, der verwaltet, wie die Benutzer authentifiziert werden können.

Für die Benutzerverwaltung bietet es einen Überblick über die Liste der Benutzer und deren Berechtigungen im Datenbank-Cluster. Außerdem können Sie hier die Berechtigungen des Benutzers ändern oder ändern, wenn dies nicht Ihren Sicherheits- und Unternehmensrichtlinien entspricht. Die Fernverwaltung erfordert, dass alle Ihre Benutzer bestimmte Berechtigungen und Rollen haben müssen und wann sie nur verwendet oder aufgerufen werden können, und die Rolle begrenzt, um Schäden in Ihrer Datenbank zu vermeiden.

Es ist auch sehr wichtig, in Ihrem PostgreSQL zu überprüfen und sicherzustellen, dass es keine Fehler gibt mit der Authentifizierung des Benutzers. Wann es zugelassen werden kann und in welchem ​​Umfang es möglich ist, eine Verbindung zu den Servern herzustellen. Es ist am besten, dies wie unten dargestellt zu visualisieren,

Auf diese Weise können Sie die Authentifizierung leicht überprüfen und vermeiden, dass sie für solche möglichen Schlupflöcher übersehen wird dass sich ein Angreifer aufgrund schwacher Authentifizierungsregeln anmelden kann.

Die Verwendung von SSL und Verschlüsselung erhöht die Sicherheit und Robustheit, wenn auf Ihre Datenbank aus der Ferne zugegriffen wird. Wenn Sie jedoch von außerhalb Ihres Unternehmens auf Ihre Datenbank zugreifen, ist es am besten, Ihre Daten zu kapseln, indem Sie sich beispielsweise über ein VPN anmelden. Sie können unseren Blog zu Multi-DC PostgreSQL:Einrichten eines Standby-Knotens an einem anderen geografischen Standort über ein VPN lesen.

Zentralisierte Datenbankprotokolle

Die Zentralisierung aggregierter Protokolle bietet Ihnen eine sehr bequeme Möglichkeit, ein Sicherheitsanalysetool zu untersuchen und zu implementieren, um Ihre Datenbankcluster und ihr Verhalten zu verstehen. Dies ist sehr vorteilhaft bei der Verwaltung entfernter Datenbanken. Einige gängige Ansätze verwenden Logstash mit dem ELK-Stack oder dem leistungsstarken Open-Source-Management für Protokolle, Graylog.

Warum ist es wichtig, Ihre Datenbankprotokolle zu zentralisieren?

Falls Sie ein Cluster-weites Problem untersuchen und sehen müssen, was durch Ihre Datenbank-Cluster, Proxys oder Load Balancer gegangen ist. Es ist sehr praktisch, nur einen Ort zu betrachten. Mit einigen sehr reichhaltigen und leistungsstarken Tools, wie ich sie oben erwähnt habe, können Sie dynamisch und in Echtzeit suchen. Sie bieten auch Metriken und Diagramme, was eine sehr bequeme Art der Analyse ist.

Mit ClusterControl wird der Zugriff auf die Protokolle erleichtert. Obwohl die Protokolle nicht zentral gesammelt und gespeichert werden, bietet es Ihnen einen Überblick und die Möglichkeit, die Protokolle zu lesen. Siehe unten...

Sie können sogar die Jobs überprüfen, was ClusterControl erkannt und gehandelt hat, entweder basierend auf den Alarmen oder wie unten durch die Jobs gegangen,

Fazit

Die Remote-Verwaltung Ihrer PostgreSQL-Datenbankcluster kann entmutigend sein, insbesondere wenn es um Sicherheit, Überwachung und Failover geht. Wenn Sie über die richtigen Tools, Industriestandards und Best Practices für Implementierung, Sicherheit und Beobachtbarkeit verfügen, können Sie Ihre Datenbank beruhigt verwalten. unabhängig von Ihrem Standort.