Instalasi dan Konfigurasi MongoDB di sistem operasi Ubuntu

Instalasi dan Konfigurasi MongoDB di sistem operasi Ubuntu

Dalam membangun penyimpanan data IoT database memiliki berbagai tantangan yang akan di hadapi meliputi Pertumbuhan data yang cepat, jenis data yang beragam dan berbagai format data yang digunakan. Dengan berbagai variasi data ini dapat terdiri dari data terstruktur atau pun juga data tidak struktur. Oleh sebab itu, membutuhkan platform penyimpanan data dengan kemampuan untuk penyimpanan dan pengelollaan data terstruktur dan tidak terstruktur dengan cara yang efisien.

Pada database umumnya mennggunakan dua jenis bahasa pemrograman yaitu SQL dan NoSQL yang merupakan teknologi yang banyak digunakan sebagai back end meda data penyimpanan. SQL dirancang untuk memproses data yang terstruktur dan tidak dapat digunakan maximal jika menggunakan data tidak terstruktur. NoSQL lebih mendukung berbagai varian data yang tidak struktur yang biasanya digunakan untuk mengumpulkan data dari IoT device sehinggan lebih di rekomendasikan untuk digunakan dalam pengembangan sistem berbasis IoT device.

Database NoSQL dapat di implementasikan dengan aplikasi yang mendukung seperti casandra dan mongoDB, MongoDB merupakan beberapa dari NoSQL database aplikasi yang populer digunakan oleh banyak pengembang. Selain itu MongoDB juga memiliki beberapa feature yang sangat membantu dalam mengembangkan sistem NoSQL database seperti dukungan dengan berbagai varian dari framework webservice dan sematic data yang digunakan pada MongoDB menggunakan format data JSON.

BAGIAN 1
INSTALASI MONGODB COMMUNITY EDITION


Sebelum melakukan instalasi, saya menggunakan remote server dengan SSH dan memanfaat fitur public-key yang disediakan oleh GitHub, berikut merupakan link referensi yang digunakan :


  1. Import public key yang digunakan oleh sistem manajemen package
Public key ini akan digunakan dalam proses enkripsi, ketika melakukan instalasi MongoDB.

Berikut merupakan perintah untuk melakukan import public key GPG MongoDB :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 –
recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

Syntax diatas bertujuan agar proses instalasi dilakukan dengan cara yang aman (secure) melalui enkripsi data dengan import public key dari server.
  1. Membuat list atau daftar file untuk MongoDB
Buat daftar file etc/apt/sources.list.d/mongodb-org-3.6.list menggunakan perintah yang sesuai dengan versi Ubuntu yang dipakai.


echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
  1. Reload database package lokal
Berikut merupakan perintah yang digunakan melakukan reload atau memperbarui database package lokal :

sudo apt-get update
  1. Install MongoDB
Install versi terbaru yang dirilis dari MongoDB dan berikut merupakan perintah yang digunakan :

sudo apt-get install -y mongodb-org
Syntax install diatas merupakan perintah untuk melakukan instalasi, sedangkan -y merupakan syntax yang otomatis memberikan konfirmasi seperti halnya ketika berlangsungnya proses instalasi sistem meminta izin untuk menggunakan memori dengan besaran tertentu, apabila menggunakan syntax -y sistem tidak akan meminta perizinan lagi dan langsung melakukan proses instalasi hingga selesai. Kemudian, syntax mongodb-org berfungsi untuk instalasi versi stable MongoDB terbaru.
Referensi :

BAGIAN 2
ROBOMONGO
  1. Download file deb dari website official RoboMongo
Robomongo merupakan Database Management System (DBMS) yang di sediakan untuk mengelola database mongoDB yang saat ini sudah berkembang menjadri studio 3T yang memiliki license berbayar namun dapat mencoba free trial 30 hari. Versi yang saya gunakan merupakan versi Robomongo yang lama.
Berikut merupakan perintah yang digunakan :
Syntax wget digunakan untuk melakukan download file dari website official RoboMongo, di mana file tersebut yang akan dibutuhkan untuk instalasi RoboMongo. Berikut adalah hasil screenshot ketika perintah dijalankan :
  1. Instal file deb
Berikut merupakan perintah yang digunakan untuk install file deb :

sudo dpkg -i robomongo-0.8.5-x86_64.deb
Syntax dpkg digunakan untuk mengelola package instalasi Debian dan syntax -i digunakan untuk melakukan instalasi.
Terjadi masalah saat instalasi berlangsung, di mana berdasarkan referensi yang saya cari di internet, tidak menemukan solusi yang tepat. Sehingga, menurut pemahaman saya instalasi tidak berhasil dilakukan, karena terdapat dependency package yang belum disediakan oleh sistem operasi. Maka, perlu melakukan download package secara manual. Berikut merupakan hasil ketika syntax dijalankan dan terjadi masalah:
  1. Download dan instalasi dependcy package yang dibutuhkan
