Menü Schließen

Debian 11 MongoDB installieren

MongoDB Logo

Wer unter Debian 11 Bulseye die Datenbank, MongoDB installieren möchte, kann dies wie folgt durchführen. Installiert wird die MongoDB Community Edition die direkt von MongoDB stammt und auch gepflegt wird. Das Paket bei Debian ist ein anderes.

Falls sich MongoDB >4 nicht starten lässt, was mir unter einer virtuellen Maschine passiert ist und was an einer nicht unterstützten CPU lag, schaut hier nach Kompatibilitäten: Production Notes — MongoDB Manual

Benötigte Pakete installieren:

# apt-get install -y curl apt-transport-https software-properties-common gnupg2

MongoDB 6 unter Debian instalieren

MongoDB 6.0 Key in Debian hinzufügen:

# wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add -

MongoDB Source der Sources.List hinzufügen:

# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/6.0 main" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Cache aktualisieren:

# apt-get update -y

MongoDB Community Edition installieren

# apt-get install -y mongodb-org

MongoDB automatisch starten:

# systemctl daemon-reload
# systemctl enable mongod.service
# systemctl restart mongod.service
# systemctl --type=service --state=active | grep mongod

MongoDB 5 unter Debian installieren

MongoDB 5.0 Key in Debian hinzufügen:

# wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | apt-key add -

MongoDB Source der Sources.List hinzufügen:

# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Cache aktualisieren:

# apt-get update -y

Die folgenden Pakete werden als Teil des MongoDB-org-Pakets installiert.

  • mongodb-org-server – Der mongodb-Server-Daemon.
  • mongodb-org-mongos – Der mongodb mongos-Daemon.
  • monodb-org-shell – Die Mongodb-Shell.
  • monodb-org-tools – Enthält Werkzeuge zum Importieren, Exportieren und andere Dienstprogramme.
# apt-get install -y mongodb-org

MongoDB für den automatischen Start aktivieren:

# systemctl daemon-reload
# systemctl enable mongod.service
# systemctl restart mongod.service
# systemctl --type=service --state=active | grep mongod

läuft MongoDB

# sudo systemctl status mongod

MongoDB 5 Fehler Debian startet nicht

In einer virtuellen Maschine (ProxmoxVE KVM) hatte ich das Problem das MongoDB 5.0 nicht startet:

mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: failed (Result: signal) since Thu 2022-01-20 23:43:55 CET; 1s ago
       Docs: https://docs.mongodb.org/manual
    Process: 14452 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=killed, signal=ILL)
und im syslog:
 traps: mongod[11537] trap invalid opcode ip:

Lösung laut MongoDB 5.0 Handbuch, also einfach die CPU auf min Sandy Bridge konfigurieren und es klappt. Wichtig die CPU muss den Befehlszatz AVX unterstützen.

MongoDB 5.0 requires a Sandy Bridge or newer CPU. Get a newer processor or use an older version of MongoDB. https://jira.mongodb.org/browse/SERVER-54407

MongoDB 4 unter Debian installieren

MongoDB 4.4 Key in Debian hinzufügen:

# wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -

MongoDB Source der Sources.List hinzufügen:

# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Cache aktualisieren

# apt update -y

MongoDB installieren

# apt install -y mongodb-org

MongoDB beim Systemstart starten

# systemctl daemon-reload
# systemctl enable mongod.service
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
# systemctl restart mongod.service
# systemctl --type=service --state=active | grep mongod
mongod.service                                                                         loaded active running MongoDB Database Server

MongoDB System Status und starten

# systemctl start mongod.service
root@debomada01:~# systemctl status mongod.service
● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-01-21 23:20:55 CET; 1s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 3632 (mongod)
     Memory: 16.0M
        CPU: 1.090s
     CGroup: /system.slice/mongod.service
             └─3632 /usr/bin/mongod --config /etc/mongod.conf

Jan 21 23:20:55 debomada01 systemd[1]: Started MongoDB Database Server.

MongoDB Zugriffssteuerung

Normal hat jeder das Recht auf die Datenbank sowohl lesend als auch schreibend zuzugreifen. Wer das nicht möchte ändert es wie folgt.

# nano /etc/mongod.conf

folgendes hinzufügen

security:
   authorization: enabled

Nun die Art des Zugriffs konfigurieren: Enable Access Control — MongoDB Manual

Transparent Huge Pages (THP) deaktivieren

Große Seiten sind oft ein Performanceproblem und sollten daher, Empfelung von MongoDB, deaktiviert werden.

# nano /etc/systemd/system/disable-transparent-huge-pages.service

Folgendes eintragen:

[Unit]
Description=Disable Transparent Huge Pages (THP)
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=mongod.service

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null'

[Install]
WantedBy=basic.target
# systemctl daemon-reload
# systemctl start disable-transparent-huge-pages
# systemctl enable disable-transparent-huge-pages

Prüfung der Einstellung

# cat /sys/kernel/mm/transparent_hugepage/enabled

Output:
always madvise [never]

# systemctl start mongod oder systemctl restart mongod
# systemctl status mongod

MongoDB Version anzeigen

# mongod --version
db version v4.4.12
Build Info: {
    "version": "4.4.12",
    "gitVersion": "51475a8c4d9856eb1461137e7539a0a763cc85dc",
    "openSSLVersion": "OpenSSL 1.1.1k  25 Mar 2021",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "debian10",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

MongoDB Verzeichnisse

Datenbank und Backup unter:


/var/lib/mongo

Logfiles unter:

/var/log/mongodb

MongoDB in der Konsole starten

# mongo
MongoDB shell version v4.4.12
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("629fe194-77c3-4bf9-a421-48f0e43c3ac9") }
MongoDB server version: 4.4.12
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
        https://community.mongodb.com
---
The server generated these startup warnings when booting:
        2022-01-21T23:36:49.776+01:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2022-01-21T23:36:52.229+01:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>

MongoDB deinstallieren

Um MongoDB komplett zu deinstallieren wie folgt

# sudo service mongod stop
# sudo apt-get purge mongodb-org*
# sudo rm -r /var/log/mongodb
# sudo rm -r /var/lib/mongodb

Thats it … Have Fun!

2 Kommentare

  1. Pingback:MeshCentral unter Debian installieren - TASTE-OF-IT

  2. Pingback:Debian zentraler Logserver mit Graylog und Elasticsearch – TASTE-OF-IT

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert