Der Autor hat dieCreative Commons Corporation ausgewählt, um im Rahmen desWrite for DOnations-Programms eine Spende in Höhe von 100 USD zu erhalten.
Einführung
MongoDB ist eine kostenlose und Open-Source-NoSQL-Dokumentendatenbank, die häufig in modernen Webanwendungen verwendet wird.
In diesem Lernprogramm installieren Sie MongoDB, verwalten den Dienst und aktivieren optional den Remotezugriff.
Voraussetzungen
Um diesem Tutorial zu folgen, benötigen Sie:
-
Ein Ubuntu 18.04-Server, der gemäß dieseninitial server setup tutorial eingerichtet wurde, einschließlich eines Sudo-Nicht-Root-Benutzers und einer Firewall.
[[Schritt-1 - Installation von Mongodb]] == Schritt 1 - Installation von MongoDB
Die offiziellen Paket-Repositorys von Ubuntu enthalten eine aktuelle Version von MongoDB. Dies bedeutet, dass wir die erforderlichen Pakete mitapt
installieren können.
Aktualisieren Sie zunächst die Paketliste, um die neueste Version der Repository-Listen zu erhalten:
sudo apt update
Installieren Sie nun das MongoDB-Paket selbst:
sudo apt install -y mongodb
Mit diesem Befehl werden mehrere Pakete installiert, die die neueste stabile Version von MongoDB sowie hilfreiche Verwaltungstools für den MongoDB-Server enthalten. Der Datenbankserver wird nach der Installation automatisch gestartet.
Vergewissern Sie sich als Nächstes, dass der Server ausgeführt wird und ordnungsgemäß funktioniert.
[[Schritt 2 - Überprüfen des Dienstes und der Datenbank] == Schritt 2 - Überprüfen des Dienstes und der Datenbank
Während des Installationsvorgangs wurde MongoDB automatisch gestartet. Vergewissern Sie sich jedoch, dass der Dienst gestartet wurde und die Datenbank funktioniert.
Überprüfen Sie zunächst den Status des Dienstes:
sudo systemctl status mongodb
Sie sehen diese Ausgabe:
Output● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
Docs: man:mongod(1)
Main PID: 2312 (mongod)
Tasks: 23 (limit: 1153)
CGroup: /system.slice/mongodb.service
└─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Lautsystemd
ist der MongoDB-Server betriebsbereit.
Dies können wir weiter überprüfen, indem wir tatsächlich eine Verbindung zum Datenbankserver herstellen und einen Diagnosebefehl ausführen
Führen Sie diesen Befehl aus:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Dadurch werden die aktuelle Datenbankversion, die Serveradresse und der Port sowie die Ausgabe des Statusbefehls ausgegeben:
OutputMongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
Ein Wert von1
für das Feldok
in der Antwort zeigt an, dass der Server ordnungsgemäß funktioniert.
Als Nächstes schauen wir uns an, wie die Serverinstanz verwaltet wird.
[[Schritt 3 - Verwalten des Mongodb-Dienstes]] == Schritt 3 - Verwalten des MongoDB-Dienstes
MongoDB wird als systemd-Dienst installiert. Dies bedeutet, dass Sie ihn zusammen mit allen anderen Systemdiensten in Ubuntu mit den Standardbefehlensystemd
verwalten können.
Geben Sie Folgendes ein, um den Status des Dienstes zu überprüfen:
sudo systemctl status mongodb
Sie können den Server jederzeit stoppen, indem Sie Folgendes eingeben:
sudo systemctl stop mongodb
Geben Sie Folgendes ein, um den Server nach dem Stoppen zu starten:
sudo systemctl start mongodb
Sie können den Server auch mit einem einzigen Befehl neu starten:
sudo systemctl restart mongodb
Standardmäßig ist MongoDB so konfiguriert, dass es automatisch mit dem Server startet. Wenn Sie den automatischen Start deaktivieren möchten, geben Sie Folgendes ein:
sudo systemctl disable mongodb
Es ist genauso einfach, es wieder zu aktivieren. Verwenden Sie dazu:
sudo systemctl enable mongodb
Als nächstes passen wir die Firewall-Einstellungen für unsere MongoDB-Installation an.
[[Schritt 4 - Anpassen der Firewall - optional]] == Schritt 4 - Anpassen der Firewall (optional)
Angenommen, Sie haben die Anweisungen voninitial server setup tutorialbefolgt, um die Firewall auf Ihrem Server zu aktivieren, ist der Zugriff auf den MongoDB-Server über das Internet nicht möglich.
Wenn Sie den MongoDB-Server nur lokal mit Anwendungen verwenden möchten, die auf demselben Server ausgeführt werden, ist dies die empfohlene und sichere Einstellung. Wenn Sie jedoch über das Internet eine Verbindung zu Ihrem MongoDB-Server herstellen möchten, müssen Sie die eingehenden Verbindungen inufw
zulassen.
Um von überall aus auf MongoDB über den Standardport27017
zugreifen zu können, können Siesudo ufw allow 27017
verwenden. Wenn Sie jedoch den Internetzugriff auf den MongoDB-Server in einer Standardinstallation aktivieren, hat jeder Benutzer uneingeschränkten Zugriff auf den Datenbankserver und seine Daten.
In den meisten Fällen sollte auf MongoDB nur von bestimmten vertrauenswürdigen Speicherorten aus zugegriffen werden, z. B. von einem anderen Server, auf dem sich eine Anwendung befindet. Um diese Aufgabe auszuführen, können Sie den Zugriff auf den Standardport von MongoDB zulassen, während Sie die IP-Adresse eines anderen Servers angeben, der explizit eine Verbindung herstellen darf:
sudo ufw allow from your_other_server_ip/32 to any port 27017
Sie können die Änderung der Firewall-Einstellungen mitufw
überprüfen:
sudo ufw status
In der Ausgabe sollte der Datenverkehr zu Port27017
zulässig sein:
Ausgabe
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
Wenn Sie festgelegt haben, dass nur eine bestimmte IP-Adresse eine Verbindung zum MongoDB-Server herstellen darf, wird die IP-Adresse des zulässigen Speicherorts anstelle vonAnywhere in der Ausgabe aufgeführt.
Weitere erweiterte Firewall-Einstellungen zum Einschränken des Zugriffs auf Dienste finden Sie inUFW Essentials: Common Firewall Rules and Commands.
Obwohl der Port geöffnet ist, überwacht MongoDB derzeit nur die lokale Adresse127.0.0.1
. Fügen Sie die öffentlich routbare IP-Adresse Ihres Servers zurmongod.conf
-Datei hinzu, um Remoteverbindungen zuzulassen.
Öffnen Sie die MongoDB-Konfigurationsdatei in Ihrem Editor:
sudo nano /etc/mongodb.conf
Fügen Sie die IP-Adresse Ihres Servers zum Wert vonbindIP
hinzu:
...
logappend=true
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
...
Stellen Sie sicher, dass zwischen der vorhandenen und der von Ihnen hinzugefügten IP-Adresse ein Komma steht.
Speichern Sie die Datei, beenden Sie den Editor und starten Sie MongoDB neu:
sudo systemctl restart mongodb
MongoDB wartet jetzt auf Remoteverbindungen, aber jeder kann darauf zugreifen. Befolgen Sie Teil 2 vonHow to Install and Secure MongoDB on Ubuntu 16.04, um einen Administrator hinzuzufügen und die Dinge weiter zu sperren.
Fazit
Weitere ausführliche Tutorials zum Konfigurieren und Verwenden von MongoDB inthese DigitalOcean community articles. Das offizielleMongoDB documentation ist auch eine großartige Ressource für die Möglichkeiten, die MongoDB bietet.