Belajar Linux Filesystem - Monitoring & Integrity
Episode 17 of 23

Belajar Linux Filesystem - Monitoring & Integrity

Filesystem yang sehat bukanlah kebetulan — dia dipantau. Episode ini membahas tool monitoring df, du, iostat, btrfs device stats, zpool status/iostat, SMART dengan smartctl, integrasi Prometheus dan node_exporter, serta jadwal scrub dan alerting untuk mendeteksi korupsi sebelum menjadi bencana.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Sebagian besar masalah storage terdeteksi lebih awal — tanda-tandanya ada di df, smartctl, dan zpool status jauh sebelum data benar-benar hilang. Episode 17 ini membahas bagaimana memantau filesystem secara menyeluruh: dari tool satu-liner hingga integrasi monitoring penuh dengan Prometheus.

Monitoring bukan sekadar melihat angka, melainkan membangun sistem peringatan: kapan harus bertindak, kapan menunggu, dan kapan mengganti disk. Kita juga membahas scrub dan resilver — dua proses yang menjaga integritas data aktif di filesystem COW.

Di akhir episode, kalian akan punya daftar lengkap metrik yang wajib dipantau beserta ambang batasnya.

Tool Monitoring Dasar

df dan du

df melaporkan kapasitas dan pemakaian filesystem; du menghitung pemakaian direktori:

Kapasitas dan pemakaian
df -hT
du -sh /var/lib/docker

Perhatikan perbedaan keduanya: df membaca metadata filesystem, sedangkan du menghitung dari isi direktori. Selisih besar antara keduanya menandakan file yang dihapus tapi masih terbuka proses (space not released), atau COW filesystem yang menyimpan blok lama.

Untuk mencari konsumen ruang terbesar:

Direktori terbesar
du -xh --max-depth=1 /var 2>/dev/null | sort -rh | head -10

iostat dan vmstat

iostat menampilkan performa per perangkat; vmstat membaca aktivitas sistem:

Pantau perangkat dan memori
iostat -x 5
vmstat 5

Kolom yang paling berarti: %util, await, r/s, w/s pada iostat, dan wa pada vmstat. %util mendekati 100 persen dengan await tinggi adalah tanda antrian penuh.

Monitoring btrfs dan ZFS

btrfs device stats

btrfs mencatat jumlah kesalahan per perangkat:

Statistik error perangkat btrfs
sudo btrfs device stats /mnt/lab
sudo btrfs filesystem usage /mnt/lab

Output menampilkan penghitung seperti write_io_errs, read_io_errs, flush_io_errs, corruption_errs, dan generation_errs. Angka bukan nol yang bertambah adalah tanda kerusakan — periksa dengan btrfs scrub.

zpool status dan zpool iostat

zpool status adalah dashboard kesehatan pool:

Status pool dan statistik
zpool status
zpool iostat -v 5

Perhatikan kolom CKSUM dan REPAIR — keduanya harus nol. Status pool harus ONLINE; status DEGRADED berarti ada vdev yang gagal atau sedang resilver.

SMART Monitoring

Membaca SMART dengan smartctl

SMART (Self-Monitoring, Analysis and Reporting Technology) adalah telemetri bawaan disk. smartctl dari paket smartmontools membacanya:

Cek SMART semua disk
sudo smartctl -a /dev/sda
sudo smartctl -H /dev/sda

smartctl -H menampilkan overall health; -a menampilkan atribut lengkap. Atribut yang paling penting untuk dipantau:

  • Reallocated_Sector_Ct: sektor yang dipindahkan karena bad sector — harus nol atau konstan.
  • Current_Pending_Sector: sektor yang menunggu dipetakan ulang — bertambah berarti disk sekarat.
  • CRC_Error_Count: error kabel/kontak — periksa kabel SATA jika bertambah.

Lakukan tes offline untuk deteksi dini:

Tes SMART offline
sudo smartctl -t offline /dev/sda
sudo smartctl -l selftest /dev/sda

Monitoring Background SMART

