Availability
Потеря SNMP scrape контролируется независимо от визуализации.
Legacy LenovoEMC и TrueNAS CORE сведены в одну эксплуатационную модель: SNMPv3, vendor-specific MIB, Prometheus recording rules, alerting и компактный Grafana dashboard для storage.
В одной инфраструктуре одновременно используются два NAS с принципиально разной внутренней моделью: аппаратный LenovoEMC с закрытой ОС и TrueNAS CORE с ZFS. Возможности телеметрии, названия OID и структура данных у них различаются.
Целью было не просто получить несколько SNMP-значений, а привести обе платформы к единой эксплуатационной картине: доступность, заполнение, состояние RAID/ZFS, температуры, IOPS, throughput, сетевые интерфейсы и alerts.
Устройства опрашиваются разными SNMP-модулями, но после snmp_exporter данные попадают в один Prometheus и дальше обрабатываются одинаковыми operational-паттернами.
Для TrueNAS создан отдельный модуль на основе FREENAS-MIB: размеры и состояние ZFS pools, counters чтения и записи, ARC и температуры накопителей. Позже к target добавлен IF-MIB для состояния интерфейсов, traffic counters, errors и discards.
Для LenovoEMC capacity берётся из HOST-RESOURCES-MIB, а RAID, физические диски, температуры и вентиляторы — из vendor-specific дерева. Полный SNMP walk в Prometheus не экспортируется: это уменьшает шум и cardinality.
- targets:
- 10.20.10.21
labels:
device: nas-truenas-01
vendor: ixsystems
role: storage
snmp_auth: truenas_v3
snmp_module: system,if_mib,truenas_corerate(truenas_zpool_read_bytes_total[5m])
rate(truenas_zpool_write_bytes_total[5m])
rate(ifHCInOctets{ifName="storage0"}[5m])
rate(ifHCOutOctets{ifName="storage0"}[5m])ONLINE/DEGRADED/FAULTED для ZFS и vendor-specific RAID/disk state для legacy NAS.
Used, available, total и percentage с нормализацией allocation units в bytes.
Read/write throughput, IOPS, ARC, temperatures и сетевой RX/TX по активным интерфейсам.
FREENAS-MIB передаёт размер pool через количество allocation units. Пересчёт в bytes и percentage вынесен в recording rules. Grafana и alerts работают уже с нормализованными метриками, а не повторяют vendor-specific формулы в каждой панели.
Такой слой упрощает дальнейшую замену источника: меняется сбор или recording rule, а эксплуатационные dashboards и правила остаются стабильнее.
- record: storage:truenas:zpool_used_percent
expr: |
100 * truenas_zpool_used_units
/ truenas_zpool_size_units- alert: TrueNASZpoolNotOnline
expr: truenas_zpool_health != 0
for: 2m
labels:
severity: critical
category: storageПотеря SNMP scrape контролируется независимо от визуализации.
Любое состояние ZFS pool кроме ONLINE и ненормальный RAID/disk state требуют реакции.
Уровни 80%, 90% и 95% разделяют warning, critical и almost-full сценарии.
HDD и NVMe имеют разные эксплуатационные пороги, чтобы не создавать ложные предупреждения.
Первая версия dashboard содержала много исторических графиков и была технически подробной, но плохо читалась как NOC-экран. Финальная версия была перестроена вокруг текущего состояния.
На одном экране размещены availability, alerts, температуры, ARC hit ratio, ZFS/RAID health, capacity, read/write throughput, IOPS, состояние сетевых интерфейсов, RX/TX и errors/discards. Детальная история при необходимости может жить в отдельном drill-down dashboard.
Availability · alerts · temperatures · ARC · interfaces.
Pool capacity · ZFS health · RAID · physical disks.
Read/write · IOPS · network RX/TX · errors/discards.
Legacy appliance и TrueNAS сведены в единый monitoring pipeline без установки агентов на storage. Vendor-specific SNMP остаётся на уровне сбора, а выше используются нормализованные метрики, единые правила alerting и компактный Grafana overview.
← Назад к проектам