MongoDB, NoSQL veritabanı yönetim sistemleri arasında en popüler seçeneklerden biridir ve ölçeklenebilir yapısıyla büyük veri projelerinde sıkça tercih edilir.
MongoDB, NoSQL veritabanı yönetim sistemleri arasında en popüler seçeneklerden biridir ve ölçeklenebilir yapısıyla büyük veri projelerinde sıkça tercih edilir. Bu makalede, MongoDB’nin Linux tabanlı sistemlere (özellikle Ubuntu/Debian dağıtımlarına) kurulumunu adım adım ele alacak, ardından uzak bağlantı (remote access) ayarlarını yapılandırarak güvenli erişim sağlayacağız. Kurulum ve konfigürasyon süreçleri, kurumsal ortamlarda standartlaşmış prosedürlere uygun şekilde açıklanacaktır. Bu rehber, sistem yöneticileri ve geliştiriciler için pratik bir kaynak niteliğindedir; her adımda olası hataları önleme ipuçları ve doğrulama yöntemleri dahil edilmiştir.
MongoDB Community Edition sürümünü kurmak için öncelikle resmi MongoDB deposunu sisteme eklememiz gerekmektedir. Bu işlem, en güncel ve güvenli paketi indirmeyi sağlar. Ubuntu 20.04 veya üstü için aşağıdaki adımları izleyin: Önce mevcut anahtarları temizleyin ve GPG anahtarını içe aktarın. Ardından kaynak listesine depo ekleyin ve paketleri güncelleyin. Bu adımlar, depo bütünlüğünü koruyarak kurulumun sorunsuz ilerlemesini temin eder.
Kurulum komutları sırasıyla şöyle yürütülür:
sudo apt-get install gnupg curl ile gerekli araçları yükleyin.curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg -o /usr/share/keyring/mongodb-server-7.0.gpg --dearmor ile anahtarı ekleyin.echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyring/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 ile depoyu tanımlayın (jammy için; sürümünüze göre uyarlayın).sudo apt-get update ve sudo apt-get install -y mongodb-org ile paketi kurun.Kurulumu doğrulayın: mongod --version komutu sürüm bilgisini gösterir. Servisi başlatmak için sudo systemctl start mongod ve etkinleştirmek için sudo systemctl enable mongod kullanın. Durumu sudo systemctl status mongod ile kontrol edin. Bu aşamada MongoDB varsayılan olarak localhost (127.0.0.1) üzerinden çalışır ve authentication kapalıdır. Kurulum tamamlandığında, veritabanı dizini /var/lib/mongodb altında oluşturulur ve loglar /var/log/mongodb/mongod.log dosyasında tutulur. Potansiyel sorunlar arasında port 27017’nin meşgul olması veya disk alanı yetersizliği yer alır; bunları önceden denetleyin.
Uzak erişim için MongoDB konfigürasyon dosyasını (/etc/mongod.conf) düzenleyin. Bu dosya YAML formatındadır ve net.bindIp parametresiyle IP kısıtlamalarını yönetir. Varsayılan olarak sadece localhost’a izin verir; bunu değiştirmek güvenlik riski taşır, bu yüzden authentication ile birlikte yapılandırın. Dosyayı nano veya vim ile açın ve net bölümünde bindIp: 0.0.0.0 olarak ayarlayın. Bu, tüm arayüzlerden bağlantı kabul eder. Değişiklik sonrası servisi yeniden başlatın: sudo systemctl restart mongod.
Güvenlik için authentication’ı etkinleştirin. Önce MongoDB shell’ine bağlanın: mongosh. Admin veritabanında yönetici kullanıcı oluşturun: use admin, ardından db.createUser({user: "admin", pwd: "gucluSifre123!", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]}). Konfigürasyon dosyasında security bölümüne authorization: enabled ekleyin. Yeniden başlatın. Artık bağlantılarda mongosh -u admin -p --authenticationDatabase admin --host uzakSunucuIP kullanın. Bu adım, yetkisiz erişimleri engeller ve rol tabanlı erişim sağlar. Hata durumunda logları inceleyin; yaygın sorun şifre karmaşıklığı veya rol tanımlarındaki yazım hatalarıdır.
Uzak erişimde UFW (Uncomplicated Firewall) ile 27017 portunu açın: sudo ufw allow from IPAraligi to any port 27017 (örneğin, sudo ufw allow from 192.168.1.0/24 to any port 27017). Genel erişim yerine IP kısıtlaması uygulayın. sudo ufw reload ile kuralları yenileyin ve sudo ufw status ile doğrulayın. Bulut ortamlarında (AWS EC2 gibi) güvenlik gruplarını da 27017 TCP için inbound kuralı ekleyin. Bu konfigürasyon, DDoS veya brute-force saldırılarına karşı koruma sağlar ve yalnızca güvenilir IP’lerden erişime izin verir. Test için uzak bir makineden telnet ile port erişimini kontrol edin.
MongoDB’yi production’da kullanırken ek güvenlik katmanları ekleyin. SSL/TLS etkinleştirin: Sertifika oluşturun (self-signed veya CA imzalı) ve konfigürasyonda net.tls.mode: requireTLS ile zorunlu kılın. X.509 sertifikaları için net.tls.CAFile ve net.tls.clusterFile parametrelerini belirtin. Rate limiting için MongoDB Enterprise özelliklerini değerlendirin veya proxy (örneğin HAProxy) kullanın. Düzenli yedekleme için mongodump aracını cron job ile otomatikleştirin: mongodump --uri="mongodb://admin:gucluSifre@host:27017/admin?authSource=admin" --out=/backup/$(date +%Y%m%d).
Sorun gidermede log rotasyonunu etkinleştirin (/etc/logrotate.d/mongod) ve replica set kurun yüksek erişilebilirlik için. Yaygın hatalar: Bind IP mismatch (hata: “bind_ip did not match”), auth başarısızlığı (log: “Authentication failed”) veya bağlantı zaman aşımı (timeout: 30s varsayılanı artırın). Performans için storage.wiredTiger.engineConfig.cacheSizeGB’yi RAM’in %50’si olarak ayarlayın. Bu ayarlar, kurumsal ölçekte stabilite sağlar.
Sonuç olarak, MongoDB kurulumunu ve uzak bağlantı ayarlarını doğru yapılandırmak, verilerinizi güvenli ve erişilebilir kılar. Bu rehberdeki adımları takip ederek, hızlı bir şekilde production hazır bir veritabanı ortamı oluşturabilirsiniz. Düzenli güncellemeler ve izleme ile sisteminizi optimize edin; gerekirse MongoDB Atlas gibi yönetilen hizmetleri değerlendirin.