Monitoring Server Prometheus,Grafana,Node Exporter

MOHAMAD FRANANDA ADIEZWARA RAMADHAN

Sosial Media


1 orang menyukai ini
Suka

Summary

Portofolio ini merupakan tugas akhir dari pembelajaran terjadwal kelas cloud computing msib batch 3

Description

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 

Monitoring Server dengan Grafana, Prometheus dan node_exporter  

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. Install prometheus di linux 

1.1. Install prometheus di linux CentOS 7 

Persiapan & Install Prometheus

  • Buat user untuk prometheus ( tanpa direktori home )

useradd --no-create-home --shell /bin/false prometheus

  • Buat folder untuk library prometheus

mkdir /etc/prometheus

mkdir /var/lib/prometheus

  • Atur kepemilikan folder menjadi milik user prometheus

chown prometheus:prometheus /etc/prometheus

chown prometheus:prometheus /var/lib/prometheus

  • Download dan ekstrak 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 */

  • Copy prometheus dan promtool ke folder bin

cp prometheus-2.19.2.linux-amd64/prometheus /usr/local/bin

cp prometheus-2.19.2.linux-amd64/promtool /usr/local/bin

  • Atur kepemilikan folder menjadi milik prometheus

chown prometheus:prometheus /usr/local/bin/prometheus

chown prometheus:prometheus /usr/local/bin/promtool

  • Copy console dan console_libraries ke dalam folder prometheus

cp -r prometheus-2.19.2.linux-amd64/consoles /etc/prometheus

cp -r prometheus-2.19.2.linux-amd64/console_libraries /etc/prometheus

  • Atur kepemilikan console dan console_libraries menjadi milik prometheus

chown -R prometheus:prometheus /etc/prometheus/consoles

chown -R prometheus:prometheus /etc/prometheus/console_libraries

Konfigurasi prometheus

  • Buat konfigurasi file prometheus berekstensi .yml

vim /etc/prometheus/prometheus.yml

  • Isi file prometheus.yml, pada bagian targets isi dengan alamat IP server

  • Atur kepemilikan file prometheus.yml menjadi milik Prometheus

chown prometheus:prometheus /etc/prometheus/prometheus.yml

 

Service Prometheus

Isi file prometheus.service dengan ini

 

  • Reload daemon untuk mendaftarkan prometheus.service

systemctl daemon-reload

  • Aktifkan servis prometheus dan cek statusnya

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 

 

Informasi Course Terkait
  Kategori: Cyber Security
  Course: Cloud Computing