Monitoring Server STB HG680P dengan Grafana, Prometheus, Node Exporter, dan cAdvisor
Membangun Sistem Monitoring pada Home Server
Pada artikel sebelumnya, STB HG680P telah berhasil diubah menjadi home server berbasis Armbian. Selain itu, Docker, CasaOS, dan Portainer juga telah berhasil diinstal dan dijalankan. Oleh karena itu, tahap berikutnya adalah membangun sistem monitoring agar kondisi server dapat dipantau secara real-time.
Pada implementasi ini, sistem monitoring dibangun menggunakan Prometheus, Grafana, Node Exporter, dan cAdvisor. Secara singkat, Prometheus berfungsi mengumpulkan dan menyimpan data metrik, sedangkan Node Exporter mengambil informasi penggunaan resource sistem. Di sisi lain, cAdvisor bertugas memantau aktivitas container Docker, dan Grafana digunakan untuk menampilkan seluruh data tersebut dalam bentuk dashboard yang interaktif. Melalui artikel ini, saya akan membahas proses instalasi, konfigurasi, serta pembangunan dashboard monitoring di Grafana.
Persiapan Direktori Monitoring
Sebelum melakukan instalasi layanan monitoring, langkah pertama yang perlu dilakukan adalah membuat direktori khusus sebagai tempat penyimpanan seluruh file konfigurasi dan data monitoring agar lebih terstruktur. Dengan begitu, seluruh konfigurasi tersusun rapi sehingga proses pengelolaan, pencadangan, maupun pemeliharaan sistem di kemudian hari tidak berantakan.
Terdapat empat layanan utama yang akan dijalankan pada implementasi ini, yaitu:
– Prometheus, sebagai media penyimpan dan pengumpul data metrics.
– Grafana, sebagai dashboard visualisasi monitoring.
– Node Exporter, sebagai pengambil informasi penggunaan CPU, RAM, Disk, dan Network pada sistem operasi.
– cAdvisor, sebagai monitoring container Docker yang berjalan pada server.
Seluruh konfigurasi layanan tersebut disimpan di dalam direktori `/opt/monitoring`. Untuk membuat struktur direktori tersebut, jalankan perintah berikut di terminal Armbian:
sudo mkdir -p /opt/monitoring
sudo mkdir -p /opt/monitoring/monitoring-data/config
sudo mkdir -p /opt/monitoring/monitoring-data/prometheus_data
sudo mkdir -p /opt/monitoring/monitoring-data/grafana_data
Setelah perintah dijalankan, sistem akan meminta password root yang dibuat pertama kali saat instalasi Armbian. Masukkan password root tersebut, lalu tekan Enter. Begitu proses selesai, terminal akan kembali ke tampilan awal, yang menandakan seluruh direktori berhasil dibuat.
Dengan demikian, direktori yang telah dibuat tadi nantinya digunakan sebagai lokasi penyimpanan file konfigurasi Prometheus, Grafana, Docker Compose, serta data yang dihasilkan selama proses monitoring berlangsung.
Membuat Konfigurasi Autentikasi Prometheus
Secara bawaan, Prometheus dapat diakses tanpa autentikasi. Namun, agar data monitoring tidak dapat diakses sembarang pengguna, pada proyek ini Prometheus dikonfigurasi menggunakan Basic Authentication.
Untuk itu, buat terlebih dahulu file konfigurasi autentikasi dengan menjalankan perintah berikut:
sudo touch /opt/monitoring/monitoring-data/config/web-config.yml
File `web-config.yml` nantinya digunakan untuk menyimpan username dan password yang telah dienkripsi menggunakan metode hashing. Dengan cara ini, password tidak disimpan dalam bentuk teks biasa sehingga keamanan akses Prometheus menjadi lebih baik.
Generate Password Menggunakan bcrypt
Berikutnya, kita akan menghasilkan password yang telah dienkripsi menggunakan algoritma bcrypt. Sebelum membuat hash password, instal terlebih dahulu library `python3-bcrypt` dengan perintah berikut:
sudo apt update
sudo apt install python3-bcrypt -y
Tunggu beberapa menit hingga proses instalasi selesai. Setelah itu, buat sebuah file Python menggunakan perintah berikut:
nano generate_pass.py
Kemudian, masukkan kode berikut:
import bcrypt
password = “your_password”
hashed_password = bcrypt.hashpw(
password.encode(“utf-8”),
bcrypt.gensalt()
)
print(hashed_password.decode())
Simpan file tersebut dengan menekan `CTRL+O`, `ENTER`, lalu `CTRL+X`, dan jalankan menggunakan perintah berikut:
python3 generate_pass.py
Apabila perintah berhasil dijalankan, sistem akan menghasilkan hash password yang nantinya digunakan pada konfigurasi Prometheus. Dengan menggunakan metode hashing seperti di atas, password asli tidak disimpan secara langsung pada file konfigurasi, sehingga keamanan akses ke layanan Prometheus menjadi lebih baik dibandingkan menggunakan password dalam bentuk teks biasa.
Mengonfigurasi File web-config.yml
Hash password yang telah dihasilkan pada langkah di atas selanjutnya dimasukkan ke dalam file `web-config.yml`. Buka file konfigurasi tersebut dengan perintah berikut:
sudo nano /opt/monitoring/monitoring-data/config/web-config.yml
Kemudian, masukkan konfigurasi berikut:
basic_auth_users:
admin: (hasil dari generate python3 generate_pass.py di atas)
Sesuaikan nilai hash tersebut dengan hasil yang diperoleh dari proses generate password sebelumnya. Setelah itu, pastikan konfigurasi berhasil tersimpan dengan menjalankan perintah berikut:
cat /opt/monitoring/monitoring-data/config/web-config.yml
Jika isi file telah ditampilkan sesuai konfigurasi yang dibuat, maka proses konfigurasi autentikasi Prometheus telah berhasil dilakukan dan siap digunakan pada tahap berikutnya.
Membuat Konfigurasi Prometheus
Setelah autentikasi selesai, langkah berikutnya adalah membuat file konfigurasi utama Prometheus. File ini berfungsi menentukan target yang akan dipantau (scrape target), sehingga Prometheus dapat mengumpulkan data metrik dari setiap layanan monitoring.
Pertama, buat file konfigurasi menggunakan perintah berikut:
sudo touch /opt/monitoring/monitoring-data/config/prometheus.yml
Lalu, buka file tersebut menggunakan editor Nano dengan perintah berikut:
sudo nano /opt/monitoring/monitoring-data/config/prometheus.yml
Salin konfigurasi berikut ke dalam file `prometheus.yml`:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
– job_name: “prometheus”
static_configs:
– targets: [“localhost:9090”]
basic_auth:
username: “admin”
password: “your_password”
– job_name: “cadvisor”
static_configs:
– targets:
– cadvisor:8080
– job_name: “VM-STB”
static_configs:
– targets:
– node-exporter:9100
Konfigurasi inilah yang membuat Prometheus melakukan proses scraping setiap 15 detik terhadap tiga target utama, yaitu Prometheus itu sendiri, cAdvisor, dan Node Exporter. Dengan begitu, seluruh data penggunaan resource sistem maupun aktivitas container Docker dapat dikumpulkan secara otomatis dan disimpan sebagai data metrik.
Membuat Konfigurasi Datasource Grafana
Agar dapat menampilkan data monitoring, Grafana perlu dihubungkan dengan Prometheus sebagai datasource. Dengan konfigurasi ini, datasource akan dibuat secara otomatis ketika container Grafana dijalankan.
Buat file datasource menggunakan perintah berikut:
sudo touch /opt/monitoring/monitoring-data/config/datasources.yml
Setelah itu, buka file tersebut menggunakan Nano dengan perintah berikut:
sudo nano /opt/monitoring/monitoring-data/config/datasources.yml
Salin konfigurasi berikut:
apiVersion: 1
datasources:
– name: prometheus
type: prometheus
url: http://prometheus:9090
access: proxy
isDefault: true
basicAuth: true
basicAuthUser: admin
secureJsonData:
basicAuthPassword: “your_password”
Tujuan konfigurasi di atas adalah menetapkan Prometheus sebagai datasource utama pada Grafana. Selain itu, autentikasi juga telah dikonfigurasi menggunakan username dan password yang sama dengan konfigurasi Prometheus, sehingga kedua layanan dapat saling terhubung secara otomatis.
Membuat Docker Compose Monitoring
Setelah seluruh file konfigurasi selesai dibuat, langkah berikutnya adalah membuat file Docker Compose untuk menjalankan seluruh layanan monitoring secara bersamaan. Pertama, buat file `docker-compose.yml` menggunakan perintah berikut:
sudo touch /opt/monitoring/docker-compose.yml
Kemudian, buka file tersebut menggunakan editor Nano dengan menjalankan perintah berikut:
sudo nano /opt/monitoring/docker-compose.yml
Salin konfigurasi Docker Compose yang telah disiapkan ke dalam file tersebut:
services:
# Monitoring Service
cadvisor:
container_name: monitoring-cadvisor
image: “gcr.io/cadvisor/cadvisor:v0.47.1”
restart: always
devices:
– “/dev/kmsg:/dev/kmsg”
volumes:
– “/:/rootfs:ro”
– “/sys:/sys:ro”
– “/sys/fs/cgroup:/sys/fs/cgroup:ro”
– “/var/lib/docker:/var/lib/docker:ro”
– “/var/run/docker.sock:/var/run/docker.sock:ro”
– “/dev/disk:/dev/disk:ro”
privileged: true
ports:
– “8080:8080”
node-exporter:
container_name: monitoring-node-exporter
image: “prom/node-exporter:v1.7.0”
restart: always
command:
– “–path.rootfs=/host”
volumes:
– “/:/host:ro”
ports:
– “9100:9100”
prometheus:
container_name: monitoring-prometheus
user: root
image: “prom/prometheus:v3.0.0”
restart: always
volumes:
– “./monitoring-data/config/prometheus.yml:/etc/prometheus/prometheus.yml”
– “./monitoring-data/config/web-config.yml:/etc/prometheus/web-config.yml”
– “./monitoring-data/prometheus_data:/prometheus”
command:
– “–config.file=/etc/prometheus/prometheus.yml”
– “–storage.tsdb.path=/prometheus”
– “–storage.tsdb.retention.time=3d”
– “–web.config.file=/etc/prometheus/web-config.yml”
privileged: true
ports:
– “9090:9090”
depends_on:
– cadvisor
– node-exporter
# Dashboard
grafana:
user: root
container_name: monitoring-grafana
image: “grafana/grafana:11.5.0”
restart: always
volumes:
– “./monitoring-data/config/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml”
– “./monitoring-data/grafana_data:/var/lib/grafana”
privileged: true
ports:
– “3000:3000”
depends_on:
– prometheus
Secara singkat, konfigurasi Docker Compose di atas terdiri atas empat layanan utama, yaitu:
– Prometheus, sebagai penyimpan dan pengelola data metrik.
– Grafana, sebagai aplikasi visualisasi monitoring.
– Node Exporter, sebagai pengumpul informasi penggunaan resource sistem.
– cAdvisor, sebagai pengumpul data aktivitas container Docker.
Selain mendefinisikan layanan yang akan dijalankan, file `docker-compose.yml` juga mengatur image Docker yang digunakan, port yang dibuka, volume penyimpanan data, dan hubungan antar-container, sehingga seluruh layanan dapat saling berkomunikasi dengan baik.
Menjalankan Layanan Monitoring
Setelah seluruh file konfigurasi selesai dibuat, layanan monitoring dapat dijalankan menggunakan Docker Compose. Sebelum menjalankan container, masuk terlebih dahulu ke direktori monitoring yang telah dibuat sebelumnya dengan perintah:
cd /opt/monitoring
Jalankan seluruh layanan monitoring dengan perintah berikut:
sudo docker compose up -d
Perintah `docker compose up -d` berguna untuk membuat sekaligus menjalankan seluruh container yang telah didefinisikan pada file `docker-compose.yml`. Opsi `-d` (detached mode) membuat seluruh container berjalan di latar belakang, sehingga terminal tetap dapat digunakan untuk menjalankan perintah lainnya.
Pada langkah ini, dibutuhkan beberapa menit untuk memprosesnya. Tunggu hingga proses selesai; Docker akan mengunduh image yang dibutuhkan (apabila belum tersedia) dan membuat seluruh container sesuai konfigurasi yang telah dibuat. Jika proses berhasil, akan muncul informasi seperti berikut:
Container monitoring-cadvisor Started
Container monitoring-node-exporter Started
Container monitoring-prometheus Started
Container monitoring-grafana Started
Tampilan seperti di atas menunjukkan bahwa keempat layanan monitoring berhasil dijalankan tanpa kendala. Meski begitu, tetap perlu dilakukan pengecekan untuk memastikan seluruh container benar-benar berjalan dengan baik.
Mengecek Status Container
Setelah seluruh layanan monitoring berhasil dijalankan, langkah selanjutnya adalah memastikan setiap container berada dalam kondisi aktif (running). Pengecekan ini dilakukan menggunakan perintah berikut:
sudo docker ps
Perintah `sudo docker ps` digunakan untuk menampilkan seluruh container Docker yang sedang berjalan, beserta informasi seperti nama container, image yang digunakan, status, dan port yang terbuka.
Apabila instalasi berhasil, akan terlihat empat container dengan status Up, yaitu:
– monitoring-grafana
– monitoring-prometheus
– monitoring-node-exporter
– monitoring-cadvisor
Status *Up* menunjukkan bahwa seluruh layanan monitoring telah berjalan dengan baik dan siap digunakan. Selain itu, pada hasil `sudo docker ps` juga terlihat port yang digunakan oleh masing-masing layanan, sehingga nantinya dapat diakses melalui browser menggunakan alamat IP STB.
Mengakses Layanan Monitoring
Setelah memastikan seluruh container berjalan dengan baik, setiap layanan dapat diakses melalui browser. Implementasi ini menggunakan alamat IP STB sebagai contoh; silakan sesuaikan dengan IP STB yang digunakan pada jaringan masing-masing.
| Layanan | Alamat Akses |
| Grafana | `http://(alamat ip STB):3000` |
| Prometheus | `http://(alamat ip STB):9090` |
| Node Exporter | `http://(alamat ip STB):9100` |
| cAdvisor | `http://(alamat ip STB):8080` |
Keempat layanan tersebut memiliki fungsi berbeda, namun saling terhubung dalam proses monitoring server. Pada tahap berikutnya, dilakukan pengujian untuk memastikan masing-masing layanan dapat diakses dan berjalan sesuai fungsinya.
Pertama, buka Grafana melalui browser. Halaman awal akan meminta konfigurasi akun administrator:
– Username: `admin`
– Password: `admin`
Selanjutnya, buat username dan password baru sesuai kebutuhan. Jika berhasil, halaman utama Grafana akan muncul.
Prometheus digunakan sebagai database metrics yang mengumpulkan data dari Node Exporter dan cAdvisor. Login Prometheus menggunakan Basic Authentication:
– Username: `admin`
– Password: `your_password`
Setelah berhasil login, pengguna dapat melihat halaman utama Prometheus dan melakukan query terhadap metrics yang tersedia.
Node Exporter tidak menggunakan halaman login. Apabila berhasil diakses, akan tampil daftar metrics sistem yang tersedia. Sama halnya dengan Node Exporter, cAdvisor juga tidak menggunakan halaman login. Setelah berhasil diakses, akan tampil halaman monitoring container Docker.
Berdasarkan tahapan yang telah dilakukan, instalasi sistem monitoring menggunakan Prometheus, Grafana, Node Exporter, dan cAdvisor telah berhasil diselesaikan. Seluruh layanan berjalan dengan baik dan dapat diakses melalui browser sesuai konfigurasi yang telah dibuat. Tahap berikutnya adalah membangun dashboard Grafana untuk memvisualisasikan data monitoring dalam bentuk grafik dan panel secara real-time.
Membangun Dashboard Monitoring Grafana
Setelah seluruh layanan monitoring berhasil dijalankan dan dapat diakses melalui browser, langkah selanjutnya adalah membangun dashboard monitoring pada Grafana. Dashboard inilah yang berfungsi menampilkan data metrik yang telah dikumpulkan oleh Prometheus dalam bentuk grafik dan panel visual, sehingga kondisi server dapat dipantau secara real-time.
Melalui dashboard Grafana, administrator dapat memantau berbagai informasi penting seperti penggunaan CPU, memori, penyimpanan, jaringan, serta aktivitas container Docker yang sedang berjalan pada perangkat STB berbasis Armbian. Dengan adanya visualisasi tersebut, proses pemantauan server menjadi lebih mudah dibandingkan harus melihat data metrik secara langsung melalui Prometheus.
Pengujian Dashboard Awal
Setelah berhasil masuk ke halaman utama Grafana, langkah pertama adalah mengimpor dashboard dari Grafana Dashboard Library. Pada pengujian awal ini, dashboard yang dipilih adalah dashboard monitoring container Docker yang umum digunakan oleh pengguna Grafana. Untuk mengimpornya, pilih menu **Dashboards** pada panel sebelah kiri, lalu klik tombol **New** dan pilih **Import**.
> Catatan: apabila Grafana baru pertama kali digunakan, halaman dashboard masih dalam keadaan kosong. Tampilan bisa sedikit berbeda dari instalasi baru karena beberapa nama dashboard pada gambar telah disamarkan.
Setelah sampai di halaman ini, klik tombol **New** di pojok kanan atas, lalu pilih **Import**. Masukkan ID `1860` sebagai Dashboard cAdvisor Exporter, kemudian klik **Load** untuk memuat konfigurasi dashboard. Setelah proses import selesai, pilih **Prometheus** sebagai datasource, lalu klik **Import**.
Pada tahap ini, dashboard berhasil diimpor dan dapat ditampilkan oleh Grafana. Namun, setelah dilakukan pengujian lebih lanjut, sebagian besar panel masih menampilkan status *No Data*, sehingga informasi monitoring container Docker belum dapat ditampilkan sebagaimana mestinya.
Analisis Permasalahan
Karena sebagian besar panel masih menampilkan status *No Data*, perlu dilakukan pengecekan terhadap seluruh layanan monitoring yang telah dijalankan sebelumnya. Hasil pengecekan menunjukkan bahwa seluruh container monitoring berstatus *Up* dan berjalan dengan normal. Selain itu, Prometheus juga berhasil melakukan proses scraping terhadap seluruh target yang telah dikonfigurasi. Jalankan perintah berikut di terminal Armbian untuk memverifikasinya:
docker ps
Selanjutnya, dilakukan pengecekan pada halaman **Targets** di Prometheus serta pada layanan cAdvisor. Hasilnya menunjukkan bahwa seluruh target berada pada status *UP*, yang menandakan Prometheus berhasil menerima data metrik dari setiap layanan monitoring.
Berdasarkan hasil pengujian tersebut, dapat disimpulkan bahwa konfigurasi Prometheus, Node Exporter, maupun cAdvisor telah berjalan dengan baik. Dengan kata lain, permasalahan yang menyebabkan dashboard Grafana menampilkan status *No Data* diduga bukan berasal dari proses instalasi layanan monitoring, melainkan dari kompatibilitas dashboard atau lingkungan Docker yang digunakan.
Proses Troubleshooting
Pada tahap ini, dilakukan beberapa langkah troubleshooting untuk mengetahui penyebab dashboard belum dapat menampilkan metrik container secara optimal. Beberapa pengujian yang dilakukan antara lain:
– Memeriksa log cAdvisor.
– Mencoba beberapa Dashboard ID dari Grafana Dashboard Library.
– Melakukan pengujian pada Ubuntu Virtual Machine.
– Membandingkan hasil pengujian antara Ubuntu Virtual Machine dan STB Armbian.
Sebelumnya, saya telah memiliki Virtual Machine Ubuntu yang membantu menguji coba seluruh langkah proyek ini. Hasil pengujian menunjukkan bahwa permasalahan yang sama muncul pada kedua lingkungan tersebut. Dengan demikian, penyebab utama bukan berasal dari sistem operasi Armbian, melainkan dari komponen lain yang digunakan pada kedua sistem.
Untuk memastikannya lebih lanjut, log cAdvisor diperiksa menggunakan perintah:
sudo docker logs monitoring-cadvisor | tail -50
Hasil log menunjukkan bahwa container cAdvisor berhasil berjalan. Meski demikian, dashboard Grafana masih belum dapat menampilkan seluruh metrik container, sehingga diperlukan analisis lebih lanjut untuk menemukan penyebabnya.
Identifikasi Penyebab
Setelah dilakukan serangkaian pengujian dan proses troubleshooting, diketahui bahwa seluruh layanan monitoring sebenarnya telah berjalan dengan baik. Prometheus berhasil melakukan scraping terhadap target yang telah dikonfigurasi, sedangkan Node Exporter dan cAdvisor juga berhasil menghasilkan metrik yang dapat diakses melalui browser. Meski begitu, dashboard Grafana masih belum mampu menampilkan data container secara optimal.
Untuk memastikan penyebab permasalahan yang terjadi, dilakukan pengecekan versi Docker Engine yang digunakan pada proses implementasi dengan menjalankan perintah berikut:
docker –version
Hasil yang diperoleh menunjukkan bahwa sistem menggunakan Docker Engine versi 29.6.2. Berdasarkan hasil pengujian pada Ubuntu Virtual Machine maupun STB HG680P, ditemukan bahwa dashboard cAdvisor yang digunakan belum sepenuhnya kompatibel dengan Docker Engine versi tersebut. Oleh sebab itu, dilakukan percobaan menggunakan Docker Engine versi 28.5.2 untuk mengetahui apakah permasalahan yang terjadi dapat diatasi tanpa mengubah konfigurasi layanan monitoring yang telah dibuat sebelumnya.
Downgrade Docker Engine
Untuk menguji dugaan tersebut, versi Docker Engine diturunkan dari 29.6.2 menjadi 28.5.2 menggunakan paket resmi Docker. Proses downgrade dilakukan tanpa mengubah konfigurasi Prometheus, Grafana, Node Exporter, maupun cAdvisor, sehingga hasil pengujian hanya dipengaruhi oleh perubahan versi Docker Engine.
Pertama, lihat versi Docker yang tersedia dan hentikan layanan Docker dengan menjalankan perintah berikut:
apt-cache madison docker-ce
apt-cache madison docker-ce-cli
apt-cache madison containerd.io
Jika versi yang dituju tersedia, lanjutkan dengan perintah:
sudo systemctl stop docker
Setelah itu, lakukan proses downgrade menggunakan perintah berikut:
sudo apt install –allow-downgrades \
docker-ce=5:28.5.2-1~ubuntu.24.04~noble \
docker-ce-cli=5:28.5.2-1~ubuntu.24.04~noble
Proses ini membutuhkan beberapa menit; tunggu hingga instalasi selesai. Selanjutnya, lakukan verifikasi untuk memastikan versi Docker Engine telah berubah dengan menjalankan perintah berikut:
docker –version
Apabila proses berhasil, akan muncul informasi seperti berikut:
Docker version 28.5.2
Menjalankan Kembali Layanan Monitoring
Setelah versi Docker Engine berhasil berubah menjadi 28.5.2, langkah selanjutnya adalah menjalankan kembali seluruh layanan monitoring. Hal ini perlu dilakukan karena proses downgrade menyebabkan layanan Docker dimulai ulang, sehingga seluruh container monitoring yang sebelumnya berjalan akan berhenti secara otomatis.
Sebelum menjalankan kembali container, masuk terlebih dahulu ke direktori monitoring dengan perintah:
cd /opt/monitoring
Lakukan pengecekan status container dengan menjalankan perintah berikut:
sudo docker ps
Karena proses downgrade berhasil, perintah tersebut tidak akan menampilkan container apa pun yang sedang berjalan. Kondisi ini normal, karena seluruh container monitoring telah berhenti selama proses perubahan versi Docker Engine. Untuk menjalankannya kembali, gunakan perintah berikut:
sudo docker compose up -d
Perintah tersebut akan menjalankan kembali seluruh container yang telah didefinisikan pada file `docker-compose.yml`, yaitu Prometheus, Grafana, Node Exporter, dan cAdvisor. Tunggu beberapa menit, lalu lakukan kembali pengecekan menggunakan perintah berikut:
sudo docker ps
Apabila berhasil, akan terlihat empat container dengan status Up, yaitu:
– monitoring-cadvisor
– monitoring-node-exporter
– monitoring-prometheus
– monitoring-grafana
Status *Up* menunjukkan bahwa seluruh layanan monitoring telah aktif kembali dan siap digunakan. Selanjutnya, dilakukan pengujian dengan mengimpor kembali dashboard Grafana untuk memastikan data metrik dapat ditampilkan dengan baik.
Mengimpor Kembali Dashboard Grafana
Setelah seluruh layanan monitoring berhasil dijalankan kembali, langkah berikutnya adalah mengimpor ulang dashboard Grafana. Untuk memulai proses import, buka halaman Grafana melalui browser menggunakan alamat IP STB pada port 3000 seperti pada langkah sebelumnya. Setelah berhasil masuk ke halaman utama Grafana, pilih menu **Dashboards** pada panel sebelah kiri, klik tombol **New** di pojok kanan atas, lalu pilih **Import**.
Pada halaman **Import Dashboard**, masukkan Dashboard ID yang akan digunakan, lalu klik tombol **Load**. Setelah proses Load selesai, pilih **Prometheus** sebagai datasource yang akan digunakan, kemudian klik tombol **Import** untuk menyelesaikan proses import dashboard.
> Ringkasnya, ulangi langkah berikut: pilih **Dashboards** → klik **New** di pojok kanan atas → pilih **Import** → masukkan ID yang akan digunakan → pilih datasource Prometheus → klik **Load**.
Berikut dua dashboard yang digunakan pada implementasi ini:
**Dashboard Node Exporter Full**
– Dashboard ID: `1860`
– Nama Dashboard: Node Exporter Full
Dashboard ini digunakan untuk menampilkan berbagai informasi mengenai kondisi sistem operasi, antara lain:
– CPU Usage
– Memory Usage
– Disk Usage
– Network Traffic
– Filesystem
– Load Average
– Uptime
**Dashboard cAdvisor Docker Insights**
– Dashboard ID: `19908`
Dashboard ini digunakan untuk memantau aktivitas container Docker yang sedang berjalan, seperti:
– Container CPU Usage
– Container Memory Usage
– Network RX/TX
– Filesystem Usage
– Running Containers
– Container Restart Count
Pada implementasi ini digunakan dua dashboard berbeda: Node Exporter Full untuk monitoring sistem operasi, dan cAdvisor Docker Insights untuk monitoring container Docker.
Hasil Implementasi Dashboard
Setelah proses import dashboard selesai dilakukan, seluruh panel monitoring berhasil menampilkan data secara real-time. Dashboard yang sebelumnya menampilkan status *No Data* kini telah berhasil menampilkan seluruh metrik sistem maupun container Docker.
Pada dashboard cAdvisor Docker Insights, administrator dapat memantau informasi mengenai penggunaan CPU, memori, jaringan, filesystem, jumlah container yang sedang berjalan, serta berbagai informasi lain terkait aktivitas container Docker. Sementara itu, dashboard Node Exporter Full juga berhasil menampilkan informasi penggunaan sumber daya sistem operasi secara lengkap, meliputi penggunaan CPU, memori, penyimpanan, aktivitas jaringan, filesystem, beban sistem (load average), serta waktu aktif (uptime) server.
Berdasarkan hasil implementasi yang telah dilakukan, perubahan versi Docker Engine dari 29.6.2 menjadi 28.5.2 berhasil mengatasi permasalahan kompatibilitas yang sebelumnya menyebabkan dashboard Grafana tidak dapat menampilkan metrik container. Setelah proses downgrade selesai dan seluruh layanan monitoring dijalankan kembali, dashboard Grafana pun dapat menampilkan seluruh informasi monitoring dengan baik.
Kesimpulan
Pada artikel terakhir ini, telah berhasil dibangun sistem monitoring pada STB HG680P berbasis Armbian menggunakan Prometheus, Grafana, Node Exporter, dan cAdvisor. Seluruh layanan berhasil dikonfigurasi dan dijalankan menggunakan Docker Compose, sehingga mampu mengumpulkan, menyimpan, dan memvisualisasikan data penggunaan sumber daya sistem maupun aktivitas container Docker secara real-time.
Selama proses implementasi, ditemukan kendala berupa dashboard Grafana yang masih menampilkan status *No Data* meskipun seluruh layanan monitoring berjalan dengan baik. Setelah dilakukan analisis dan proses troubleshooting, diketahui bahwa penyebab utamanya berkaitan dengan kompatibilitas Docker Engine versi 29.6.2. Dengan melakukan downgrade ke versi 28.5.2, dashboard Grafana akhirnya berhasil menampilkan seluruh metrik sistem dan container Docker sebagaimana mestinya.
Melalui implementasi ini, dapat disimpulkan bahwa STB HG680P yang sebelumnya hanya berfungsi sebagai perangkat Android TV berhasil dikembangkan menjadi home server. Perangkat ini tidak hanya mampu menjalankan berbagai layanan berbasis Docker, tetapi juga memiliki sistem monitoring yang dapat digunakan untuk memantau kondisi server secara lebih mudah, efektif, dan real-time.
*Catatan: jangan pernah panik. Tetap tenang (stay calm), karena setiap masalah pasti ada jalan keluarnya. Error bukan akhir dari proses, melainkan bagian dari proses belajar.*
