Nur für unsere Blog-Besucher: Zusätzlich 3 Monate gratis + 10 % Rabatt auf den Dreijahresplan YSBLOG10
Schnapp dir den Deal

Was ist MongoDB auf einem Linux-Server? – (Vollständige Einrichtungsanleitung)

MongoDB auf einem Linux-Server bezieht sich auf die Ausführung der MongoDB NoSQL-Datenbank auf Distributionen wie Ubuntu, Debian, CentOS, RHEL, AlmaLinux oder Rocky Linux.

Dies umfasst die Installation des mongod-Dienstes, die Konfiguration von Speicher, Sicherheit (Authentifizierung, TLS, Firewall) und Leistungsoptimierung. (WiredTiger-Cache, THP)und die Verwaltung von Backups, Überwachung und Skalierung durch Replikatsätze oder Sharding.

In diesem Leitfaden lernen Sie MongoDB auf Linux-Servern von Grund auf kennen: Was es ist, wie man es installiert und absichert, produktionsreife Konfigurationen, Leistungsoptimierung, Datensicherung, Hochverfügbarkeit und praktische Fehlerbehebung.

Dieses Buch richtet sich an Einsteiger und vielbeschäftigte Systemadministratoren und folgt modernen Best Practices, die auf aktuellen Standards basieren. MongoDB-Releases und beliebte Linux-Distributionen Verteilungen.

Was ist MongoDB und warum sollte man es unter Linux ausführen?

Was ist MongoDB und warum sollte man es unter Linux ausführen?

MongoDB ist eine dokumentenorientierte Datenbank, die Daten als flexible JSON-ähnliche Dokumente speichert und sich dadurch ideal für sich schnell entwickelnde Anwendungen eignet.

Linux ist aufgrund seiner Stabilität, Leistungsfähigkeit, Automatisierungsmöglichkeiten und der erstklassigen Unterstützung durch die offiziellen Pakete und Tools von MongoDB die am weitesten verbreitete Produktionsplattform.

Dokumentenmodell in Kürze

Anstelle von Zeilen und Spalten verwendet MongoDB Sammlungen und Dokumente (BSON). Schemata sind flexibel, Beziehungen können eingebettet oder referenziert werden, und die Indizierung ist leistungsstark. Standardmäßig nutzt MongoDB die WiredTiger-Speicher-Engine für Komprimierung, Zugriffskontrolle und Journaling.

Wenn MongoDB glänzt

Nutzen Sie MongoDB, wenn Sie schnelle Iterationen, semistrukturierte Daten, variable Schemas oder einen hohen Schreibdurchsatz benötigen. Häufige Anwendungsfälle: Inhalte management, Produktkataloge, Ereignisprotokollierung, IoT-Telemetrie, Benutzerprofile und Echtzeitanalysen.

Systemvoraussetzungen und Linux-Überlegungen

Unterstützte Linux-Distributionen

Offizielle Pakete sind für Ubuntu LTS (z. B. 20.04, 22.04), stabile Debian-Versionen und RHEL-kompatible Distributionen (RHEL, CentOS Stream, AlmaLinux, Rocky Linux) verfügbar. Die Hauptversion von MongoDB (z. B. 7.0) muss immer mit einer unterstützten Betriebssystemversion übereinstimmen.

Dimensionierung, Speicherung und Dateisysteme

Gemeinsam CPU, RAMund Speicher-IOPS. Für den Produktivbetrieb empfiehlt sich SSD oder NVMe. XFS wird für WiredTiger empfohlen; ext4 ist für Tests ausreichend. Speichern Sie das Datenverzeichnis nach Möglichkeit auf separaten Volumes und Protokollen. Überwachen Sie die Festplattenlatenz (idealerweise <5–10 ms unter Last).

Kernel- und Betriebssystemoptimierung

Für eine gleichbleibende Leistung sollten Sie diese Linux-Optimierungen anwenden:

  • Transparente riesige Seiten (THP) deaktivieren
  • NUMA-Einstellungen prüfen (Interleaving oder Einzelzone bevorzugen)
  • Erhöhung der Limits (Dateien öffnen, Prozesse)
  • Verwenden Sie einen geeigneten I/O-Scheduler (keinen für NVMe, mq-deadline für SSD/SATA).
