Di episode ini kita membahas strategi backup JENKINS_HOME menggunakan plugin ThinBackup atau snapshot filesystem, lengkap dengan prosedur disaster recovery dari nol memakai JCasC dan data backup. Kita juga mengekspor metrik kesehatan controller ke Prometheus dan memvisualisasikannya di Grafana.

Di episode 17 kita membangun notifikasi yang membuat build selalu "berbicara". Sekarang kita urus hal paling tidak menyenangkan tapi paling krusial: apa yang terjadi kalau controller Jenkins mati? Konfigurasi job, credential, dan history build yang tersimpan di JENKINS_HOME bisa hilang seketika. Tanpa backup, semua itu harus di-configure ulang manual — memakan waktu berjam-jam dan rawan kehilangan konfigurasi penting.
Di episode ini kita membahas tiga hal:
JENKINS_HOME dengan ThinBackup atau snapshot filesystem.Semua data penting Jenkins berada di satu direktori JENKINS_HOME:
Kehilangan direktori ini sama dengan kehilangan seluruh otomasi tim. Karena itu backup bukan opsional, melainkan wajib.
Plugin ThinBackup mem-backup konfigurasi dan job Jenkins secara berkala ke direktori terpisah. Beberapa fiturnya: backup otomatis terjadwal, rotasi jumlah backup, dan restore langsung dari UI.
Langkah konfigurasi di Manage Jenkins lalu ThinBackup:
H 2 * * * untuk pukul 2 pagi.Warning
Direktori backup tidak boleh berada di dalam JENKINS_HOME. Kalau disk controller rusak, backup ikut hilang. Letakkan di penyimpanan yang berbeda, idealnya di region berbeda.
Untuk jaminan lebih, kombinasikan dengan snapshot filesystem. Di cloud, snapshot volume dari instance controller, misalnya EBS snapshot atau disk image VM. Di server bare-metal, gunakan LVM snapshot atau rsync berkala.
DR plan adalah prosedur tertulis untuk memulihkan controller dari nol. Karena Jenkins sudah didefinisikan secara deklaratif lewat JCasC (episode 13), pemulihan menjadi sangat cepat. Urutannya:
jenkins/jenkins:lts-jdk17 baru dengan JCasC yang sama dari repository konfigurasi.plugins.txt) agar versi plugin sama.Perintah singkat untuk restore manual:
sudo systemctl stop jenkins
sudo rm -rf /var/lib/jenkins
sudo tar -xzf jenkins-backup-20260803.tar.gz -C /var/lib/jenkins
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo systemctl start jenkinsTip
Uji DR secara berkala (misal kuartalan): spin up controller percobaan dari backup terbaru lalu jalankan satu job dummy. Backup yang tidak pernah diuji bukanlah backup — itu sekadar arsip.
Backup menolong saat bencana, tapi masalah biasanya muncul pelan-pelan: executor kehabisan slot, antrian menumpuk, memory JVM bocor. Plugin Prometheus Metrics mengekspos metrik controller di endpoint /prometheus, yang kemudian di-scrape oleh Prometheus.
Konfigurasi scrape di file prometheus.yml:
scrape_configs:
- job_name: 'jenkins-controller'
metrics_path: '/prometheus'
scheme: https
static_configs:
- targets:
- 'jenkins.example.com'
basic_auth:
username: 'metrics-user'
password: 'metrics-password'
tls_config:
insecure_skip_verify: trueNote
Matikan opsi anonymous read di bagian security, lalu batasi akses ke endpoint /prometheus untuk user monitoring saja. Ini mencegah metrik yang berisi nama job bocor ke publik.
| Metrik | Arti | Indikasi Masalah |
|---|---|---|
jenkins_queue_size_value | Jumlah item menunggu di antrian | Executor penuh, agent kurang |
jenkins_executor_count_value | Total executor yang terpakai | Kapasitas build hampir habis |
jenkins_jvm_memory_used_bytes | Memory heap JVM terpakai | Potensi OOM atau memory leak |
jenkins_builds_running | Build yang sedang berjalan | Aktivitas abnormal |
Metrik ini divisualisasikan di Grafana menggunakan dashboard community Jenkins. Setelah datasource Prometheus ditambahkan di Grafana, dashboard menampilkan grafik queue size, executor usage, dan JVM memory sekaligus, lengkap dengan alert rule.
Contoh rule alert untuk antrian menumpuk:
groups:
- name: jenkins.rules
rules:
- alert: JenkinsQueueHigh
expr: jenkins_queue_size_value > 20
for: 5m
labels:
severity: warning
annotations:
summary: Antrian build menumpuk di JenkinsDengan kombinasi queue size, executor usage, dan JVM memory, kita bisa memutuskan kapan menambah agent atau menaikkan heap JVM — sebelum controller benar-benar tersendat.
Di episode ini kita membahas HA, backup, dan DR:
JENKINS_HOME menyimpan seluruh aset konfigurasi, job, dan credential sehingga wajib di-backup.Kontroller yang sehat adalah fondasi pipeline yang andal. Di episode 19 kita masuk mode detektif: troubleshooting dan debugging pipeline — mulai dari analisis log, fitur Replay, Snippet Generator, sampai menangani OOM dan agent yang terputus. Sampai jumpa!