Monitoring Server menggunakan Prometheus dan Grafana


Assalamu'alaikum Warohmatullahi Wabarokatuh

Halo kawan-kawan, kali ini saya membuat sebuah monitoring server di os Ubuntu. Sebelum masuk ke konfigurasinya kita bahas dulu apa itu monitoring server? Monitoring server merupakan proses yang dirancang untuk meninjau dan menganalisis ketersediaan server, operasi, kinerja, keamanan, dan proses terkait penyimpanan lainnya. Jadi monitoring server ini penting agar kita dapat mengawasi server - server lainnya. 

Konsep Monitoring Server

Sebelum saya jelaskan segala macam instalasi, saya jelaskan terlebih dahulu tentang konsep monitoring server menggunakan Node_exporter, Prometheus, dan Grafana. Berikut topologi yang digunakan:


Penjelasan:

Dari gambar diatas, saya ingin memberikan satu contoh pengimplementasian monitoring server dengan grafana, prometheus, dan node_exporter. Yang pertama adalah bagaimana kita dapat mengumpulkan semua metrics yang ada pada semua server. Metrics itu apa sih? Metrics itu adalah susunan bilangan, simbol, atau ekspresi yang disusun dalam baris. Terus kenapa harus ngumpulin metrics dulu? Karena untuk dapat memonitoring server kita harus memiliki semua metrics pada server. Agar setiap server dapat mengumpukan metrics-metricsnya pada tempat yang sama maka kita install dulu exporter pada semua server yang ingin kita monitoring. Disini saya menggunakan node_exporter, jika ingin menggunakan exporter lain bisa disini. Kemudian setelah metrics-metrics telah dikumpulkan ditempat yang sama yaitu http://hostaddress/metrics oleh server yang ingin kita monitoring. Maka selanjutnya metrics - metrics tersebut ditarik oleh prometheus dan dikelola olehnya. Dan setelah prometheus sudah mendapatkan dan mengumpulkan metrics pada semua server, kemudian grafana tinggal menampilkan grafik - grafik menggunakan metrics yang didapatkan. Oke kita langsung masuk ke tahap instalasinya.

Install Node_exporter

Pertama kita install node_exporter pada server-server yang akan di monitoring. Agar semua metrics terkumpul pada server tersebut. Node_exporter ini akan mengumpulkan metrics tentang sumber daya server, seperti penggunaan CPU, penggunaan RAM, penggunaan Disk, dsb. 

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

Service node_exporter

  • Buat service untuk node_exporter
  • Isi file node_exporter.service dengan ini
  • Reload daemon untuk mendaftarkan node_exporter.service
  • Aktifkan service node_exporter dan cek statusnya

Ijinkan port di firewall (optional)

Jika ingin mengatur akses port dengan firewall, yang perlu dilakukan adalah membuka port 9100 untuk akses node_exporter. Berikut ini beberapa cara untuk membuka port node_exporter:
  • Mengijinkan port di firewall ufw
  • Mengijinkan port di iptables
Akses node_exporter

Jika sudah sampai tahap ini, seharusnya node_exporter sudah berhasil diinstall. Selanjutnya akses node_exporter di http://IP_Address:9100. Maka tampilannya akan seperti ini :


Selanjutnya klik Metrics untuk menampilkan semua metrics data yang tersedia di node_exporter, maka tampilannya akan seperti ini :


Jika proses instalasi node_exporter sudah selesai pada server pertama sudah selesai, maka lakukan hal sama pada server lainnya. Jika sudah, maka selanjutnya kita install prometheus.

Install Prometheus

Prometheus adalah aplikasi perangkat lunak gratis untuk memantau dan mengingatkan peristiwa. Ini merekam metrik waktu nyata dalam database deret waktu yang dibuat menggunakan model tarik HTTP (memungkinkan dimensi ketinggian), dengan kueri fleksibel dan peringatan waktu nyata. Proyek ini ditulis dalam Go dan dilisensikan di bawah lisensi Apache 2, kode sumber tersedia di GitHub, dan merupakan proyek lulusan Cloud Native Computing Foundation dan Kubernetes and Envoy. Berikut ini konfigurasi prometheus:

Persiapan & install prometheus

  • Buatlah user untuk prometheus (tanpa direktori home)
  • Lalu buatlah folder library prometheus
  • Kemudian aturlah kepemilikan folder menjadi milik user prometheus
  • Unduh dan ekstrak prometheus
  • Copy prometheus dan promtool ke folder /usr/local/bin
  • Atur kepemilikan folder menjadi milik prometheus
  • Copy console dan console_libraries ke dalam folder prometheus
  • Atur kepemilikan console dan console_libraries menjadi milik prometheus

