MOHAMAD FRANANDA ADIEZWARA RAMADHAN
Portofolio ini merupakan tugas akhir dari pembelajaran terjadwal kelas cloud computing msib batch 3
DASAR TEORI :
Mengenal cloud computing yang sederhananya, komputasi awan adalah metode penyampaian berbagai layanan melalui internet. Sumber daya yang dimaksud contohnya adalah aplikasi seperti penyimpanan data, server, database, jaringan, dan perangkat lunak.
Monitoring server adalah kegiatan memantau sumber daya sistem server seperti: penggunaan CPU (CPU Usage), konsumsi memori (Memory RAM Consumption), jaringan, penggunaan disk (disk usage), dan lain sebagainya. Karena performa aplikasi atau website Anda sebagian besar bergantung pada performa server.
Step By Step
Langkah pertama install terlebih dahulu sistem operasi yang digunakan seperti linux centos 7 pada virtual box. Linux adalah sebuah sistem operasi seperti Unix yang menggunakan kernel linux sebagai inti dan disertakan aplikasi dan module pendukung lain agar berfungsi dan bisa digunakan secara utuh layaknya sistem operasi pada umumnya. CentOS adalah singkatan dari Community ENTerprise Operating System, sebuah Linux distribution (distro) yang bisa digunakan untuk cloud server, komputer desktop, maupun workstation. Virtualbox adalah perangkat lunak virtualisasi untuk menginstal sistem operasi “Operating System”. Kata virtuallilsasi yaitu mengubah atau mengkonversi sesuatu menjadi bentuk simulasi dari bentuk real atau nyata
Sistem operasi ini bersifat bebas digunakan dan opensource sehingga bisa dipakai dan dikembangkan oleh semua pihak secara gratis.
langkah langkah nya yaitu
Nama Sistem Operasi
Pada gambar diatas terdapat nama virtual machine pada virtualbox, untuk penamaannya bebas, lalu ada juga machine folder, dimana itu merupakan lokasi file mentahan virtualbox kita yang nanti akan disimpan setelah dibuat, lokasinya saya letakkan pada local disk c/user/frananda/virtualbx vms, untuk type system operasinya yaitu linux, versinya bisa pilih redhat 64 bit
Pada gambar diatas untuk pemilihan memory size bisa default, atau setara 1 gb
Hardisk File Type
Untuk hardisk file type bisa menggunakan vdi, VDI merupakan format virtual drive yang digunakan oleh VirtualBox, progam virtualisasi dekstop open-source, dapat dipasang diberbagai Operating System seperti Mac, Windows, dan Platform Unix, memungkinkan pengguna untuk menjalankan program yang ditulis untuk sistem operasi yang berbeda dalam lingkungan virtual kecepatan tinggi.
Storage On Physical Hardisk
Pada gambar diatas bisa menggunakan dynamical allocates, Dynamic allocated : Penambahan hard drive secara dynamic atau otomatis untuk peletakan file "hard drive" tanpa memikirkan management file di PC asli kita
File and Location Size
Start SO
Booting
Booting adalah proses di mana PC atau laptop melakukan loading saat pertama kali dinyalakan disini studi kasusnya menggunakan linux
Pemilihan Bahasa
Pada gambar diatas, untuk pemilihan Bahasa bisa menggunakan Bahasa Indonesia, agar proses instalasi lebih mudah untuk dipahami jika kita memilih Bahasa yang lebih kita pahami
Ringkasan Instalasi
Pada gambar diatas ada beberapa yang akan kita konfigurasi seperti tujuan instalasi untuk partisi hardisk, lalu network dan hostname dan lainnya
Tujuan Instalasi
Pada gambar diatas seperti yang sudah saya jelaskan, dimana saya melakukan partisi hardisk secara otomatis, agar lebih mudah prosesnya
Network Hostname
Lalu pada gambar diatas untuk network dan hostname, saya menggunakan jaringan wireless, klik nyalakan ethernetnya agar terhubung dan mendapatkan ip address secara otomatis, pada gambar diatas kita mendapatkan beberapa informasi seperti ip address yang digunakan, subnetmask dan informasi lainnya
Mulai Instalasi
Pada gambar diatas proses instalasi bisa dimulai, Instalasi program komputer, adalah tindakan membuat program siap untuk dieksekusi. Instalasi mengacu pada konfigurasi tertentu dari perangkat lunak atau perangkat keras dengan maksud untuk membuatnya dapat digunakan dengan komputer. Salinan lunak atau digital dari perangkat lunak diperlukan untuk menginstalnya
Konfigurasi Pengguna
Sandi Root
Buat Pengguna
Lalu pada gambar diatas kita bisa mengkonfigurasi pengguna secara manual seperti memasukkan username dan password untuk proses login nanti
Instalasi OS Selesai
Login Root
Pada gambar diatas kita bisa login ke terminal menggunakan username dan password yang sudah dibuat tadi, saya menggunakan password yang pendek agar mudah diingat, dan juga mempertimbangkan dari studi kasus yang dibuat. Kita bisa login sebagai root, Pengguna root di GNU/Linux adalah pengguna yang mempunyai akses untuk mengelola sistem anda. Pengguna biasa tidak mempunyai akses ini karena alesan keamanan
Konfig Ip address #nmtui
gambar diatas untuk ip address juga bisa dikonfigurasi secara manual, disini saya menggunakan 2 ip address, satu adapter terkoneksi sebagai bridge agar bisa terhubung dengan internet, lalu satu ip address lagi sebagai host only, Bridge Adapter, pada jenis jaringan ini, OS di dalam Virtual atau di VirtualBox dapat melakukan komunikasi data melalui adapter pada OS yang asli.
Jadi seolah-olah OS pada Virtualbox dan OS Asli terhubung dengan LAN fisik yang sama, sehingga IP Address pada OS Virtual dan IP Address pada OS Asli memiliki Network yang sama.
Contoh seperti ini, jika jaringan laptop anda dengan IP 192.168.30.1/24, maka kemungkinan OS Virtual akan mendapat Network yang sama. Seperti 192.168.30.10 ataupun seterusnya. Dan Keduanya bisa saling Ping. Pada jenis Host-Only Adapter ini, komputer atau OS Virtual dapat berkomunikasi dengan Host atau OS Asli pada Laptop. Seolah-olah kedua OS ini terhubung pada jaringan LAN Fisik yang sama. Hal ini sering saya gunakan untuk pengujian antara OS Virtual, dan OS pada Laptop Fisik saya, karena pada Host-Only Adapter terdapat, Ethernet sendiri pada Laptop atau Sistem Operasi kita.
Koneksi ke Internet
Pada gambar diatas setelah semua konfigurasi selesai dilakukan kita bisa melakukan ping ke internet apakah sudah terhubung atau belum, diatas sudah terhubung dengan baik.
Pada jaringan komputer, data yang dikirim maupun diterima memiliki TTL (Time To Live) atau waktu yang ditentukan oleh jaringan untuk tetap berada pada sebuah jaringan tertentu.
Remote di Putty
Pada gambar diatas kitab isa menggunakan putty dan remote server ssh, agar kita menuliskan perintah linux tidak perlu diketik di virtualbox, lebih mudah dilakukan dengan copy paste pada terminal linux di putty, untuk mempercepat prosesnya dan menghindari kesalahan pengetikan. PuTTY adalah aplikasi remote access yang memanfaatkan protokol jaringan untuk kebutuhan remote komputer server dari jarak jauh. SSH merupakan sebuah protokol administrasi remote yang memperbolehkan pengguna untuk mengakses dan mengontrol server mereka dalam jaringan secara aman
Memonitoring server saat ini menjadi keharusan bagi setiap individu / kelompok / perusahaan yang memiliki server baik itu on-premise ataupun on-cloud. Apalagi jika server yang dimiliki banyak. Di butuhkan suatu aplikasi atau tools yang bisa membantu memonitoring itu semua. Oleh karena itu, Grafana hadir untuk memenuhi kebutuhan tersebut. Dikutip dari Wikipedia –
“Grafana adalah analitik sumber terbuka multi-platform dan aplikasi web visualisasi interaktif. Ini menyediakan bagan, grafik, dan peringatan untuk web saat terhubung ke sumber data yang didukung” . Jadi dengan Grafana kita bisa menyiapkan segala kebutuhan untuk memonitoring server.Pada kali ini Saya akan berbagi informasi tentang Monitoring Server dengan Grafana, Prometheus dan node_exporter.
Konsep Monitoring Server dengan Grafana
Sebelum memulai segala macam hal terkait installasi. Saya akan menjelaskan konsepnya terlebih dahulu mengenai monitoring server dengan Grafana, Prometheus dan node_exporter. Perhatikan gambar berikut ini :
Penjelasan Konsep Monitoring Server dengan Grafana, Prometheus dan node_exporter
Dari gambar diatas, Saya ingin memberikan satu contoh implementasi monitoring server dengan grafana, prometheus dan node_exporter. Misalkan kita kemiliki beberapa server seperti contoh di atas ada server a, b, c, d, e dan f. Kita ingin memonitoring semua server tersebut secara bersamaan. Kita perlu menempatkan akses terpusat untuk memonitornya. pada gambar di atas, user memonitor melalui server a. Dimana di server a sudah di install Grafana
( untuk visualisasi interaktif ), Prometheus ( untuk pengolahan metrics data ), dan node_exporter ( untuk pengumpulan metrics data ). Lalu bagimana dengan server b, c, d, e dan f ?. Untuk selain server a, kita cukup menginstallkan node_exporter saja dengan syarat node_exporter itu dapat di akses oleh prometheus yang ada di server a. Sehingga user cukup memonitor dengan mengakses grafana via browser yang akan mengarah ke server a, dimana prometheus server a akan memvisualisasikan semua data yang telah diperoleh node_exporter dari semua server ( b, c, d, e dan f ). Selanjutnya kita langsung saja ke tahap installasinya.
Install Prometheus
Yang pertama kita install adalah prometheus. Prometheus adalah aplikasi open-source yang akan kita gunakan untuk memonitoring sistem. Prometheus ini memiliki banyak sekali pengukuran yang kita butuhkan untuk memantau server. Lalu untuk visualisasinya nanti kita akan mengkombinasikannya dengan grafana.
Di kutip dari Wikipedia – “Prometheus adalah aplikasi perangkat lunak gratis yang digunakan untuk memantau dan mengingatkan acara . Ini mencatat metrik waktu nyata dalam database deret waktu (memungkinkan dimensi tinggi ) yang dibangun menggunakan model tarik HTTP , dengan kueri fleksibel dan peringatan waktu nyata. Proyek ini ditulis dalam Go dan dilisensikan di bawah Lisensi Apache 2, dengan kode sumber tersedia di GitHub , dan merupakan proyek lulus dari Cloud Native Computing Foundation , bersama dengan Kubernetes dan Envoy.” Oleh karena itu disini Saya ingin berbagi informasi mengenai cara install prometheus di Linux, mari kita simak :
1.1. Install prometheus di linux CentOS 7
Persiapan & Install Prometheus
useradd --no-create-home --shell /bin/false prometheus
mkdir /etc/prometheus
mkdir /var/lib/prometheus
chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /var/lib/prometheus
curl -LO https://github.com/prometheus/prometheus/releases/download/v2.19.2/prometheus-2.19.2.linux-amd64.tar.gz
tar xzvf prometheus-2.19.2.linux-amd64.tar.gz
/* note : adjust the version and type of your linux */
cp prometheus-2.19.2.linux-amd64/prometheus /usr/local/bin
cp prometheus-2.19.2.linux-amd64/promtool /usr/local/bin
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool
cp -r prometheus-2.19.2.linux-amd64/consoles /etc/prometheus
cp -r prometheus-2.19.2.linux-amd64/console_libraries /etc/prometheus
chown -R prometheus:prometheus /etc/prometheus/consoles
chown -R prometheus:prometheus /etc/prometheus/console_libraries
Konfigurasi prometheus
vim /etc/prometheus/prometheus.yml
chown prometheus:prometheus /etc/prometheus/prometheus.yml
Service Prometheus
Isi file prometheus.service dengan ini
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
systemctl status Prometheus
Akses Prometheus
Sampai tahap ini, seharusnya prometheus sudah berhasil terinstall. Kerja bagus!, Selanjutnya kita dapat mengakses prometheus di http://IP_ADDR:9090. Tampilannya akan seperti ini
Install node_exporter
Yang kedua kita install adalah node_exporter. node_exporter adalah suatu daemon yang berfungsi mengumpulkan metrics / data data di server yang kita miliki, yang nantinya data tersebut akan di olah oleh prometheus. node_exporter ini akan di install ke setiap node server yang kita miliki. sebagai gambaran, node_exporter di setiap server akan mengirimkan data metrics server mereka masing – masing lalu di kirimkan ke server prometheus untuk diolah
Sebelum mulai, perlu diketahui, node_exporter adalah salah satu exporter Prometheus yang berada di tingkat OS / Server. Dimana node_exporter itu sendiri berperan sebagai pengumpul metrics suatu server. Ini akan sangat membantu mengukur serta memonitor sumber daya server seperti penggunaan CPU, penggunaan RAM, penggunaan DISK, dan lain sebagainya. Oke, mari kita mulai installasinya
1. Install node_exporter di Linux
1.1. Install node_exporter di Linux CentOS 7
Persiapan & Install node_exporter
Buat user untuk node_exporter ( tanpa direktori home )
Unduh dan ekstrak node_exporter
Copy node_exporter ke dalam direktori bin dan ubah kepemilikannya menjadi milik user node_exporter
Servis node_exporter
Buat servis untuk node_exporter
Isi file node_exporter.service dengan ini
Reload daemon untuk mendaftarkan node_exporter.service
Aktifkan servis node_exporter dan cek statusnya
Akses node_exporter
Sampai tahap ini, seharusnya node_exporter sudah berhasil terinstall. Bagus sekali!,
Selanjutnya kita dapat mengaksesnya di http://IP_ADDR:9100. Tampilannya akan seperti ini
Selanjutnya klik Metrics untuk menampilkan seluruh metric data yang tersedia di node_exporter. Tampilannya akan seperti ini :
Baiklah, sampai sini kita sudah berhasil menginstall node_exporter.
Menghubungkan Prometheus dengan node_exporter
Selanjutnya jika kalian sudah menginstall promethues dan node_exporter kita akan menghubungkannya. Prometheus dapat mengkases metrics data dari server lain yang telah terinstall node_exporter dengan menambahkannya ke dalam file konfigurasi prometheus.yml. Cukup menambahkan job untuk node_exporter ini
ke dalam file konfigurasi prometheus.yml sesudah bagian job untuk prometheus.
Lalu, berdasarkan contoh dari penjelasan konsep yang sudah saya jelaskan, kurang lebih file konfigurasi prometheus.yml nya akan seperti ini :
Jika setiap server sudah di install node_exporter, kita cukup menambahkannya pada - targets: dengan memberi tanda koma seperti contoh diatas. Setelai selesai dengan file konfigurasi, lakukan restart pada servis prometheus. systemctl restart prometheus.
Jika sudah, kita coba akses prometheus-nya http://IP_ADDR_or_DOMAIN:9090 lalu kita eksekusi salah satu query/expression yaitu “up” untuk sekedar mengetes apakah prometheus sudah bisa mengakses metrics seluruh server yang terinstall node_exporter. Kalau sudah terhubung kurang lebih akan seperti ini :
Install Grafana
Install Prometheus sudah, install node_exporter sudah, menghubungkan prometheus dengan node_exporter juga sudah. kerja bagus!, Sekarang kita lanjutkan ke installasi grafana.
Install grafana di CentOS 7
Untuk CentOS 7, berikut caranya :
Buat repository Grafana sudo nano /etc/yum.repos.d/grafana.repo masukkan ini
update repository, lalu install dengan yum yum update yum install Grafana aktifkan, jalankan dan cek status Grafana
Akses grafana, lalu update user dan passwordnya
Setelah installasi selesai dilakukan, selanjutnya kita perlu mengupdate password admin grafana. Akses grafana di http://IP_ADDR_or_DOMAIN:3000 , lalu login dengan menggunakan user: admin dan password: admin.
selanjutnya kamu akan diminta untuk mengubah kata sandi admin,
Jika sudah berhasil mengganti password, kamu akan di arahkan ke beranda grafana
Sampai sini kita sudah berhasil masuk dan mengakses grafana. Akan tetapi, kita belum bisa memonitoring apa apa karena dashboard-nya pun masih kosong. Selanjutnya ayo kita hubungkan prometheus dengan grafana sehingga kita dapat membuat dashboard monitoring server.
Menambahkan datasource prometheus ke dalam Grafana
Sebelum membuat dashboard, kita perlu menambahkan Prometheus sebagai datasource yang nantinya kita gunakan untuk membuat dashboard.
Pertama – tama, kita masuk ke menu Configuration , lalu klik Add data source,
Selanjutnya, kita Pilih Prometheus sebagai datasource-nya
Isi bagian konfigurasi sesuai dengan kebutuhan, yang paling utama isilah URL prometheus dengan http://IP_ADDR_or_DOMAIN:9090 sesuai dengan dimana prometheus kita berada.
Lalu klik Save & Test untuk menyimpan dan mengetes apakah konfigurasinya sukses.
Jika konfigurasinya berhasil, akan muncul notifikasi Data source is working
Sampai disini kita telah berhasil menambahkan datasource prometheus ke dalam grafana. Selanjutnya kita akan mencoba membuat dashboard monitoring sederhana.
Membuat dashboard monitoring sederhana
Saya akan membuat contoh dashboard sederhana. Kira – kira tampilan dashboard-nya akan seperti ini :
Dari gambar diatas, bisa kita lihat, Saya membuat dashboard untuk memantau 3 server saya yaitu main-server, node-a dan node-b. Untuk lebih memudahkan penyebutannya kita inisialisasikan main-server sebagai $server-1, node-a sebagai $server-2 dan node-b sebagai $server-3.
Untuk mempersingkat waktu, kita bisa mendownload file JSON di bawah ini yang sudah Saya create untuk di upload di Grafana agar menjadi dashboard seperti diatas. Tapi, sebelum kalian menggunakannya ubahlah nilai $server-1, $server-2 dan $server-3 menjadi IP Address dari masing masing server kalian sendiri.
Jika sudah disesuaikan, kita bisa lanjutkan dengan langkah – langkah berikuit ini :
Masuk ke Grafana, akses menu Dashboard > Manage > Import
Upload JSON file atau Import via panel json , untuk upload json file kalian hanya perlu mengupload file json-nya yang telah kalian download dan sesuaikan nilainya, lalu untuk import via panel json, kalian hanya perlu melakukan paste kode json yang sudah kalian sesuaikan ke form yang disediakan.
lalu klik Import
Untuk Import via panel json prosesnya kurang lebih seperti di animasi GIF berikut ini :
Oke sampai sini kita sudah berhasil membuat dashboard monitoring server sederhana