Beberapa atribut hanya diperbarui saat disk sedang dipakai. Atur pemindaian terjadwal agar nilai terbaru selalu tersedia:

Aktifkan polling SMART berkala
sudo smartctl -o on /dev/sda
sudo smartctl -S on /dev/sda

-o on mengaktifkan self-test offline otomatis, -S on mengaktifkan attribute autosave.

Scrub dan Resilver

Jadwal Scrub Rutin

Scrub membaca seluruh data dan memverifikasi checksum. Jadwalkan rutin di luar jam sibuk, karena scrub yang berjalan bersama beban produksi menurunkan performa:

Cron scrub btrfs dan ZFS
30 2 * * 0 sudo btrfs scrub start /mnt/lab
30 3 * * 0 sudo zpool scrub labpool

Resilver: Rebuild dari Redundansi

Resilver adalah proses memulihkan data saat disk diganti dalam vdev mirror/RAIDZ. Jalankan setelah mengganti disk, dan jangan menambah beban berat selama proses berjalan — resilver membaca seluruh data dari disk yang tersisa:

Ganti disk dan pantau resilver
sudo zpool replace labpool /dev/sdb /dev/sdc
zpool status

Status resilvering muncul saat proses berjalan.

Integrasi Prometheus dan Alerting

node_exporter dan Metrik Filesystem

node_exporter mengekspos metrik filesystem dan disk ke Prometheus:

Jalankan node_exporter
node_exporter --collector.filesystem --collector.diskstats --collector.smartmonitor

Metrik penting yang muncul di endpoint /metrics:

  • node_filesystem_avail_bytes dan node_filesystem_size_bytes: kapasitas.
  • node_disk_read_bytes_total dan write_bytes_total: throughput.
  • node_disk_io_time_seconds_total: waktu aktif perangkat.
  • node_smartmon_reallocated_sector_s: sektor reallocated dari smartctl.

Aturan Alerting

Contoh aturan Prometheus untuk ambang batas:

Aturan alerting storage
groups:
  - name: storage.rules
    rules:
      - alert: DiskAlmostFull
        expr: node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.1
        for: 30m
        labels:
          severity: warning
      - alert: ZpoolDegraded
        expr: node_zfs_pool_health != 1
        labels:
          severity: critical

node_zfs_pool_health mengekspos status health pool sebagai angka. Dengan aturan di atas, kalian diberi tahu lebih awal — jauh sebelum data hilang.

Info

Pilih beberapa metrik kunci dan alerting yang tidak berisik: kapasitas, status pool, sektor reallocated, dan hasil scrub. Terlalu banyak alarm menyebabkan alarm fatigue — dan alarm yang diabaikan sama dengan tidak ada alarm sama sekali.

Penutup

Monitoring mengubah filesystem dari kotak hitam menjadi sistem yang bisa diprediksi. df, du, dan iostat memberi pandangan harian; btrfs device stats dan zpool status menjaga integritas; SMART memperingatkan kerusakan fisik; dan Prometheus mengotomatisasi semua pengawasan itu.

Inti yang harus dibawa pulang:

  • Pantau kapasitas dengan df dan pemakaian dengan du secara rutin.
  • btrfs device stats dan zpool status menampilkan kesehatan filesystem COW.
  • SMART: pantau Reallocated_Sector_Ct, Pending_Sector, dan CRC_Error_Count.
  • Jadwalkan scrub btrfs/zfs di luar jam sibuk, pantau resilver saat ganti disk.
  • node_exporter mengekspos metrik filesystem, diskstats, dan SMART ke Prometheus.
  • Alerting harus selektif agar tidak memicu alarm fatigue.

Di episode 18 selanjutnya kita membahas filesystem selection guide — panduan memilih ext4, XFS, btrfs, ZFS, dan tmpfs berdasarkan kebutuhan, lengkap dengan tradeoff fitur, overhead RAM, dan dukungan vendor. Kalian akan mendapat kerangka keputusan yang bisa dipakai di proyek nyata.

Belajar Linux Filesystem - Monitoring & Integrity | Belajar Linux Filesystem