# Disable THP (runtime)
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag

# Make persistent via systemd drop-in
sudo tee /etc/systemd/system/disable-thp.service >/dev/null <<'EOF'
[Unit]
Description=Disable Transparent Huge Pages
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
ExecStart=/bin/sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp

# Raise ulimits
sudo tee /etc/security/limits.d/mongodb.conf >/dev/null <<'EOF'
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 32000
mongod hard nproc 32000
EOF

MongoDB auf Ubuntu/Debian installieren (APT)

Nachfolgend sehen Sie ein typisches Installationsablauf für Ubuntu 22.04/20.04 oder Debian mit dem offiziellen MongoDB-Repository. Ersetzen Sie 7.0 durch die gewünschte stabile Hauptversion.

# Import MongoDB public GPG key
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg

# Add repository (Ubuntu example: jammy=22.04, focal=20.04)
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | \
  sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

# Or for Debian, replace 'ubuntu jammy' with your Debian codename and repo path.

sudo apt update
sudo apt install -y mongodb-org

# Enable and start
sudo systemctl enable --now mongod

# Verify
systemctl status mongod --no-pager
mongosh --eval "db.runCommand({ buildInfo: 1 })"

MongoDB auf RHEL/CentOS/AlmaLinux/Rocky installieren (YUM/DNF)

Auf Systemen der RHEL-Familie verwenden Sie das offizielle yum/dnf-Repository. Ersetzen Sie 7.0 durch die gewünschte Hauptversion.

sudo tee /etc/yum.repos.d/mongodb-org-7.0.repo >/dev/null <<'EOF'
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
EOF

sudo dnf install -y mongodb-org
sudo systemctl enable --now mongod

# Verify
sudo systemctl status mongod --no-pager
mongosh --eval "db.adminCommand({ ping: 1 })"

MongoDB auf einem Linux-Server absichern

Adresse binden und Firewall

Standardmäßig bindet MongoDB an 127.0.0.1. Für Fernzugriff binden Sie die Schnittstelle an einen privaten Port und schützen Sie den Zugriff mit einer Firewall. Geben Sie Port 27017 niemals ohne Authentifizierung und TLS im öffentlichen Internet frei.

# /etc/mongod.conf (snippet)
net:
  port: 27017
  bindIp: 127.0.0.1,10.0.0.10
# Ubuntu/Debian (UFW)
sudo ufw allow from 10.0.0.0/24 to any port 27017 proto tcp

# RHEL-family (firewalld)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="27017" accept'
sudo firewall-cmd --reload

# SELinux (if changing port from 27017)
sudo semanage port -a -t mongod_port_t -p tcp 27018 || sudo semanage port -m -t mongod_port_t -p tcp 27018

Authentifizierung aktivieren und Administrator erstellen

SC aktivierenRAM Authentifizierung, Neustart, dann einen Administratorbenutzer erstellen. Datenbanken mit minimalen Berechtigungen betreiben.

# /etc/mongod.conf (snippet)
security:
  authorization: enabled

sudo systemctl restart mongod

# Create admin user
mongosh --host localhost --eval '
use admin;
db.createUser({
  user: "siteAdmin",
  pwd:  passwordPrompt(),   // secure prompt
  roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ]
});'

# Test login
mongosh -u siteAdmin -p --authenticationDatabase admin

Aktivieren Sie TLS für die Verschlüsselung während der Übertragung.

Verwenden Sie ein Serverzertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde. Aktivieren Sie TLS und fordern Sie es für alle Verbindungen an.

# /etc/mongod.conf (snippet)
net:
  tls:
    mode: requireTLS
    certificateKeyFile: /etc/ssl/mongodb/server.pem
    CAFile: /etc/ssl/mongodb/ca.pem

sudo systemctl restart mongod

MongoDB mit systemd verwalten

MongoDB-Installationen Der mongod-Systemd-Dienst. Verwenden Sie systemctl für den Lebenszyklus und journalctl für die Protokolle.

sudo systemctl status mongod
sudo systemctl stop mongod
sudo systemctl start mongod
sudo systemctl restart mongod
sudo journalctl -u mongod -f --no-pager