Berikut merupakan syntax yang digunakan untuk download package :
wget http://th.archive.ubuntu.com/ubuntu/pool/main/m/mesa/libgl1-mesa-glx_18.0.0~rc5-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/m/mesa/libgl1-mesa-dev_18.0.0~rc5-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.30-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-glx0_1.11.1-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1build1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-randr0_1.11.1-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-shape0_1.11.1-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/libx/libxcb/libxcb-xkb1_1.11.1-1ubuntu1_amd64.deb
wget http://th.archive.ubuntu.com/ubuntu/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_0.8.0-1_amd64.deb
Berikut merupakan syntax yang digunakan untuk melakukan instalasi package :
sudo dpkg -i libgl1-mesa-glx_18.0.0~rc5-1ubuntu1_amd64.deb
sudo dpkg -i libgl1-mesa-dev_18.0.0~rc5-1ubuntu1_amd64.deb
sudo dpkg -i libgtk2.0-0_2.24.30-1ubuntu1_amd64.deb
sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
sudo dpkg -i libxcb-glx0_1.11.1-1ubuntu1_amd64.deb
sudo dpkg -i libxcb-icccm4_0.4.1-1ubuntu1_amd64.deb
sudo dpkg -i libxcb-image0_0.4.0-1build1_amd64.deb
sudo dpkg -i libxcb-keysyms1_0.4.0-1_amd64.deb
sudo dpkg -i libxcb-randr0_1.11.1-1ubuntu1_amd64.deb
sudo dpkg -i libxcb-render-util0_0.3.9-1_amd64.deb
sudo dpkg -i libxcb-shape0_1.11.1-1ubuntu1_amd64.deb
sudo dpkg -i libxcb-xkb1_1.11.1-1ubuntu1_amd64.deb
sudo dpkg -i libxkbcommon-x11-0_0.8.0-1_amd64.deb
  1. Buka RoboMongo

Berikut merupakan perintah yang digunakan untuk membuka RoboMongo setelah melakukan instalasi :

robomongo
Referensi :

BAGIAN 3
Menjalankan Database MongoDB

1. Menjalankan service mongoDB
sudo service mongod start

2. Melakukan pengolahan database dengan mode CLI pada terminal
mongo
 
3. Membuat database pada mongodb dengan CLI

> use skt_db

4. Membuat user role untuk database skt_db sebagai pengelola database

> db.createUser({
user: 'refri',
pwd: '******',
roles: [{ role: 'readWrite', db:'skt_db'}]
})

5. Melakukan remote database mongoDB, agara dapat di akses oleh host lain

Konfigurasi jaringan mongoDB untuk melakukan binding host dan port
sudo nano /etc/mongod.conf

Ubah host dan port pada default mongodb adalah 127.0.0. port 27017
# network Interfaces
net:
   port: 28015
   bindIP: 192.168.100.4
#security
security
  authorization: 'enabled'

Port dan IP disesuaikan dengan kondisi host, jika menggunakan DHCP maka lakukan ifconfig dan sesuaikan dengan IP yang anda gunakan serta port yang dapat di gunakan.
Melakukan remote database mongoDB menggunakan CLI pada mongoDB
mongo --host 192.168.100.4:28015

Melakukan remote database mongoDB menggunakan spesifik user
mongo -u refri -p ****** 192.168.100.4:28015/skt_db

Referensi :


BAGIAN 4
Pembagian User Role Pada database

Terdapat 3 user yang memiliki hak akses terhadap database dengan role tertentu sesuai dengan fungsinya yaitu sebcriber, Hadoop-Spark, dan Server RPC.
1. Membuat User role untuk subcriber, dengan role readWrite karean nantinya subcirber akan menginputkan data yang telah di dapatkan dari sensing pada sisi publlisher. Pada mongoDB tidak ada role untuk menulis saja sehingga role menjadi readWrite.

> db.createUser({
user: 'subcriber',
pwd: 'Adminsub',
roles: [{ role: 'readWrite', db:'skt_db'}]
})

2. Membuat Role untuk Hadoop-Spark dengan role readWrite karena pada hadoop-spark tidak hanya untuk mengambil data tetapi juga memasukan data hasil proses pada hadoop-spark tersebut.

> db.createUser({
user: 'hadoop-spark',
pwd: 'Adminhadoop',
roles: [{ role: 'readWrite', db:'skt_db'}]
})

3. Membuat role untuk RPC Server dengan role read karena hanya digunakan untuk melakukan read data yang telah dikirimkan subcriber dan di olah oleh hadoop-spark.

> db.createUser({
user: 'RPC-Server',
pwd: 'AdminRPC',
roles: [{ role: 'read', db:'skt_db'}]
})












Komentar

Postingan populer dari blog ini

CHMOD untuk modifikasi seluruh folder, sub folder dan file

Melakukan Clone Virtual Machine Pada VirtualBox

Konfigurasi DNS pada Ubuntu Server 18.04