Membekali mata digital fasilitas: fungsi DCIM dan perbedaannya dengan monitoring IT, membaca sensor suhu kelembapan dan daya via IPMI dan SNMP, merancang alerting bertingkat yang tidak membuat tim tuli, serta praktik setup Prometheus dengan snmp_exporter dan alert rules untuk lingkungan data center di NetBox lab kalian

Setelah di episode 9 kita mengunci pintu-pintu fasilitas, sekarang kita memasang matanya: monitoring & DCIM. Data center yang tidak termonitor bukan fasilitas — melainkan museum kejutan. Suhu naik dua jam tanpa ada yang sadar, UPS pindah ke baterai karena satu fase drop, PDU rack mendekati breaker limit — semuanya bisu tanpa sistem pengamatan.
Dua kata kuncinya sering dicampur, padahal beda: DCIM (Data Center Infrastructure Management) mengelola aset & kapasitas fisik; monitoring (Zabbix/Prometheus) mengawasi kondisi & metrik real-time. DC engineer profesional menjalankan keduanya sebagai satu kesatuan.
DCIM adalah lapisan software yang menjadi sumber kebenaran operasional fisik:
| Fungsi DCIM | Pertanyaan yang Dijawab |
|---|---|
| Asset management | Ada apa di U21 rack R03? siapa pemiliknya? garansinya sampai kapan? |
| Capacity management | Berapa kW dan U tersisa per rack? (fondasi episode 12) |
| Power chain visualization | Rack ini disuplai UPS jalur mana? dampak maintenance A? |
| Environment monitoring | Suhu inlet tiap baris; kelembapan; titik panas |
| Connectivity | Port switch terhubung ke server apa? kabel mana? |
Di episode 0 kita sudah menyiapkan NetBox — open-source DCIM/IPAM paling populer. Ia tidak polling sensor real-time; ia mencatat struktur. Kondisi real-time datang dari monitoring, dan keduanya saling merujuk lewat nama device.
Sumber data lingkungan tersebar di banyak protokol:
| Sumber | Protokol | Data Tipikal |
|---|---|---|
| BMC server | IPMI / Redfish | Inlet temp, CPU temp, fan RPM, power draw |
| Rack PDU | SNMP | Ampere/watt per outlet & bank |
| CRAH/CRAC | Modbus/BACnet/SNMP | Supply/return temp, status filter |
| Sensor ruangan | SNMP/Modbus | Temp + RH per posisi aisle |
| UPS | SNMP/NUT | Load %, battery time, input/output |
Kita sudah praktik IPMI di episode 3-4. Sekarang contoh membaca UPS via NUT (Network UPS Tools):
sudo apt install nut-client
upsc ups@localhostBaris output yang paling sering kalian butuhkan:
ups.load: 34
battery.runtime.low: 480
input.voltage: 228.0
output.voltage: 230.0
battery.charge: 100ups.load di atas 70-80% berarti kapasitas UPS hampir habis — alarm kapasitas ini lebih penting daripada alarm "mati", karena ia memberi waktu berencana sebelum bencana.
Alerting yang buruk lebih berbahaya daripada tanpa alerting: tim jadi tuli (alert fatigue) dan insiden nyata tenggelam. Prinsip desain:
info (dicatat saja) → warning (tindakan hari kerja) → critical (panggil orang sekarang).Contoh threshold awal yang wajar untuk data hall:
Inlet temp : warning > 27°C ; critical > 32°C
RH : warning < 30% / > 70%
UPS load : warning > 70% ; critical > 85%
PDU bank load : warning > 80% breaker rating
Battery runtime : warning < 10 menit pada beban saat ituTip
Mulai konservatif, evaluasi bulanan: alert yang tidak pernah ditindaklanjuti dalam 6 bulan biasanya salah threshold atau salah prioritas. Alert list adalah dokumen hidup.
Sekarang rakit pipeline monitoring open-source standar industri. Komponen: Prometheus (collect), snmp_exporter (jembatan SNMP), Grafana (visual).
docker run -d --name snmp-exporter -p 9116:9116 \
prom/snmp-exporter:v0.26.0Tambahkan target PDU/sensor ke konfigurasi scrape Prometheus (prometheus.yml):
global:
scrape_interval: 60s
scrape_configs:
- job_name: "dc-snmp"
metrics_path: /snmp
params:
module: [if_mib]
static_configs:
- targets:
- 10.10.10.9 # rack pdu a
- 10.10.10.10 # rack pdu b
labels:
site: dc-jkt01
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: snmp-exporter:9116Untuk metrik server, node_exporter + ipmi_exporter memberikan suhu/power per host. Lalu definisikan aturan alert pertama kalian (alerts.yml):
groups:
- name: dc-environment
rules:
- alert: RackPDULoadHigh
expr: snmp_pdu_bank_load_percent > 80
for: 10m
labels:
severity: warning
annotations:
summary: "Load PDU tinggi di {{ $labels.instance }}"
runbook: https://docs.lab/runbooks/pdu-load.md
- alert: UpsOnBattery
expr: nut_ups_on_batt == 1
for: 1m
labels:
severity: critical
annotations:
summary: "UPS {{ $labels.instance }} ON BATTERY"
runbook: https://docs.lab/runbooks/ups-battery.mdPerhatikan field runbook — setiap alert langsung menunjuk prosedur. Reload konfigurasi dan uji:
curl -X POST http://localhost:9090/-/reload
curl -s http://localhost:9090/api/v1/rules | python3 -m json.tool | head -n 20Terakhir, hubungkan dunia: di NetBox tambahkan URL dashboard/device sebagai custom field, sehingga dari aset langsung bisa lompat ke grafik kondisinya — dan sebaliknya dari alert bisa lompat ke aset.
Monitoring tanpa pelaporan hanya hiburan grafik. Dua laporan minimum engineer DC:
Grafana membuat keduanya otomatis via scheduled report; yang penting angka yang sama dipakai lintas laporan agar percaya diri saat dipertanyakan manajemen.
Inti yang harus dibawa pulang:
Di episode 11 selanjutnya kita masuk ke rutinitas yang menjaga semua sistem ini tetap sehat: maintenance & operations — jadwal preventive maintenance, anatomi SOP/MOP/EOP, shift handover, dan praktik menyusun MOP lengkap dengan rollback yang layak diaudit. Sampai jumpa di episode 11!