So installieren Sie MongoDB unter Ubuntu 18.04

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 Standardbefehlensystemdverwalten 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 vonbindIPhinzu:

...
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.