Table of Contents

MongoDB - ghid de inițiere

MongoDB este o bază de date NoSQL orientată pe documente, concepută pentru flexibilitate și scalabilitate. În loc de tabele și rânduri, stochează datele ca documente asemănătoare JSON – ideal pentru aplicații cu structuri de date în evoluție. Serverul vine cu MongoDB 8.0 complet configurat, cu parola de administrator specificată la comandă. mongo-express este inclus pentru administrarea bazelor de date prin web.


Pasul 1 – Verificați funcționarea MongoDB

Adresa IP și parola root a serverului sunt afișate pe pagina Server Details din panoul clientului. mongo-express este o interfață web de administrare pentru MongoDB. Deschideți http://your.server.ip/mongo-express în browser pentru a verifica funcționarea.

Autentificare administrator MongoDB:

  • Nume de utilizator: admin
  • Parolă: MongoDB Admin Password introdusă la comandă

Cu mongo-express puteți naviga prin baze de date, vizualiza și edita documente, rula interogări și administra colecții fără linie de comandă.

Serverele de baze de date nu au nevoie de acces public la internet. Pentru acces securizat, plasați serverul într-o rețea privată în spatele unui router VyOS și conectați-vă prin VPN la MongoDB și mongo-express pe IP-ul privat al serverului.


Pasul 2 – Conectarea la distanță la MongoDB

MongoDB este configurat să accepte conexiuni la distanță cu autentificare. Vă puteți conecta din orice aplicație sau instrument:

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

Date de conectare pentru instrumentele grafice MongoDB (MongoDB Compass, Studio 3T etc.):

Parametru Valoare
Gazdăyour.server.ip
Port27017
Nume de utilizatoradmin
ParolăAdmin Password (din comandă)
Auth Databaseadmin

Formatul șirului de conectare:

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

Notă: Portul 27017 este protocolul MongoDB, nu HTTP – nu poate fi deschis în browser. Folosiți un client de baze de date sau comanda de mai sus.


Pasul 3 – Activarea SSL pentru mongo-express (opțional)

Dacă aveți un domeniu care indică acest server, puteți activa HTTPS pentru mongo-express cu un certificat gratuit Let’s Encrypt. Conectați-vă prin SSH și rulați:

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

Scriptul va verifica DNS-ul, va obține un certificat și va configura automat Apache pentru HTTPS. După finalizare, mongo-express este disponibil la https://db.yourdomain.com/mongo-express.

Notă: Asigurați-vă că înregistrarea A a domeniului indică IP-ul serverului înainte de a rula scriptul. SSL este opțional – mongo-express funcționează bine prin HTTP cu acces pe adresa IP.


Administrarea bazelor de date

Crearea bazelor de date și utilizatorilor suplimentari

Puteți crea baze de date și utilizatori suplimentari prin mongo-express sau SSH:

mongosh -u admin -p --authenticationDatabase admin

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

Import și export

Prin mongo-express: Folosiți interfața web pentru a vizualiza și edita documente individuale.

Prin linia de comandă (recomandat pentru operațiuni în masă):

# 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

După instalare

Fail2Ban – protecție împotriva atacurilor brute-force

Serverul dumneavoastră include Fail2Ban preconfigurat pentru a proteja atât SSH, cât și mongo-express împotriva atacurilor brute-force.

Regulă Încercări maxime Durata blocării
SSH5 autentificări eșuate10 minute
mongo-express5 autentificări eșuate1 oră

Comenzi utile:

# 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

Dacă vă blocați accidental, conectați-vă prin consola VNC din panoul clientului și deblocați-vă IP-ul.

Administrarea serviciilor

MongoDB, mongo-express și Apache rulează prin systemd. Comenzi uzuale:

# 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

Optimizarea performanței MongoDB

Cache-ul WiredTiger este setat automat la 50% din RAM la prima pornire. Pentru a verifica valoarea curentă:

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

Pentru ajustare manuală, editați /etc/mongod.conf (în secțiunea storage.wiredTiger.engineConfig.cacheSizeGB) și reporniți MongoDB:

systemctl restart mongod

Datele de acces la server

Datele de acces MongoDB și mongo-express sunt stocate în /root/.mongo_credentials.

Ce este preconfigurat

  • Autentificare: Autorizarea MongoDB este activată cu SCRAM-SHA-256. Utilizatorul admin are privilegii root
  • Acces la distanță: MongoDB acceptă conexiuni de la orice IP pe portul 27017
  • Cache WiredTiger: Ajustat automat la 50% din RAM-ul disponibil la prima pornire
  • Interfață web: mongo-express rulează în spatele proxy-ului invers Apache la /mongo-express

Software inclus

Componentă Versiune
Ubuntu24.04 LTS
MongoDB8.0 Community
mongoshinclus cu MongoDB
mongo-expressCea mai recentă
Apache2.4 (reverse proxy)
CertbotCea mai recentă
Fail2Ban1.0

Depanare

Problemă Soluție
Nu se poate conecta la MongoDB de la distanță Verificați că portul 27017 nu este blocat de firewall. Verificați că utilizatorul există și are authenticationDatabase corectă
mongo-express afișează 401 Unauthorized Folosiți numele de utilizator admin și Admin Password din comandă. Datele de acces se află în /root/.mongo_credentials
Pagina mongo-express nu se încarcă Verificarea serviciului: systemctl status mongo-express. Repornire: systemctl restart mongo-express
Autentificarea a eșuat Asigurați-vă că specificați --authenticationDatabase admin. Utilizatorul admin se autentifică în baza de date admin
MongoDB nu pornește Verificarea logurilor: journalctl -u mongod -n 50. Cauză frecventă: disc plin (df -h /) sau YAML invalid în mongod.conf
Ați uitat parola de administrator MongoDB Conectați-vă prin SSH și verificați /root/.mongo_credentials
Blocat de Fail2Ban Deblocați-vă IP-ul prin consola VNC din panoul clientului
Ați uitat parola root Resetați-o prin consola VNC din panoul clientului