Die Datenbankverwaltung war traditionell komplex und zeitaufwändig. Die Bereitstellung mit den Problemen in Bezug auf Sicherheit, komplexe Netzwerke, Backup-Planung und -Implementierung sowie Überwachung bereitete Kopfschmerzen. Die Skalierung Ihres Datenbank-Clusters war ein großes Unterfangen. Und in einer Welt, in der 24/7-Verfügbarkeit und schnelle Notfallwiederherstellung erwartet werden, kann die Verwaltung selbst eines einzelnen Datenbank-Clusters eine Vollzeitbeschäftigung sein.
ClusterControl von Multiplenines ist ein Datenbank-Bereitstellungs- und Verwaltungssystem, das die oben genannten Probleme angeht und die schnelle Bereitstellung redundanter, sicherer Datenbank-Cluster oder -Knoten ermöglicht, einschließlich erweiterter Sicherungs- und Überwachungsfunktionen - ob vor Ort oder in der Cloud. Mit Plugins, die unter anderem Nagios, PagerDuty und Zabbix unterstützen, lässt sich ClusterControl gut in bestehende Infrastrukturen und Tools integrieren, damit Sie Ihre Datenbankserver vertrauensvoll verwalten können.
MongoDB ist heute der weltweit führende NoSQL-Datenbankserver. Unter Verwendung von ClusterControl, mit dem Sie entweder die offizielle MongoDB oder Percona Server for MongoDB, das konkurrierende Angebot von Percona, das MongoDB Enterprise-Funktionen enthält, bereitstellen und verwalten können, werden wir die Bereitstellung eines MongoDB-Replikatsatzes mit drei Datenknoten durchgehen und uns einige der Funktionen ansehen der ClusterControl-Anwendung.
Wir werden einige Schlüsselfunktionen von ClusterControl mit Amazon Web Services durchgehen, insbesondere in Bezug auf MongoDB. Amazon Web Services (oder AWS) ist der weltweit größte Infrastructure-as-a-Service-Cloud-Anbieter und hostet Millionen von Benutzern auf der ganzen Welt. Es umfasst viele Dienste für alle Anwendungsfälle, von praktisch unbegrenztem Objektspeicher mit S3 bis hin zu einer hochskalierbaren Infrastruktur für virtuelle Maschinen mit EC2 bis hin zu Enterprise Database Warehousing mit Redshift und sogar Machine Learning.
Nachdem Sie diesen Blog gelesen haben, möchten Sie vielleicht auch unser Whitepaper DIY Cloud Database on Amazon Web Services lesen, in dem Konfigurations- und Leistungsüberlegungen für Datenbankserver in der AWS Cloud ausführlicher erörtert werden. Darüber hinaus haben wir MongoDB DBA werden, ein Whitepaper mit ausführlicheren MongoDB-spezifischen Details.
Zunächst müssen Sie zunächst vier AWS-Instanzen bereitstellen. Für eine Produktionsplattform sollte der Instanztyp sorgfältig ausgewählt werden, basierend auf den Richtlinien, die wir zuvor besprochen haben, aber für unsere Zwecke sind Instanzen mit 2 virtuellen CPUs und 4 GB RAM ausreichend. Einer dieser Knoten wird ClusterControl hosten, die anderen werden verwendet, um die drei Datenbankknoten bereitzustellen.
Beginnen Sie damit, die Sicherheitsgruppe Ihrer Datenbankknoten zu erstellen und eingehenden Datenverkehr auf Port 27017 zuzulassen. Es besteht keine Notwendigkeit, ausgehenden Datenverkehr einzuschränken, aber wenn Sie dies wünschen, lassen Sie ausgehenden Datenverkehr auf den Ports 1024-65535 zu, um die ausgehende Kommunikation von den Datenbankservern zu erleichtern .
Erstellen Sie als Nächstes die Sicherheitsgruppe für Ihren ClusterControl-Knoten. Lassen Sie eingehenden Datenverkehr an den Ports 22 und 80 zu. Fügen Sie diese Sicherheitsgruppen-ID zur Sicherheitsgruppe Ihrer Datenbankknoten hinzu und lassen Sie uneingeschränkte TCP-Kommunikation zu. Dies erleichtert die Kommunikation zwischen den beiden Sicherheitsgruppen, ohne dass externe Clients den ssh-Zugriff auf die Datenbankknoten zulassen.
Starten Sie die Instanzen in ihren jeweiligen Sicherheitsgruppen und wählen Sie für jede Instanz ein Schlüsselpaar aus, für das Sie den SSH-Schlüssel haben. Verwenden Sie für diese Aufgabe dasselbe Schlüsselpaar für alle Instanzen. Wenn Sie den ssh-Schlüssel für Ihr KeyPair verloren haben, müssen Sie ein neues KeyPair erstellen. Wählen Sie beim Starten der Instances nicht das Standard-Amazon-Linux-Image aus, sondern wählen Sie stattdessen ein AMI aus, das auf einem der hier aufgeführten unterstützten Betriebssysteme basiert. Da ich die AWS-Region EU-CENTRAL-1 verwende, werde ich für diesen Zweck das Community-AMI ami-fa2df395, ein CentOS 7.3-Image, verwenden.
Wenn Sie die AWS-Befehlszeilentools installiert haben, verwenden Sie die aws ec2-describe-instances Befehl, der zuvor beschrieben wurde, um zu bestätigen, dass Ihre Instanzen ausgeführt werden – andernfalls zeigen Sie Ihre Instanzen in der AWS-Webkonsole an – und melden Sie sich nach der Bestätigung über ssh bei der ClusterControl-Instanz an.
Kopieren Sie die Datei mit dem öffentlichen Schlüssel, die Sie beim Erstellen Ihres Schlüsselpaars heruntergeladen haben, in die ClusterControl-Instanz. Sie können das scp verwenden Befehl dazu. Belassen wir es vorerst im Standardverzeichnis /home/centos, dem Home-Verzeichnis des Benutzers centos. Ich habe meine s9s.pem genannt. Sie müssen das wget-Tool installiert haben; Installieren Sie es mit dem folgenden Befehl:
$ sudo yum -y install wget
Führen Sie die folgenden Befehle aus, um ClusterControl zu installieren:
$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ ./install-cc # as root or sudo user
Die Installation führt Sie durch einige anfängliche Fragen, danach dauert es einige Minuten, Abhängigkeiten mithilfe des Paketmanagers Ihres Betriebssystems abzurufen und zu installieren.
Wenn die Installation abgeschlossen ist, zeigen Sie Ihren Webbrowser auf http://
Sobald Sie sich erfolgreich angemeldet haben, sehen Sie den folgenden Bildschirm und können mit der Bereitstellung Ihres MongoDB-Replikatsatzes fortfahren.
Abbildung 1:Willkommen bei ClusterControl!Wie Sie sehen können, kann ClusterControl auch vorhandene Datenbank-Cluster importieren, sodass Ihre vorhandene Infrastruktur genauso einfach verwaltet werden kann wie neue Bereitstellungen.
Für unsere Zwecke klicken Sie auf Datenbankcluster bereitstellen . Auf dem nächsten Bildschirm sehen Sie die Auswahl an Datenbankservern und Clustertypen, die ClusterControl unterstützt. Klicken Sie auf die Registerkarte MongoDB ReplicaSet . Hier sind die Werte, um die Sie sich kümmern, SSH-Benutzer , SSH-Schlüsselpfad und Clustername . Der Port sollte bereits 22 sein, der Standard-SSH-Port, und das von uns verwendete AMI erfordert kein Sudo-Passwort .
Abbildung 2:Bereitstellen eines MongoDB-ReplikatsatzesDer ssh-Benutzer für das CentOS 7-AMI ist centos , und der SSH-Schlüsselpfad ist /home/centos/s9s.pem , oder den entsprechenden Pfad, abhängig von Ihrem eigenen Schlüsseldateinamen. Verwenden wir MongoDB-RS0 als Clustername. Wir akzeptieren die Standardoptionen und klicken auf Weiter .
Abbildung 3:Konfigurieren Ihrer BereitstellungHier können wir zwischen dem offiziellen MongoDB-Build und einem Percona-Build wählen. Wählen Sie, was Sie bevorzugen, und geben Sie einen Administratorbenutzer und ein Passwort an, mit denen Sie MongoDB sicher konfigurieren können. Beachten Sie, dass ClusterControl Sie nicht fortfahren lässt, wenn Sie diese Details nicht angeben. Notieren Sie sich die von Ihnen bereitgestellten Anmeldeinformationen. Sie benötigen sie, um sich bei der bereitgestellten MongoDB-Datenbank anzumelden, wenn Sie sie später verwenden möchten. Wählen Sie nun einen Replikatsatznamen oder übernehmen Sie die Standardeinstellung. Wir werden die Anbieter-Repositories verwenden, aber beachten Sie, dass Sie ClusterControl so konfigurieren können, dass es Ihre eigenen Repositories oder die eines Drittanbieters verwendet, wenn Sie dies bevorzugen.
Fügen Sie Ihre Datenbankknoten einzeln hinzu. Sie können die externe IP-Adresse verwenden, aber wenn Sie den Hostnamen angeben, was im Allgemeinen empfohlen wird, zeichnet ClusterControl alle Netzwerkschnittstellen in den Hosts auf, und Sie können die Schnittstelle auswählen, auf der Sie bereitstellen möchten. Nachdem Sie Ihre drei Datenbankknoten hinzugefügt haben, klicken Sie auf Bereitstellen . ClusterControl stellt nun Ihr MongoDB Replica Set bereit. Klicken Sie auf Vollständige Auftragsdetails zu beobachten, wie es die Konfiguration Ihres Clusters durchführt. Wenn der Job abgeschlossen ist, gehen Sie zum Bildschirm „Datenbank-Cluster“ und sehen Sie sich Ihren Cluster an.
Abbildung 4:Automatische WiederherstellungBei genauerer Betrachtung sehen Sie, dass die automatische Wiederherstellung sowohl auf Cluster- als auch auf Knotenebene aktiviert ist. Im Fall von Fehlern versucht ClusterControl, Ihren Cluster oder den einzelnen Knoten mit einem Problem wiederherzustellen. Das grüne Häkchen neben jedem Knoten zeigt auch den Integritätsstatus des Clusters auf einen Blick an.
Abbildung 5:Planen von SicherungenDie letzte Funktion, die wir hier behandeln werden, sind Backups. ClusterControl bietet eine Backup-Funktion, die ein vollständiges Cluster-konsistentes Backup oder einfach einen standardmäßigen mongodump ermöglicht Backup, wenn Sie es vorziehen. Es bietet auch die Möglichkeit, geplante Sicherungen zu erstellen, die regelmäßig nach einem Zeitplan Ihrer Wahl ausgeführt werden. Die Aufbewahrung von Backups wird ebenfalls behandelt, mit der Option, Backups für einen begrenzten Zeitraum aufzubewahren, um Speicherprobleme zu vermeiden.
In diesem Blog habe ich versucht, Ihnen einen kurzen Überblick über die Verwendung von ClusterControl mit MongoDB zu geben, aber es gibt noch viele weitere Funktionen, die von ClusterControl unterstützt werden. Die Bereitstellung von Sharded Clusters mit versteckten und/oder verzögerten Slaves, Arbitern und anderen Funktionen ist verfügbar. Weitere Informationen finden Sie auf unserer Website, wo Sie auch Webinare, Whitepaper, Tutorials und Schulungen finden und ClusterControl kostenlos ausprobieren können.