Der Standardpfad für Daten ist /var/lib/mongo und für Protokolle ist /var/log/mongodb/mongod.log. Wenn Sie Daten verschieben, aktualisieren Sie storage.dbPath in der mongod.conf und stellen Sie die Berechtigungen (Benutzer:Gruppe mongod) sicher.

Grundlegende Verwaltung mit mongosch

# Connect as admin
mongosh -u siteAdmin -p --authenticationDatabase admin

# Create database user for an app
use myapp;
db.createUser({ user: "appUser", pwd: passwordPrompt(), roles: [ { role: "readWrite", db: "myapp" } ] });

# Create collection, insert, and index
db.orders.insertOne({ orderId: 1, total: 49.99, items: ["A1","B2"], createdAt: new Date() });
db.orders.createIndex({ orderId: 1 }, { unique: true });

# Check performance metrics
db.serverStatus().wiredTiger.cache
db.currentOp()

Datensicherung und -wiederherstellung unter Linux

Logische Backups: mongodump/mongorestore

Logische Backups sind portabel und versionskompatibel. Verwenden Sie die Option `--oplog`, um Konsistenz auf laufenden Instanzen und Replikatsätzen zu gewährleisten.

# Full dump with oplog
mongodump --username siteAdmin --authenticationDatabase admin --out /backups/$(date +%F)-dump --oplog

# Restore full dump
mongorestore --drop /backups/2025-01-01-dump

Dateisystem-Snapshots (LVM/ZFS) mit fsyncLock

Bei großen Datensätzen sind Block-Level-Snapshots schnell. Schreibvorgänge werden unterbrochen, ein Snapshot erstellt und anschließend entsperrt.

mongosh -u siteAdmin -p --authenticationDatabase admin --eval 'db.fsyncLock()'
# Take LVM/ZFS snapshot here
mongosh -u siteAdmin -p --authenticationDatabase admin --eval 'db.fsyncUnlock()'

Grundlagen der Leistungsoptimierung

WiredTiger Cache und Komprimierung

Standardmäßig nutzt der WiredTiger-Cache etwa 50 % des Speichers. RAM minus 1 GB. Für spezielle Arbeitslasten ein Limit festlegen. Snappy Compression bietet ein ausgewogenes Verhältnis zwischen Speicherplatz und Geschwindigkeit; zstd kann bei höheren Werten weiter komprimieren. CPU Kosten.

# /etc/mongod.conf (snippet)
storage:
  wiredTiger:
    engineConfig:
      cacheSizeGB: 8
    collectionConfig:
      blockCompressor: snappy

Indizes und Abfragemuster

Entwerfen Sie Indizes, die Ihren häufigsten Abfrageprädikaten und Sortierreihenfolgen entsprechen. Halten Sie Indizes selektiv, vermeiden Sie unbegrenzte reguläre Ausdrücke und überwachen Sie die Abfragen mit `explain()`.

# Find slow queries and add indexes accordingly
db.orders.find({ customerId: 123 }).sort({ createdAt: -1 }).explain("executionStats")
db.orders.createIndex({ customerId: 1, createdAt: -1 })

Überwachungstools

Verwenden Sie native Tools plus Betriebssystemmetriken:

  • mongostat und mongotop für schnelle Systemprüfungen
  • db.serverStatus(), Serverstatus-Metrik-Exporteure (Prometheus/Grafana)
  • journalctl, vmstat, iostat, sar zur Systemleistungsanalyse
mongostat --rowcount 10
mongotop --locks 5
vmstat 1
iostat -x 1

Hochverfügbarkeit und Skalierbarkeit

Replika-Sets

Replikatsätze bieten Redundanz und automatisches Failover. Stellen Sie mindestens drei Knoten in verschiedenen Zonen oder Verfügbarkeitsdomänen bereit. Anwendungen sollten Treiber mit wiederholbaren Schreib- und Lesezugriffen verwenden.

# Initialize a replica set (run on primary)
rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "db1:27017" },
    { _id: 1, host: "db2:27017" },
    { _id: 2, host: "db3:27017", arbiterOnly: false }
  ]
})

