← Проекты
КЕЙС / 05

Мониторинг NASчерез SNMP Exporter.

Legacy LenovoEMC и TrueNAS CORE сведены в одну эксплуатационную модель: SNMPv3, vendor-specific MIB, Prometheus recording rules, alerting и компактный Grafana dashboard для storage.

2NAS-платформы разных поколений
SNMPv3единый транспорт метрик
1 экраноперационная картина storage
01 / КОНТЕКСТ

Разные поколения storage — одна задача эксплуатации.

В одной инфраструктуре одновременно используются два NAS с принципиально разной внутренней моделью: аппаратный LenovoEMC с закрытой ОС и TrueNAS CORE с ZFS. Возможности телеметрии, названия OID и структура данных у них различаются.

Целью было не просто получить несколько SNMP-значений, а привести обе платформы к единой эксплуатационной картине: доступность, заполнение, состояние RAID/ZFS, температуры, IOPS, throughput, сетевые интерфейсы и alerts.

02 / ОТВЕТСТВЕННОСТЬ

От MIB и OID до понятного NOC-экрана.

01SNMPv3 и профили доступа
02Vendor-specific MIB и IF-MIB
03Модули snmp_exporter
04Recording rules Prometheus
05ZFS и RAID health
06Capacity, IOPS и throughput
07Температуры и network telemetry
08Alerting и NOC-dashboard
03 / АРХИТЕКТУРА

Vendor-specific сбор, единая модель выше.

Устройства опрашиваются разными SNMP-модулями, но после snmp_exporter данные попадают в один Prometheus и дальше обрабатываются одинаковыми operational-паттернами.

LEGACY NASLenovoEMCHOST-RESOURCES-MIB · vendor MIB
ZFS NASTrueNAS COREFREENAS-MIB · IF-MIB
TRANSPORTSNMPv3Separate auth profiles
COLLECTsnmp_exporterDedicated modules per platform
NORMALIZEPrometheusRecording rules · alert rules
OPERATEGrafana · AlertmanagerNOC overview · actionable alerts
TrueNAS использует SNMPv3 authPriv с SHA/AES. Для legacy NAS сохранён отдельный профиль, соответствующий возможностям устройства. Секреты не находятся в публичных конфигурациях и примерах.
04 / СБОР МЕТРИК

Собирать только то, что нужно эксплуатации.

Для 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.

TRUENAS TARGET
- targets:
    - 10.20.10.21
  labels:
    device: nas-truenas-01
    vendor: ixsystems
    role: storage
    snmp_auth: truenas_v3
    snmp_module: system,if_mib,truenas_core
5-MINUTE RATES
rate(truenas_zpool_read_bytes_total[5m])
rate(truenas_zpool_write_bytes_total[5m])

rate(ifHCInOctets{ifName="storage0"}[5m])
rate(ifHCOutOctets{ifName="storage0"}[5m])
ZFS / RAID health

ONLINE/DEGRADED/FAULTED для ZFS и vendor-specific RAID/disk state для legacy NAS.

Capacity

Used, available, total и percentage с нормализацией allocation units в bytes.

Performance

Read/write throughput, IOPS, ARC, temperatures и сетевой RX/TX по активным интерфейсам.

05 / НОРМАЛИЗАЦИЯ

Raw OID не должен определять Grafana.

FREENAS-MIB передаёт размер pool через количество allocation units. Пересчёт в bytes и percentage вынесен в recording rules. Grafana и alerts работают уже с нормализованными метриками, а не повторяют vendor-specific формулы в каждой панели.

Такой слой упрощает дальнейшую замену источника: меняется сбор или recording rule, а эксплуатационные dashboards и правила остаются стабильнее.

RECORDING RULE
- record: storage:truenas:zpool_used_percent
  expr: |
    100 * truenas_zpool_used_units
    / truenas_zpool_size_units
HEALTH ALERT
- alert: TrueNASZpoolNotOnline
  expr: truenas_zpool_health != 0
  for: 2m
  labels:
    severity: critical
    category: storage
06 / ALERTING
01

Availability

Потеря SNMP scrape контролируется независимо от визуализации.

02

Storage health

Любое состояние ZFS pool кроме ONLINE и ненормальный RAID/disk state требуют реакции.

03

Capacity

Уровни 80%, 90% и 95% разделяют warning, critical и almost-full сценарии.

04

Temperature

HDD и NVMe имеют разные эксплуатационные пороги, чтобы не создавать ложные предупреждения.

07 / DASHBOARD

Overview должен отвечать: «нужно ли действовать?»

Первая версия 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.

08 / РЕЗУЛЬТАТ

Две разные NAS-платформы — одна эксплуатационная картина.

Legacy appliance и TrueNAS сведены в единый monitoring pipeline без установки агентов на storage. Vendor-specific SNMP остаётся на уровне сбора, а выше используются нормализованные метрики, единые правила alerting и компактный Grafana overview.

← Назад к проектам