• Indonesian
  • English
  • Redis Bgsave Broken di Netdata — Cara Fix Notifikasi

    Kecepatan:
    ⏱ 10 min read
    Difficulty: Intermediate
    Last Updated: Juli 2026
    Tested On: AlmaLinux 8/9, CentOS 7, Ubuntu 20.04/22.04, CyberPanel / DirectAdmin

    Pernah nggak sih kamu lagi enak-enak nge-check dashboard monitoring, tiba-tiba ada notifikasi merah muncul dari Netdata? Jantung langsung deg-dekan, apalagi kalau statusnya CRITICAL. Saya pernah ngalamin ini pas lagi shift malam — biasanya jam 2 atau 3 pagi, notifikasi Netdata masuk ke Telegram. Isinya cuma satu baris: redis_local.bgsave_health status CRITICAL. Rasanya kayak lagi santai minum kopi, tiba-tiba alarm mobil bunyi di tengah malam. Kamu pasti langsung panik dan mikir, “Redis-ku kenapa?”

    Jadi begini, Redis itu semacam gudang penyimpanan data super cepat yang dipakai oleh banyak aplikasi — mulai dari session management, caching, sampai message broker. Kalau Redis-nya bermasalah, dampaknya bisa ke mana-mana. Website bisa lambat, aplikasi bisa error, bahkan fitur tertentu bisa completely down. Dan notifikasi redis_local.bgsave_health yang muncul di Netdata itu sebenarnya adalah alarm yang mengatakan bahwa proses backup data Redis (yang namanya RDB save atau bgsave) mengalami kegagalan. Ini bukan sekadar alarm biasa — ini tanda bahwa data di Redis-mu berpotensi hilang kalau server restart mendadak.

    Sebagai NOC engineer yang sudah menangani ratusan server, saya bisa bilang: masalah ini sebenarnya cukup umum terjadi, terutama di server yang menjalankan CyberPanel atau panel hosting lainnya. Penyebabnya bermacam-macam, mulai dari Redis yang kehabisan memori, konfigurasi yang salah, sampai service autom8redis yang perlu di-restart. Yang penting, jangan panik dulu. Ikuti langkah-langkah di bawah ini dan kamu bisa fix masalah ini dalam hitungan menit.

    Notifikasi lengkap yang biasanya muncul di Netdata terlihat seperti ini:

    server.iixcp.domainku.net is critical - redis bgsave broken
    redis_local.bgsave_health
    Redis background save = ok
    Status of the last RDB save operation (0: ok, 1: error)

    Meskipun di log tertulis Redis background save = ok, status alarm tetap CRITICAL. Ini terjadi karena Netdata mendeteksi bahwa proses bgsave sebelumnya pernah gagal, dan statusnya belum di-reset. Kadang memang Netdata agak “nyangkut” dan butuh restart service Redis supaya alarm-nya clear. Nah, ini yang sering bikin bingung engineer junior — kok statusnya ok tapi alarm-nya tetap critical? Jawabannya: Netdata cache status bgsave dan perlu restart supaya statusnya refresh.

    Kenapa Redis Bgsave Bisa Broken?

    Sebelum kita masuk ke solusi, penting untuk paham dulu kenapa masalah ini bisa terjadi. Bgsave (background save) adalah mekanisme Redis untuk membuat snapshot data ke disk secara periodik. Kalau kamu punya konfigurasi save 900 1 di redis.conf, itu artinya Redis akan otomatis save data ke disk setiap kali ada minimal 1 key yang berubah dalam 900 detik terakhir. Proses save ini berjalan di background, makanya namanya bgsave.

    Ketika bgsave gagal, beberapa hal bisa terjadi:

    • Kekurangan disk space — Redis tidak bisa menulis file .rdb ke disk karena kapasitas penuh
    • Kekurangan memori (fork issue) — Proses bgsave membutuhkan fork(), yang artinya Redis perlu duplikasi memory usage. Kalau Redis pakai banyak RAM, fork bisa gagal
    • Permission issue — Redis tidak punya permission untuk menulis ke direktori tertentu
    • Corrupt RDB file — File dump.rdb yang sudah ada mengalami kerusakan
    • Service autom8redis bermasalah — Di server CyberPanel, ada service tambahan seperti autom8redis_broker dan autom8redis_taskq yang bisa menyebabkan konflik

    Di kasus yang sering saya temui, masalahnya bukan di Redis-nya langsung, melainkan di service pendukung seperti autom8redis_broker dan autom8redis_taskq. Kedua service ini berjalan sebagai message broker untuk CyberPanel dan kadang mengalami deadlock atau connection pool exhaustion yang mengganggu operasi Redis utama.

    Gejala dan Error Message

    Berikut adalah gejala yang biasanya muncul ketika Redis bgsave mengalami masalah:

    Gejala Keterangan Tingkat Urgency
    Notifikasi CRITICAL di Netdata redis_local.bgsave_health status CRITICAL Tinggi
    Aplikasi lambat / timeout Request yang melibati Redis mengalami delay Tinggi
    Session user hilang User tiba-tiba logout karena session tidak tersimpan Sedang
    Cache miss berlebihan Banyak request yang seharusnya dari cache malah ke database Sedang
    Redis memory usage tinggi Used memory mendekati maxmemory Sedang
    Disk space hampir habis df -h menunjukkan usage > 90% Tinggi

    Solusi: Restart Redis dan Service Terkait

    Oke, langsung ke solusi. Berdasarkan pengalaman saya di lapangan, langkah paling efektif untuk mengatasi redis_local.bgsave_health CRITICAL adalah melakukan restart pada tiga service sekaligus. Bukan cuma Redis-nya saja, tapi juga service autom8redis yang mendukungnya.

    ⚠️ PERINGATAN: Sebelum menjalankan perintah restart, pastikan kamu sudah:

    1. Cek apakah ada proses Redis yang sedang melakukan write operation penting
    2. Pastikan disk space mencukupi (df -h)
    3. Backup konfigurasi Redis (/etc/redis.conf) jika ada perubahan custom
    4. Beritahu tim terkait bahwa akan ada maintenance singkat untuk Redis

    Langkah 1: Cek Status Redis Saat Ini

    Sebelum restart, cek dulu status Redis yang berjalan:

    systemctl status redis

    Perhatikan outputnya. Kalau statusnya active (running) tapi ada error di bagian log, itu tandanya Redis berjalan tapi ada masalah internal. Kalau statusnya inactive (dead) atau failed, itu masalah yang lebih serius.

    Langkah 2: Cek Socket Redis

    Di server CyberPanel atau DirectAdmin yang menggunakan custom Redis socket, pastikan socket Redis-nya aktif:

    ls -la /home/userpanel/tmp/redis.sock

    Socket file ini penting karena banyak aplikasi yang terhubung ke Redis melalui Unix socket (bukan TCP port). Kalau socket-nya hilang atau corrupt, restart Redis saja tidak cukup — kamu juga perlu memastikan aplikasi bisa reconnect ke socket yang baru.

    redis-cli -s /home/userpanel/tmp/redis.sock ping

    Expected output: PONG. Kalau kamu dapat response PONG, berarti Redis masih merespons. Kalau error atau timeout, Redis memang perlu di-restart.

    Langkah 3: Restart Tiga Service Sekaligus

    Ini adalah langkah utama. Jalankan ketiga perintah restart ini secara berurutan:

    systemctl restart redis
    systemctl restart autom8redis_broker
    systemctl restart autom8redis_taskq

    Kenapa harus ketiganya? Karena service autom8redis_broker dan autom8redis_taskq saling terhubung dengan Redis utama. Kalau kamu cuma restart Redis tapi tidak restart kedua service ini, bisa terjadi kondisi di mana Redis sudah fresh tapi autom8redis masih pegang koneksi lama yang sudah stale. Akibatnya? Bgsave tetap gagal karena ada konflik koneksi.

    Setelah menjalankan perintah di atas, tunggu sekitar 10-30 detik supaya semua service bisa initialize dengan sempurna.

    Langkah 4: Verifikasi Status

    Setelah restart, verifikasi bahwa semuanya sudah berjalan normal:

    systemctl status redis
    systemctl status autom8redis_broker
    systemctl status autom8redis_taskq

    Ketiga service harus menunjukkan status active (running). Kalau ada yang masih failed, cek log-nya:

    journalctl -u redis --since "5 minutes ago" --no-pager
    journalctl -u autom8redis_broker --since "5 minutes ago" --no-pager
    journalctl -u autom8redis_taskq --since "5 minutes ago" --no-pager

    Langkah 5: Test Bgsave Manual

    Untuk memastikan bgsave berfungsi, jalankan perintah save manual:

    redis-cli -s /home/userpanel/tmp/redis.sock bgsave

    Expected output: Background saving started. Tunggu beberapa detik, lalu cek apakah file dump.rdb ter-update:

    ls -la /var/lib/redis/dump.rdb

    Timestamp file dump.rdb harus menunjukkan waktu yang baru (beberapa detik yang lalu). Kalau timestamp-nya masih lama, ada masalah lain yang perlu diinvestigasi lebih lanjut.

    Langkah 6: Tunggu Netdata Clear Alarm

    Setelah bgsave berhasil, biasanya Netdata akan otomatis clear alarm dalam beberapa menit. Kamu bisa cek di dashboard Netdata untuk memastikan. Kalau alarm masih muncul setelah 5-10 menit, kamu bisa clear manual dari command line:

    curl -s "http://localhost:19999/api/v1/alarm?all" | grep bgsave

    Atau restart Netdata agent supaya alarm-nya refresh:

    systemctl restart netdata

    Screenshot dashboard Netdata yang menunjukkan alarm redis_local.bgsave_health status CRITICAL setelah restart

    Di atas adalah ilustrasi dashboard Netdata ketika alarm bgsave masih aktif. Setelah kamu melakukan restart dan verifikasi, status ini akan berubah menjadi OK.

    Troubleshooting: Kalau Masih Gagal Setelah Restart

    Kadang restart saja tidak cukup. Berikut adalah beberapa masalah lanjutan yang mungkin kamu hadapi dan cara mengatasinya:

    Masalah Penyebab Solusi
    Redis restart tapi bgsave tetap gagal Disk space penuh Jalankan df -h, bersihkan log atau file tidak perlu
    autom8redis_broker tidak bisa start Socket Redis belum ready Tunggu 30 detik, lalu start ulang
    Redis OOM (Out of Memory) Used memory melebihi maxmemory Tingkatkan maxmemory di /etc/redis.conf atau bersihkan data
    Permission denied pada socket Ownership socket berubah Jalankan chown redis:redis /home/userpanel/tmp/redis.sock
    Dump.rdb corrupt File RDB rusak karena crash sebelumnya Hapus dump.rdb, restart Redis (data akan rebuild dari AOF jika ada)
    Fork cannot allocate memory Redis butuh fork tapi OS tidak mengizinkan Set vm.overcommit_memory = 1 di sysctl

    Kasus: vm.overcommit_memory

    Ini adalah masalah yang cukup sering terjadi di server dengan RAM terbatas. Ketika Redis mencoba melakukan bgsave, ia perlu melakukan operasi fork() untuk menduplikasi process. Kalau Linux menolak alokasi memori tambahan, bgsave akan gagal.

    Cek apakah ini masalahnya:

    cat /proc/sys/vm/overcommit_memory

    Kalau output-nya 0, itu berarti Linux menggunakan heuristik default yang bisa menolak fork. Untuk Redis, disarankan untuk set ke 1:

    echo 1 > /proc/sys/vm/overcommit_memory

    Untuk membuat permanen:

    echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
    sysctl -p

    Pro Tips dari NOC Engineer

    💡 Tip 1: Selalu cek disk space dulu sebelum restart Redis. Banyak kasus di mana bgsave gagal bukan karena Redis bermasalah, tapi karena disk sudah penuh. Gunakan df -h dan du -sh /var/lib/redis/* untuk cek.
    💡 Tip 2: Di server CyberPanel, jangan pernah restart cuma Redis saja tanpa restart autom8redis_broker dan autom8redis_taskq. Ketiga service ini seperti tiga saudara yang harus kompak. Kalau satu di-restart tapi yang lain tidak, bisa terjadi kondisi race condition.
    💡 Tip 3: Setelah restart, tunggu minimal 5 menit sebelum konfirmasi ke client bahwa masalah sudah resolved. Kadang alarm Netdata butuh waktu untuk refresh. Jangan langsung bilang “sudah fix” sebelum kamu benar-benar cek di dashboard.
    💡 Tip 4: Setup alerting ke Telegram atau email supaya kamu dapat notifikasi lebih cepat. Netdata support integrasi dengan banyak platform. Kalau kamu belum setup, baca panduan cara setup monitoring Netdata di server.

    Perintah Cheat Sheet

    Perintah Fungsi
    systemctl status redis Cek status layanan Redis
    systemctl restart redis Restart layanan Redis
    systemctl restart autom8redis_broker Restart layanan autom8redis broker
    systemctl restart autom8redis_taskq Restart layanan autom8redis task queue
    redis-cli -s /home/userpanel/tmp/redis.sock ping Test koneksi Redis via socket
    redis-cli -s /home/userpanel/tmp/redis.sock bgsave Jalankan bgsave manual
    redis-cli -s /home/userpanel/tmp/redis.sock info memory Cek penggunaan memori Redis
    df -h Cek kapasitas disk
    journalctl -u redis --since "5 minutes ago" Cek log Redis terbaru
    ls -la /home/userpanel/tmp/redis.sock Verifikasi socket Redis ada

    Mencegah Masalah Ini Terulang

    Setelah kamu fix masalah ini, ada beberapa hal yang bisa kamu lakukan untuk mencegahnya terulang:

    1. Monitor disk space secara rutin — Setup alerting di Netdata untuk disk usage. Kalau disk sudah mencapai 80%, sudah waktunya untuk cleanup.
    2. Set maxmemory di Redis — Agar Redis tidak menggunakan seluruh RAM server. Edit /etc/redis.conf dan set maxmemory 2gb (sesuaikan dengan kebutuhan).
    3. Gunakan AOF (Append Only File) — Selain RDB snapshot, aktifkan AOF sebagai backup tambahan. Edit /etc/redis.conf dan set appendonly yes.
    4. Setup cron untuk restart berkala — Beberapa engineer membuat cron job untuk restart Redis setiap minggu di jam sepi. Ini bisa mencegah memory leak yang terakumulasi.
    5. Update Redis ke versi terbaru — Beberapa bug di versi lama sudah diperbaiki di versi baru.

    Jika kamu ingin mempelajari lebih lanjut tentang monitoring server, cek juga artikel tentang cara lengkap monitoring server dengan Netdata. Dan untuk masalah serupa terkait service lain, panduan restart service di Linux dengan systemctl bisa jadi referensi tambahan.

    Nah, itu dia cara mengatasi redis_local.bgsave_health CRITICAL di Netdata. Intinya: jangan panik, cek dulu kondisi disk dan memori, lalu restart ketiga service (redis, autom8redis_broker, autom8redis_taskq) secara berurutan. Dalam kebanyakan kasus, ini sudah cukup untuk clear alarm dan mengembalikan Redis ke kondisi normal.

    Kalau kamu mengalami masalah yang lebih kompleks — misalnya Redis terus-terusan crash atau data hilang — mungkin waktu untuk setup monitoring yang lebih baik atau konsultasi dengan tim managed server professional. Jangan biarkan masalah kecil menjadi besar hanya karena ditunda-tunda.

    Q: Kenapa harus restart autom8redis_broker dan autom8redis_taskq juga, bukan cuma Redis saja?

    Karena kedua service ini menjaga koneksi aktif ke Redis. Kalau kamu cuma restart Redis tanpa restart autom8redis, service-service ini masih memegang koneksi lama yang sudah stale. Akibatnya bisa terjadi konflik yang membuat bgsave tetap gagal. Dengan restart ketiganya sekaligus, kamu memastikan semua koneksi dibangun ulang dari awal dalam kondisi bersih.

    Q: Apakah restart Redis akan menyebabkan data hilang?

    Tidak. Restart Redis tidak menghapus data yang tersimpan di memori. Data yang sudah di-save ke file dump.rdb tetap aman. Setelah restart, Redis akan memuat ulang data dari dump.rdb. Namun, data yang ada di memori tapi belum di-save ke disk (belum waktunya bgsave) akan hilang. Itulah kenapa bgsave yang berfungsi normal itu sangat penting — sebagai jaminan bahwa data ter-save ke disk secara berkala.

    Q: Berapa lama waktu yang dibutuhkan untuk Redis restart dan bgsave berfungsi normal kembali?

    Untuk restart biasanya hanya butuh 5-15 detik, tergantung seberapa banyak data yang harus dimuat dari dump.rdb. Untuk bgsave berikutnya, tergantung konfigurasi save interval kamu. Kalau konfigurasi default save 900 1, maka bgsave akan jalan otomatis setelah ada perubahan dan 900 detik berlalu. Namun, kamu bisa trigger bgsave manual untuk testing. Setelah bgsave manual berhasil, biasanya Netdata akan clear alarm dalam 1-5 menit.

    Q: Apakah ada cara agar Netdata tidak alert lagi untuk masalah ini di masa depan?

    Kamu bisa menyesuaikan threshold alarm di Netdata edit /etc/netdata/health.d/redis.conf. Namun, saya tidak menyarankan untuk menonaktifkan alarm ini karena bgsave yang gagal adalah tanda serius yang perlu ditangani. Yang lebih baik adalah mencegah masalah ini terjadi dengan monitoring disk space, setting maxmemory, dan menggunakan AFS sebagai backup mekanisme.

    Author: Syslog Solutions — NOC & Server Management Team. We handle 500+ servers daily, from shared hosting to enterprise dedicated infrastructure.