Table of Contents

MongoDB - průvodce pro začátečníky

MongoDB je dokumentově orientovaná NoSQL databáze navržená pro flexibilitu a škálovatelnost. Místo tabulek a řádků ukládá data jako dokumenty podobné JSON – ideální pro aplikace s měnící se strukturou dat. Server obsahuje plně nakonfigurovaný MongoDB 8.0 s heslem administrátora, které jste zadali při objednávce. Pro správu databází přes web je k dispozici mongo-express.


Krok 1 – Ověřte, že MongoDB funguje

IP adresa a heslo root vašeho serveru jsou uvedeny na stránce Server Details v klientském panelu. mongo-express je webové administrační rozhraní pro MongoDB. Otevřete http://your.server.ip/mongo-express v prohlížeči a ověřte, že funguje.

Přihlášení administrátora MongoDB:

  • Uživatelské jméno: admin
  • Heslo: MongoDB Admin Password, které jste zadali při objednávce

V mongo-express můžete procházet databáze, zobrazovat a upravovat dokumenty, spouštět dotazy a spravovat kolekce bez příkazového řádku.

Databázové servery nepotřebují veřejný přístup z internetu. Pro bezpečný přístup umístěte server do privátní sítě za router VyOS a k MongoDB a mongo-express se připojujte přes VPN na privátní IP serveru.


Krok 2 – Vzdálené připojení k MongoDB

MongoDB je nakonfigurován k přijímání vzdálených připojení s ověřováním. Připojit se můžete z libovolné aplikace nebo nástroje:

mongosh "mongodb://admin:your_admin_password@your.server.ip:27017/admin"

Údaje pro připojení z grafických nástrojů MongoDB (MongoDB Compass, Studio 3T atd.):

Parametr Hodnota
Hostitelyour.server.ip
Port27017
Uživatelské jménoadmin
HesloAdmin Password (z objednávky)
Auth Databaseadmin

Formát připojovacího řetězce:

mongodb://admin:your_admin_password@your.server.ip:27017/admin

Poznámka: Port 27017 je protokol MongoDB, ne HTTP – v prohlížeči ho otevřít nelze. Použijte databázového klienta nebo příkaz výše.


Krok 3 – Zapnutí SSL pro mongo-express (volitelné)

Pokud na tento server směřuje vaše doména, můžete pro mongo-express zapnout HTTPS s bezplatným certifikátem Let’s Encrypt. Připojte se přes SSH a spusťte:

ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com

Skript ověří DNS, získá certifikát a automaticky nastaví Apache pro HTTPS. Po dokončení je mongo-express dostupný na https://db.yourdomain.com/mongo-express.

Poznámka: Před spuštěním skriptu se ujistěte, že A záznam vaší domény směřuje na IP serveru. SSL je volitelné – mongo-express funguje bez problémů přes HTTP s přístupem přes IP adresu.


Správa databází

Vytváření dalších databází a uživatelů

Další databáze a uživatele můžete vytvořit přes mongo-express nebo SSH:

mongosh -u admin -p --authenticationDatabase admin

use newdb
db.createUser({
    user: "newuser",
    pwd: "strong_password",
    roles: [{ role: "readWrite", db: "newdb" }]
})

Import a export

Přes mongo-express: Webové rozhraní použijte k zobrazení a úpravě jednotlivých dokumentů.

Přes příkazový řádek (doporučeno pro hromadné operace):

# Export entire database
mongodump -u admin -p your_admin_password --authenticationDatabase admin -d your_database -o /tmp/backup/

# Import database
mongorestore -u admin -p your_admin_password --authenticationDatabase admin -d your_database /tmp/backup/your_database/

# Export single collection to JSON
mongoexport -u admin -p your_admin_password --authenticationDatabase admin -d your_database -c your_collection -o collection.json

# Import JSON into collection
mongoimport -u admin -p your_admin_password --authenticationDatabase admin -d your_database -c your_collection --file collection.json

Po instalaci

Fail2Ban – ochrana proti útokům hrubou silou

Váš server obsahuje Fail2Ban předkonfigurovaný k ochraně SSH i mongo-express proti útokům hrubou silou.

Pravidlo Max. počet pokusů Doba blokace
SSH5 neúspěšných přihlášení10 minut
mongo-express5 neúspěšných přihlášení1 hodina

Užitečné příkazy:

# Check banned IPs
fail2ban-client status mongo-express
fail2ban-client status sshd

# Unban an IP
fail2ban-client set mongo-express unbanip 1.2.3.4

Pokud se omylem zablokujete, připojte se přes konzoli VNC v klientském panelu a odblokujte svou IP.

Správa služeb

MongoDB, mongo-express a Apache běží přes systemd. Běžné příkazy:

# Check service status
systemctl status mongod
systemctl status mongo-express
systemctl status apache2

# Restart MongoDB
systemctl restart mongod

# View MongoDB logs
journalctl -u mongod -n 100

Ladění výkonu MongoDB

Cache WiredTiger se při prvním startu automaticky nastaví na 50 % RAM. Aktuální hodnotu zjistíte takto:

mongosh -u admin -p --authenticationDatabase admin --eval "db.serverStatus().wiredTiger.cache"

Pro ruční úpravu upravte /etc/mongod.conf (v sekci storage.wiredTiger.engineConfig.cacheSizeGB) a restartujte MongoDB:

systemctl restart mongod

Přihlašovací údaje serveru

Přihlašovací údaje MongoDB a mongo-express jsou uloženy v /root/.mongo_credentials.

Co je předkonfigurováno

  • Ověřování: Autorizace MongoDB zapnutá se SCRAM-SHA-256. Uživatel admin má oprávnění root
  • Vzdálený přístup: MongoDB přijímá připojení z libovolné IP na portu 27017
  • Cache WiredTiger: Automaticky nastavena na 50 % dostupné RAM při prvním startu
  • Webové rozhraní: mongo-express běží za reverzní proxy Apache na /mongo-express

Zahrnutý software

Komponenta Verze
Ubuntu24.04 LTS
MongoDB8.0 Community
mongoshsoučástí MongoDB
mongo-expressNejnovější
Apache2.4 (reverse proxy)
CertbotNejnovější
Fail2Ban1.0

Řešení problémů

Problém Řešení
Nelze se vzdáleně připojit k MongoDB Zkontrolujte, že port 27017 neblokuje firewall. Ověřte, že uživatel existuje a má správnou authenticationDatabase
mongo-express hlásí 401 Unauthorized Použijte uživatelské jméno admin a Admin Password z objednávky. Přihlašovací údaje jsou v /root/.mongo_credentials
Stránka mongo-express se nenačte Kontrola služby: systemctl status mongo-express. Restart: systemctl restart mongo-express
Ověření selhalo Nezapomeňte zadat --authenticationDatabase admin. Uživatel admin se ověřuje vůči databázi admin
MongoDB se nespustí Kontrola logů: journalctl -u mongod -n 50. Častá příčina: plný disk (df -h /) nebo neplatný YAML v mongod.conf
Zapomenuté heslo administrátora MongoDB Připojte se přes SSH a zkontrolujte /root/.mongo_credentials
Blokováno službou Fail2Ban Odblokujte svou IP přes konzoli VNC v klientském panelu
Zapomenuté heslo root Obnovte jej přes konzoli VNC v klientském panelu