Monitoring menjadi kebutuhan utama bagi sys admin untuk memantau kondisi "ternak"nya apakah berada pada kondisi yang baik atau tidak. Selain itu, monitoring juga bisa membantu sysadmin tidur lebih tenang, karena dengan monitoring pengambilan tindakan atau perencanaan menjadi lebih terarah dan tersusun dengan rapi (menurut saya sih itu), yang mana artinya sysadmin dapat tidur dengan (lebih) lelap karena perencanaan dan tindakan sudah tersedia. hehehe . . .
Karenanya, kali ini saya ingin berbagi catatan bagaimana memonitoring Linux dengan beberapa tool populer seperti Netdata, InfluxDB dan Grafana. Tentu saja monitoring dengan tool-tool ini tidak terbatas di Linux atau server saja, bisa juga untuk monitoring PC laptop atau desktop dengan sistem operasi yang berbeda karena tool yang akan kita gunakan adalah tool yang crossplatform.
Seperti biasa, first thing first. Environment yang saya gunakan kali ini adalah sebagai berikut :
OS : Lubuntu Desktop 19.04 Docker : Docker version 19.03.1, build 74b1e89 Netdata : netdata v1.16.1-146-g2f5e36ef InfluxDB : version 1.7.7 Grafana : Grafana v6.3.5
Semua catatan yang saya buat di deploy menggunakan docker, karenanya docker service wajib di install terlebih dahulu agar catatan ini bekerja dengan baik. :P
Baiklah, mari kita mulai prosesi ngopreknya. Buat sebuah folder untuk volume service yang akan kita install, (tidak harus sama, tapi pastikan mencukupi untuk kebutuhan ngoprek kali ini)
mkdir -vp /home/$USER/container/volume
masuk ke dalam direktori tersebutcd /home/$USER/container/volume
Kalo sudah, kita akan mulai deploy tiap service. Deploy Netdata
Netdata adalah layanan yang berperan sebagai "agen" untuk mengumpulkan berbagai informasi dimana Netdata terinstall. Untuk lebih detail tentang fitur atau informasi apa saja yang di collect oleh netdata, bisa mampir ke situs resmi milik Netdata. Karena kita akan mendeploy menggunakan docker, maka kita tidak perlu menginstall netdata, cukup buat direktori untuk Netdata
mkdir -vp netdata
Kemudian deploy container Netdata dengan perintah:docker run -d --name netdata \
--hostname netdata \
-p 19999:19999 \
-v $PWD/etc/netdata/netdata.conf:/etc/netdata/netdata.conf \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata
Buat sebuah configurasi file dengan nama netdata.conf, kemudian isi file konfigurasi tersebut seperti berikut :[backend]
enabled = yes
type = opentsdb
destination = [ip_atau_domain]:4242
Copy file tersebut ke $PWD/etc/netdata/netdata.conf , kemudian restart container Netdata dengan perintah:docker restart netdata
Jika sudah, maka Netdata sudah siap untuk mengcollect data dari komputer dimana dia terinstall.Deploy InfluxDB
InfluxDB berperan sebagai database yang akan menampung "angka-angka" yang diperoleh dari Netdata. Dari InfluxDB inilah Grafana akan mengambil data atau informasi dimana Netdata, lalu akan Grafana akan menampilkan informasi tersebut melalui dashboard yang tersedia di grafana. Karena kita juga akan mendeploy InfluxDB dengan docker, maka yang perlu kita lakukan adalah membuat direktori untuk InfluxDB:
mkdir -vp /home/$USER/container/volume
Kemudian, kita generate config untuk InfluxDB dengan perintah :docker run --rm influxdb influxd config > influxdb.conf
File yang dihasilkan adalah influxdb.conf dan berikut adalah sebagian konten dari isi file influxdb.conf
influxdb.conf |
Ada banyak pilihan "agen" yang bisa di integrasikan dengan InfluxDB. Karena kita menggunakan Netdata, maka pada bagian opentsdb, edit configurasi InfluxDB sesuai dengan contoh berikut :
[[opentsdb]]
enabled = true
bind-address = ":4242"
database = "opentsdb"
retention-policy = ""
consistency-level = "one"
tls-enabled = false
certificate = "/etc/ssl/influxdb.pem"
batch-size = 1000
batch-pending = 5
batch-timeout = "1s"
log-point-errors = true
Jika sudah, deploy container InfluxDB dengan perintah :docker run -d \ -p 4242:4242 \ -p 8086:8086 \ -p 8083:8083 \ --name influxdb \ --hostname influxdb \ -v $PWD/var/lib/influxdb:/var/lib/influxdb \ -v $PWD/etc/influxdb:/etc/influxdb \ influxdbSetalah container berhasil running, copy configurasi yang dibuat tadi dengan perintah:
cp influxdb.conf $PWD/var/lib/influxdbSeperti biasa, restart container InfluxDB dengan perintah:
docker restart influxdb
Netdata seharusnya sudah mulai mengirim data ke influxdb, kita bisa cek dengan perintah berikut :
docker run -it --rm influxdb influx -host [ip_atau_domain] -username '[username]' -password '[password]'
(biasanya by default, tidak menggunakan username atau password)Kemudian kita cek apakah ada database yang terbentuk dengan perintah
SHOW DATABASES
Saat Terhubung dengan InfluxDB |
USE opentsdb
Kemudian kita tampilkan daftar tabel dengan perintah :SHOW MEASUREMENTS LIMIT 10
Beberapa Measurement dari Netdata |
Untuk melihat apakah sudah ada data yang masuk ke dalam tabel, kita bisa melkukan query pada tabel measurement yang ada, contoh, kita akan melihan isi dari measurement netdata.apps.cpu.VMs , kita bisa menggunakan perintah :
SELECT * FROM "netdata.apps.cpu.VMs" LIMIT 10
Sample data yang di collect Netdata |
Untuk keluar dari console InfluxDB, bisa digunakan perintah:
QUIT
Dengan ini, InfluxDB sudah siap digunakan. (Beberapa cheat sheet InfluxDB yang pernah saya buat)Konfigurasi Grafana
Grafana is the leading open source project for visualizing metrics.
Supporting rich integration for every popular database like Graphite,
Prometheus and InfluxDB. Setidaknya itulah penjelasan yang kita temukan saat kita coba googling dengan keyword Grafana.
Singkatnya, Grafana adalah dashboard yang bisa membantu untuk memvisualisasikan data yang ada pada Graphite, Prometheus and InfluxDB. Langsung saja, untuk mendeploy Grafana kita gunakan perintah sebagai berikut :
docker run -d \
--name grafana \
--hostname grafana \
-p 3000:3000 \
grafana/grafana
Login ke dashboard grafana yang bisa di akses dari browser dengan alamat url : http://[ip_atau_domain]:3000, dan credential awal yang digunakan adalah username admin dengan password admin.
Login page Grafana |
Saat login pertama kali, kita akan ditawarkan untuk mengganti password. Silahkan diganti jika ingin mengganti password login anda, tapi juga bisa di skip dengan klik "Skip"
Ganti Password? |
Di bagian awal kita akan dihadapkan dengan flow dari setup Grafana. Setelah install, maka kita perlu mendefinisikan, sumber data yang akan digunakan. Klik Add data source,
Awal Setup Grafana |
Pilih InfluxDB |
Kemudian isi form yang yang diperlukan, seperti URL InfluxDB, Nama database opentsdb, username dan password InfluxDB jika ada. Kemudian klik "Save and Test".
Sekedar catatan
jika anda mendapati error message Network Error: Bad Gateway(502) atau seperti yang terlihat pada gambar :
Error gan |
Coba pake http:// |
Jika proses testing sudah berhasil, klik back dan kita akan melihat InfluxDB ada pada list source data yang akan digunakan Grafana
InfluxDB berhasil ditambahkan |
Dengan ini integrasi Netdata, InfluxDB dan Grafana sudah selesai. Selanjutnya adalah membuat visualisasi data yang sudah tersedia ke grafik-grafik yang ada pada Grafana
Menambahkan Dashboard
Pada catatan kali ini saya hanya mencoba import dashboard yang sudah ada. Kita bikin sendiri bisa si, tapi akan jadi lebih panjang dan lebar postingannya. Jadi kali ini kita akan mengimport dashboard yang sudah tersedia pada situs Grafana. Silahkan buka Sub-Menu Dashboard >> Manage. Kemudian kita pilih Import
New Dashboard |
Untuk meng-explore dashboard apa saja yang tersedia di repository grafana, bisa cek dimari. Kali ini saya akan mencoba menggunakan template dengan id 2701 (barangkali mau mampir ke repo creatornya). Maka kita isi kolom id dengan angka 2701 kemudian klik "Load".
Isi Kolom ID Dashboard |
Maka akan muncul informasi tentang dasboard yang akan di install, Jangan lupa isi kolom "datasource-influxdb" dengan InfluxDB yang sudah kita config.
Tambahkan InfluxDB nya |
Kemudian klik "Import" dan bim salabim. Dashboard pun muncul
Dashboard yang terinstall |
Di dashboard sudah tersedia hal-hal mendasar tentang sistem server atau komputer yang sering kita gunakan informasinya. Seperti utilisasi CPU, RAM, dan Penyimpanan. Ada juga Networking dan masi banyak lagi. Jangan lupa, save dulu dashboardnya sebelum meninggalkan situs grafana
Save dashboardnya gan |
Beri nama dashboard sesuai dengan keinginan, kemudian klik "Save"
Kasih nama dashboard |
Demikian longpost kali ini, kalo ada pertanyaan ato komentar, bisa di posting di kolom atau chat saya via telegram yang ada di pojok kanan atas. Semoga bermanfaat. :)
referensi :
No comments:
Post a Comment