Konfigurasi Prometheus

  • Buatlah konfigurasi file prometheus menggunakan ekstensi .yml
  • Masukkan script berikut ke dalam prometheus.yml. Pada bagian targets isi dengan alamat ip server
  • Atur kepemilikan file prometheus.yml menjadi milik prometheus 

Service Prometheus

  • Buat service untuk prometheus
  • Masukkan script berikut pada file prometheus.service
  • Reload daemon agar prometheus terdaftar pada service
  • Aktifkan service prometheus dan cek statusnya

Mengijinkan port di firewall (Optional)

Jika ingin mengatur port dengan firewall, yang perlu dilakukan adalah memberikan akses pada port 9090 agar bisa mengakses prometheus. Berikut ini beberapa cara memberikan akses port untuk prometheus:
  • Perijinan port di firewall ufw
  • Perijinan port di iptables

Akses prometheus

Jika semua sudah dilakukan dengan benar, maka prometheus sudah terinstall. Selanjutnya akses prometheus di http://IP_Address:9090. Maka tampilannya seperti ini : 


Jika sudah selesai tahap ini, maka selanjutnya kita hubungkan node_exporter dengan prometheus.

Menghubungkan Prometheus dengan node_exporter

Selanjutnya jika sudah berhasil menginstall node_exporter dan prometheus, maka kita hubungkan keduanya. Jika prometheus ingin dapat mengakses metrics pada data dari server lain yang telah terinstall prometheus, maka tambahkan script berikut ini pada konfigurasi prometheus.yml. Cukup menambahkan job untuk node_exporter pada bagian paling bawah sesudah job untuk prometheus :
Jika melihat seluruh konfigurasi prometheus.yml, maka hasilnya seperti ini :
Jika setiap server sudah terinstall node_exporter, kita hanya menambahkan pada - targets: dengan memberi tanda koma seperti contoh diatas. Jika selesai manambahkan, maka lakukan restart pada service prometheus
Jika sudah, akses prometheus-nya
Lalu eksekusi-kan salah satu query/expression yaitu "up" untuk sekedar mengecek apakah prometheus sudah bisa mengakses metrics pada seluruh server yang terinstall node_exporter. Jika sudah terhubung kurang lebih tapilannya seperti ini :


Install Grafana

Persiapan & Install grafana

  • Tambahkan dan install repositori APT untuk grafana
  • Update repositori
  • Aktifkan, jalankan, dan cek status grafana

Perijinan port di firewall (optional)

  • Perijinan port di firewall ufw
  • Perijinan port di iptables

Akses Grafana, lalu update user dan passwordnya

Setelah instalasi selesai, selanjutnya update password admin grafana. Akses melalui web browser menggunakan alamat http://IP_Address_or_domain:3000, lalu login dengan menggunakan user: admin & password: admin.


Berikutnya anda akan diminta untuk mengubah password anda.


Jika sudah berhasil maka anda akan diarahkan ke beranda grafana.


Sejauh ini kita sudah berhasil masuk dan mengakses grafana. Namun, kami tidak dapat memantau apa pun karena dasbor masih kosong. Selanjutnya mari kita hubungkan prometheus dengan grafana agar kita bisa membuat dashboard monitoring server.

Menambah Datasource prometheus ke dalam grafana

Sebelum membuat dashboard, tambahkan prometheus sebagai datasource yang nantinya digunakan untuk membuat dashboard.
  • Pertama - tama, masuk ke menu Configuration, lalu klik Add data source.
  • Selanjutnya pilih Prometheus sebagai datasource-nya.
  • Isi bagian Konfigurasi yang anda inginkan dan butuhkan, yang paling utama isilah URL Prometheus dengan http://IP_ADDR_or_DOMAIN:9090 sesuai dengan alamat prometheus kita.
  • Kemudian klik Save & Test untuk menyimpan dan mengetes apakah konfigurasinya berhasil. Jika berhasil maka akan muncul notifikasi seperti ini.

Membuat Dashboard

Setelah kita menambahkan datasource pada grafana, maka kita tinggal membuat dashboadnya. Berikut langkah - langkahnya :
  • Pertama - tama, masuk ke menu Create. Lalu klik Add a new panel.
  • Kemudian masukkan query yang ingin anda masukkan. Contohnya query ini avg by(instance) (node_load5). Setelah itu klik Apply.
  • Jika sudah di Apply maka hasilnya seperti berikut. Jangan lupa di klik Save agar dashboard tetap ada. 
  • Silahkan coba utak atik dan bereksperimen dengan dashboard dan query nya. Berikut contoh - contohnya. Untuk info lengkap bisa kunjungi web site ini.

Oke sekian dari saya, semoga artiket ini dapat bermanfaat bagi anda. Share ke teman dan saudara saudara anda. Terima kasih.

Wassalamu'alaikum Warahmatullahi Wabarakatuh

Terbaru Lebih lama

Related Posts

There is no other posts in this category.

Posting Komentar

Subscribe Our Newsletter