Aplikasi Alerting & Monitoring untuk Virtual Machine
Tags: magangsrdkomatik2023, monitoring, alerting, vm
Published: 2023-02-15 03:18:14

Sebagai mahasiswa software engineering saya kadang harus mendeploy aplikasi yang sudah dibuat ke server agar aplikasi yang sudah kita buat dapat digunakan oleh banyak orang.

Semakin banyak aplikasi yang kita buat maka akan semakin banyak server yang kita miliki,apalagi satu aplikasi bila semakin besar dan penggunanya semakin banyak maka akan melakukan horizontal scaling dan akhirnya memiliki beberapa server yang saling terhubung.

Server terkadang bisa saja mati ataupun error sehingga aplikasi tidak bisa diakses, lemot, ataupun fungsinya tidak sesuai karena itu para user dan client bisa kesal saat menggunakan aplikasinya.

Tentunya kita developer tak mau membuat experience yang buruk kepada para user yang menggunakan aplikasi yang kita buat karena itu kita perlu yang namanya monitoring performance aplikasi kita untuk memastikan selalu bekerja dengan baik, jangan sampai kita baru sadar ketika ada protes atau keluhan dari user.

Sebenarnya sudah banyak aplikasi opesource ataupun berbayar untuk melakukan monitoring & alerting seperti promotheus, datadog, newrelic, pagerduty, dll.

Namun kali ini saya ngide untuk membuat nya sendiri dengan bentuk yang lebih sederhana dan standalone dalam satu server.

Jadi idenya adalah akan ada dua aplikasi yaitu client yang akan dipasang di server tiap app kita yang sedang berjalan fungsinya adalah untuk melakukan capturing performance server dengan durasi yang sudah ditentukan dan aplikasi yang kedua yaitu host yang akan dipasang di server khusus untuk monitoring terhadap semua server yang terpasang aplikasi client didalamnya.

## Cara Kerja Sistem

Pertama aplikasi client akan mengcapture performance server dari mulai cpu usage, gpu usage, ram, memory, disk IO, internet speed, dll. ketika data sudah dicapture maka data akan dimasukkan dalam format json pada in memory daatabase seperti redis lalu aplikasi server akan melakukan hit via koneksi http rest API untuk lalu aplikasi client akan meresponse nya dengan mengirimkan data tersebut lalu aplikasi server akan menyimpan data tersebut ke dalam database entah itu postgresql,dll. setelah itu data akan bisa ditampilkan dengan bagus dengan GUI. bila aplikasi client terjadi connection timeout ketika ditembak oleh server maka aplikasi server akan melakukan trigger untuk menelepon developer karena ini masalah yang sangat serius yaitu salah satu server aplikasi kita tidak dapat diakses.

Untuk melakukan panggilan telepon itu mudah saja kita cukup menggunakan third party api seperti twilio maka kita dapat melakukannya dengan mudah.

Tentunya tidak hanya sekedar alerting terhadap server yang tidak dapat diakses saja namun kita juga dapat mengcustomize aplikasi yang kita buat dengan menambahkan kemampuan untuk melakukan alerting via wa message ataupun email ketika penggunakan resource yang terlalu tinggi.

## Kesimpulan

Monitoring server sangat berguna untuk mengantisipasi dengan lebih cepat terkait kinerja aplikasi yang sudah kita buat.

Selain monitoring server lebih baik lagi kita juga melakukan monitoring aplikasi secara langsung misal saja dengan memonitor api response dan latency request response Rest AP, dll.

Dengan monitoring yang bagus maka akan membuat aplikasi lebih menyenangkan untuk digunakan oleh para pengguna.