Schärfen

Sharding partitioniert Daten horizontal auf mehrere Shards. Wählen Sie einen Shard-Schlüssel mit guter Kardinalität und Verteilung, um Hotspots zu vermeiden. Verwenden Sie Sharded Clusters, wenn Ihr Datensatz oder Durchsatz die Kapazität eines einzelnen Replikatsets übersteigt.

Häufige Fehlerbehebung unter Linux

  • Ckeine Remote-Verbindung herstellen: Überprüfen Sie net.bindIp, Firewall-Regeln und die TLS/Auth-Einstellungen.
  • mongod startet nicht: Überprüfen Sie mit journalctl -u mongod die Dateiberechtigungen für dbPath. Festplattenspeicherund SELinux-Kontexte.
  • Hoch CPU oder Gedächtnis: Untersuchen Sie langsame Abfragen über system.profile, validieren Sie Indizes und überprüfen Sie die Größe des WiredTiger-Caches.
  • Festplatten-E/A-Sättigung: SSD/NVMe-Leistung prüfen, I/O-Scheduler ändern und Seitenfehler sowie Arbeitssatzgröße analysieren.

Häufig gestellte Fragen – MongoDB auf Linux-Server

Ist MongoDB für einen Linux-VPS geeignet?

Ja. Ein Linux-VPS mit NVMe-Speicher und ausreichend RAM ist eine hervorragende Umgebung für kleine bis mittlere MongoDB-Workloads. Für Hochverfügbarkeit empfiehlt sich die Verwendung eines Multi-Node-Replikatsets über separate VPS-Instanzen oder Regionen.

Wie installiere ich MongoDB auf Ubuntu 22.04?

Fügen Sie das offizielle MongoDB-APT-Repository hinzu, installieren Sie mongodb-org und aktivieren und starten Sie anschließend mongod. Beachten Sie die obigen Befehle und ersetzen Sie die Zeile „repo“ durch den korrekten Ubuntu-Codenamen (z. B. „jammy“ für 22.04).

Wie aktiviere ich die MongoDB-Authentifizierung unter Linux?

Setzen Sie `security.authorization: enabled` in `/etc/mongod.conf`, starten Sie `mongod` neu und erstellen Sie einen Administratorbenutzer mit den entsprechenden Rollen in der Administratordatenbank. Testen Sie die Anmeldung mit `mongosh` stets mit den Optionen `-u`, `-p` und `--authenticationDatabase admin`.

Welche Best Practices gibt es, um MongoDB auf einem Linux-Server abzusichern?

Beschränken Sie die Bind-IP, setzen Sie Firewall-Regeln durch, aktivieren Sie Authentifizierung und TLS, halten Sie Betriebssystem und MongoDB auf dem neuesten Stand, begrenzen Sie Berechtigungen, rotieren Sie Anmeldeinformationen und erstellen Sie regelmäßig Backups. Überwachen Sie Protokolle und Metriken, um Anomalien frühzeitig zu erkennen.

Wie sichere und stelle ich MongoDB unter Linux wieder her?

Verwenden Sie mongodump/mongorestore für logische Backups, optional mit --oplog für Datenkonsistenz. Bei großen Datensätzen empfiehlt sich die Verwendung von LVM/ZFS-Snapshots mit fsyncLock/fsyncUnlock. Validieren Sie Backups und testen Sie die Wiederherstellung regelmäßig.
Mit diesen Schritten können Sie MongoDB sicher auf einem Linux-Server betreiben, absichern und skalieren. Wenn Sie einen leistungsoptimierten, produktionsreifen Stack ohne lange Einarbeitungszeit wünschen, YouStableDie Experten von [Name des Unternehmens] können Ihnen von Anfang an helfen, MongoDB richtig einzusetzen.

Teilen per:

Sanjeet Chauhan

Sanjeet Chauhan ist Blogger und SEO-Experte und unterstützt Webseiten dabei, organisch zu wachsen. Er teilt praktische Strategien, umsetzbare Tipps und Erkenntnisse, um den Traffic zu steigern, das Ranking zu verbessern und die Online-Präsenz zu maximieren.

Hinterlasse einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Nach oben scrollen