Table of Contents

MongoDB - Przewodnik na start

MongoDB to dokumentowa baza danych NoSQL zaprojektowana z myślą o elastyczności i skalowalności. Zamiast tabel i wierszy przechowuje dane w postaci dokumentów podobnych do JSON, dzięki czemu doskonale sprawdza się w aplikacjach o zmieniającej się strukturze danych. Ten serwer jest dostarczany z w pełni skonfigurowanym MongoDB 8.0 oraz hasłem administratora podanym podczas składania zamówienia. W zestawie znajduje się również mongo-express, który umożliwia zarządzanie bazą danych przez przeglądarkę internetową.


Krok 1 – Sprawdź, czy MongoDB działa

Adres IP serwera oraz hasło użytkownika root znajdziesz w sekcji Server Information na karcie Overview swojego serwera w panelu klienta. mongo-express to internetowy panel administracyjny dla MongoDB. Otwórz w przeglądarce http://your.server.ip/mongo-express, aby sprawdzić, czy działa.

Dane logowania administratora MongoDB:

  • Nazwa użytkownika: admin
  • Hasło: hasło administratora MongoDB podane podczas składania zamówienia

Za pomocą mongo-express możesz przeglądać bazy danych, wyświetlać i edytować dokumenty, wykonywać zapytania oraz zarządzać kolekcjami bez używania wiersza poleceń.

Serwery baz danych nie powinny być dostępne publicznie z Internetu. Dla bezpiecznego dostępu umieść serwer w sieci prywatnej za routerem VyOS i łącz się przez VPN, korzystając z prywatnego adresu IP serwera, aby uzyskać dostęp do MongoDB i mongo-express.


Krok 2 – Połącz się z MongoDB zdalnie

MongoDB jest skonfigurowane do przyjmowania zdalnych połączeń z uwierzytelnianiem. Możesz połączyć się z dowolnej aplikacji lub narzędzia:

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

Parametry połączenia dla narzędzi z graficznym interfejsem (MongoDB Compass, Studio 3T itp.):

Parametr Wartość
Hostyour.server.ip
Port27017
Nazwa użytkownikaadmin
HasłoHasło administratora (z zamówienia)
Baza uwierzytelnianiaadmin

Format ciągu połączenia:

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

Uwaga: Port 27017 obsługuje protokół MongoDB, a nie HTTP, dlatego nie można go otworzyć w przeglądarce. Skorzystaj z klienta bazy danych lub z powyższego polecenia.


Krok 3 – Włącz SSL dla mongo-express (opcjonalnie)

Jeśli Twoja domena wskazuje na ten serwer, możesz włączyć HTTPS dla mongo-express za pomocą bezpłatnego certyfikatu Let’s Encrypt. Połącz się przez SSH i uruchom:

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

Skrypt automatycznie zweryfikuje rekord DNS, pobierze certyfikat i skonfiguruje Apache do obsługi HTTPS. Po zakończeniu mongo-express będzie dostępny pod adresem https://db.yourdomain.com/mongo-express.

Uwaga: Przed uruchomieniem skryptu upewnij się, że rekord A domeny wskazuje na adres IP serwera. SSL jest opcjonalny. mongo-express działa również poprawnie przez HTTP przy dostępie z wykorzystaniem adresu IP.


Zarządzanie bazą danych

Tworzenie dodatkowych baz danych i użytkowników

Dodatkowe bazy danych i użytkowników możesz tworzyć za pomocą mongo-express lub przez SSH:

mongosh -u admin -p –authenticationDatabase admin use newdb db.createUser({ user: „newuser”, pwd: „strong_password”, roles: [{ role: „readWrite”, db: „newdb” }] })

Import i eksport danych

Przez mongo-express: Korzystaj z interfejsu WWW do przeglądania i edytowania pojedynczych dokumentów.

Przez wiersz poleceń (zalecane przy większych operacjach):

# Eksport całej bazy danych mongodump -u admin -p your_admin_password –authenticationDatabase admin -d your_database -o /tmp/backup/ # Import bazy danych mongorestore -u admin -p your_admin_password –authenticationDatabase admin -d your_database /tmp/backup/your_database/ # Eksport pojedynczej kolekcji do JSON mongoexport -u admin -p your_admin_password –authenticationDatabase admin -d your_database -c your_collection -o collection.json # Import pliku JSON do kolekcji mongoimport -u admin -p your_admin_password –authenticationDatabase admin -d your_database -c your_collection –file collection.json

