Memonitoring server saat ini sudah menjadi suatu kewajiban yang harus di lakukan bagi setiap individu / kelompok / perusahaan yang memiliki server baik itu on-premise ataupun on-cloud. Terlebih apabila server yang dimiliki tersebut jumlahnya banyak. Di perlukan suatu tools atau aplikasi yang dapat 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. Oleh karena itu, pada artikel 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 pengimplementasian 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 perlua 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. Untuk cara installasinya silahkan baca postingan Saya sebelumnya di Cara Install Prometheus di Linux Untuk Monitoring Server .
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. Untuk cara installasinya silahkan baca postingan Saya sebelumnya di Cara Install node_exporter di Linux untuk Data Server Monitoring .
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
- job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['IP_SERVER:9100']
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 :
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['IP_SERVER_A:9090'] - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['IP_SERVER_A:9100', 'IP_SERVER_B:9100', 'IP_SERVER_C:9100', 'IP_SERVER_D:9100', 'IP_SERVER_E:9100', 'IP_SERVER_F:9100']
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
[grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
- update repository, lalu install dengan yum
yum update yum install grafana
- aktifkan, jalankan dan cek status grafana
systemctl enable grafana-server systemctl start grafana-server systemctl status grafana-server
Install grafana di ubuntu ¶
Untuk Ubuntu, berikut caranya :
- Tambahkan dan install repositori APT untuk grafana
sudo apt-get install -y gnupg2 curl software-properties-common curl https://packages.grafana.com/gpg.key | sudo apt-key add - sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
- Update repositori dan install grafana
sudo apt-get update sudo apt-get install grafana
- aktifkan, jalankan dan cek status grafana
systemctl enable grafana-server systemctl start grafana-server systemctl status grafana-server
Mengizinkan port di firewall (optional) ¶
Apabila kalian mengatur akses port kalian dengan firewall, kalian perlu membukakan port 3000 untuk akses grafana. Berikut beberapa cara membuka port untuk grafana :
- mengizinkan port di firewall ufw
sudo ufw allow 3000/tcp
- mengizinkan port di iptables
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT iptables-save | sudo tee /etc/sysconfig/iptables systemctl restart iptables
Menonaktifkan pendaftaran dan akses anonim (optional) ¶
Biasanya, saya menonaktifkan fitur ini, caranya dengan masuk ke file konfigurasi grafana di /etc/grafana/grafana.ini
. Temukan allow_sign_up
di bawah [user]
, hapus tanda ;
(titik koma) lalu ketik false
ke dalam nilai tersebut. seperti ini :
... [users] # disable user signup / registration allow_sign_up = false ...
Selanjutnya temukan enabled
di bawah [auth.anonymous]
, hapus tanda ;
(titik koma) lalu ketik false
ke dalam nilai tersebut. seperti ini :
... [auth.anonymous] # enable anonymous access enabled = false ...
Jika sudah, restart grafana dan cek statusnya
systemctl restart grafana-server systemctl status grafana-server
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 animasi GIF 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, kalian 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.
→ Download simple-dashboard
Jika sudah kalian sesuaikan, kalian 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 iImport via panel json prosesnya kurang lebih seperti di animasi GIF berikut ini :
Oke sampai sini kalian sudah berhasil membuat dashboard monitoring server sederhana. Jika ada kesempatan Saya akan mencoba menjabarkan pembuatan dashboard tersebut.
Baiklah, Saya rasa sudah cukup panjang penjabaran Saya mengenai Monitoring Server dengan Grafana, Prometheus dan node_exporter. Jika ada yang ingin kalian tanyakan silahkan bertanya di kolom komentar ya. Semoga tulisan Saya ini dapat bermanfaat, Terima kasih banyak 😀 😎
Tampilkan komentar (2)
Selamat siang, mas Lukems...
Saya ada kendala mas sudah install node exporter dan grafana, sudah import dashboard juga tetapi di dashboard grafananya no data mas..
mohon bantuannya mas, terima kasih
Pagi mas Yushan,
Apa sebelum import nilai pada variabel $server-1, $server-2 dan $server-3 sudah di sesuaikan dengan IP Server mas Yushan?