Po instalacji

Fail2Ban – Ochrona przed atakami brute force

Serwer jest dostarczany z prekonfigurowanym Fail2Ban, który chroni zarówno SSH, jak i mongo-express przed atakami brute force.

Reguła Maksymalna liczba prób Czas blokady
SSH5 nieudanych logowań10 minut
mongo-express5 nieudanych logowań1 godzina

Przydatne polecenia:

# Sprawdź zablokowane adresy IP fail2ban-client status mongo-express fail2ban-client status sshd # Odblokowanie adresu IP fail2ban-client set mongo-express unbanip 1.2.3.4

Jeśli przypadkowo zablokujesz sobie dostęp, połącz się z serwerem przez konsolę VNC w panelu klienta i odblokuj swój adres IP.

Zarządzanie usługami

MongoDB, mongo-express oraz Apache działają jako usługi systemd. Najczęściej używane polecenia:

# Sprawdź status usług systemctl status mongod systemctl status mongo-express systemctl status apache2 # Uruchom ponownie MongoDB systemctl restart mongod # Wyświetl logi MongoDB journalctl -u mongod -n 100

Optymalizacja wydajności MongoDB

Pamięć podręczna WiredTiger jest automatycznie ustawiana na 50% dostępnej pamięci RAM podczas pierwszego uruchomienia serwera. Aby sprawdzić aktualną wartość:

mongosh -u admin -p –authenticationDatabase admin –eval „db.serverStatus().wiredTiger.cache”

Aby zmienić ją ręcznie, edytuj plik /etc/mongod.conf (sekcja storage.wiredTiger.engineConfig.cacheSizeGB) i uruchom ponownie MongoDB:

systemctl restart mongod

Dane dostępowe do serwera

Dane logowania do MongoDB oraz mongo-express są zapisane w pliku /root/.mongo_credentials.

Co zostało wstępnie skonfigurowane

  • Uwierzytelnianie: włączona autoryzacja MongoDB z wykorzystaniem SCRAM-SHA-256. Użytkownik administratora posiada uprawnienia root.
  • Dostęp zdalny: MongoDB akceptuje połączenia z dowolnego adresu IP na porcie 27017.
  • Pamięć podręczna WiredTiger: automatycznie dostosowywana do 50% dostępnej pamięci RAM podczas pierwszego uruchomienia.
  • Interfejs WWW: mongo-express działa za serwerem Apache jako reverse proxy pod adresem /mongo-express.

Dołączone oprogramowanie

Komponent Wersja
Ubuntu24.04 LTS
MongoDB8.0 Community
mongoshw zestawie z MongoDB
mongo-expressNajnowsza wersja
Apache2.4 (reverse proxy)
CertbotNajnowsza wersja
Fail2Ban1.0

Rozwiązywanie problemów

Problem Rozwiązanie
Nie można połączyć się z MongoDB zdalnie Sprawdź, czy port 27017 nie jest blokowany przez zaporę sieciową. Upewnij się również, że użytkownik istnieje i korzysta z poprawnej bazy uwierzytelniania (authenticationDatabase).
mongo-express wyświetla błąd 401 Unauthorized Użyj nazwy użytkownika admin oraz hasła administratora podanego podczas składania zamówienia. Dane logowania znajdują się w pliku /root/.mongo_credentials.
Strona mongo-express nie otwiera się Sprawdź status usługi: systemctl status mongo-express. W razie potrzeby uruchom ją ponownie: systemctl restart mongo-express.
Błąd uwierzytelniania Upewnij się, że używasz parametru –authenticationDatabase admin. Użytkownik administratora uwierzytelnia się względem bazy admin.
MongoDB nie uruchamia się Sprawdź logi: journalctl -u mongod -n 50. Najczęstsze przyczyny to brak miejsca na dysku (df -h /) lub nieprawidłowa składnia YAML w pliku mongod.conf.
Zapomniane hasło administratora MongoDB Połącz się przez SSH i sprawdź plik /root/.mongo_credentials.
Adres IP został zablokowany przez Fail2Ban Skorzystaj z konsoli VNC w panelu klienta, aby odblokować swój adres IP.
Zapomniane hasło użytkownika root Skorzystaj z konsoli VNC w panelu klienta, aby zresetować hasło.