Настройка SNMP в TrueNAS CORE/SCALE для мониторинга ZFS и дисков | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Настройка SNMP в TrueNAS: Полное руководство для мониторинга

02 марта 2026 6 мин. чтения #devops #nas #prometheus #snmp #truenas #zabbix #zfs #мониторинг

Представь, что твой TrueNAS сервер работает в дата-центре или на удаленной площадке. Как ты узнаешь о проблемах с дисками, переполнении пула ZFS или аномальной нагрузке на CPU? Ответ — SNMP (Simple Network Management Protocol). В этой статье я, как Senior DevOps, покажу тебе, как превратить TrueNAS в полноценный источник метрик для мониторинга.

Что такое SNMP и зачем он нужен в TrueNAS?

SNMP — это протокол для управления и мониторинга сетевых устройств. В контексте TrueNAS он позволяет:

  • Мониторить состояние жестких дисков (температура, SMART-статус)
  • Отслеживать использование ZFS пулов (свободное место, fragmentation)
  • Контролировать системные ресурсы (CPU, RAM, сетевые интерфейсы)
  • Получать уведомления о критических событиях (trap-сообщения)
TrueNAS использует Net-SNMP (ранее UCD-SNMP) — стандартную реализацию для Linux-систем. Это дает доступ к стандартным MIB и возможность расширения кастомными OID.

Настройка SNMP в веб-интерфейсе TrueNAS

Давай разберем пошаговую настройку. Открой веб-интерфейс TrueNAS и перейди в Services → SNMP.

Основные параметры конфигурации

Обязательные настройки:

  • Location — физическое расположение сервера (например, "DC-1, Rack A5")
  • Contact — контакт администратора (email или имя)
  • Community — пароль для доступа (по умолчанию "public")
  • Listen Address — IP-адрес для прослушивания (0.0.0.0 для всех интерфейсов)
  • Port — UDP порт (стандартный 161)

Расширенные опции для продвинутого мониторинга

Для интеграции с профессиональными системами мониторинга:

config
# Включи эти опции в веб-интерфейсе:
- V3 Support: Если нужна аутентификация
- SNMPv3 Username: monitoring_user
- SNMPv3 Authentication Type: SHA (рекомендуется)
- SNMPv3 Privacy Protocol: AES
- Auxiliary Parameters: Дополнительные параметры для snmpd.conf
Никогда не используй community "public" в production! Создай уникальную строку и ограничь доступ по IP в настройках брандмауэра.

Ручная настройка через конфигурационный файл

Иногда нужно добавить кастомные OID или тонко настроить поведение. Для этого редактируем /etc/local/snmpd.conf:

config
# Пример расширенной конфигурации SNMP в TrueNAS
# Мониторинг конкретного ZFS пула
extend .1.3.6.1.4.1.2021.8.1.100 pool1 /bin/bash /usr/local/bin/zfs_pool_stats.sh pool1

# Кастомный OID для мониторинга репликации
extend truenas-replication-status /usr/local/bin/check_replication.sh

# Ограничение доступа по IP
rocommunity secret 192.168.1.0/24
rocommunity monitoring 10.0.0.5

# SNMPv3 пользователь
createUser monitoring_user SHA "strong_auth_pass" AES "strong_priv_pass"
rouser monitoring_user

Полезные OID для мониторинга TrueNAS

Вот ключевые OID, которые стоит отслеживать:

Компонент OID Описание
Системная информация .1.3.6.1.2.1.1.1.0 SysDescr (версия ОС и системы)
Загрузка CPU .1.3.6.1.4.1.2021.10.1.3.1 1-минутный load average
Использование RAM .1.3.6.1.4.1.2021.4.6.0 Total RAM used
Дисковое пространство .1.3.6.1.4.1.2021.9.1.7.1 Размер раздела в KB
Сетевой интерфейс .1.3.6.1.2.1.2.2.1.10.1 Входящий трафик (октеты)

Скрипт для проверки ZFS через SNMP

bash
#!/bin/bash
# /usr/local/bin/zfs_pool_stats.sh
POOL_NAME=$1

# Получаем статистику ZFS
zpool list -H -o name,size,alloc,free,health $POOL_NAME | awk -F'\t' '
{
  print "pool_size:" $2
  print "pool_allocated:" $3
  print "pool_free:" $4
  print "pool_health:" ($5 == "ONLINE" ? 1 : 0)
}'

Интеграция с системами мониторинга

Zabbix: Шаблон для TrueNAS

Создай шаблон с этими ключами items:

zabbix
# Ключи для Zabbix LLD (Low-Level Discovery)
snmp.discovery[{"oid": ".1.3.6.1.2.1.25.2.3.1.3"}]

# Мониторинг дисков
vfs.dev.read.ops[sda]
vfs.dev.write.ops[sda]
vfs.dev.util[sda]

# ZFS метрики через UserParameter
UserParameter=truenas.zpool.health[*], sudo zpool list -H -o health $1
UserParameter=truenas.zpool.capacity[*], sudo zpool list -H -o capacity $1 | sed 's/%//'

Prometheus: Используем snmp_exporter

yaml
# snmp.yml конфиг для Prometheus
modules:
  truenas:
    walk:
      - 1.3.6.1.2.1.25.2.3.1  # Хранилище
      - 1.3.6.1.2.1.1        # Системная информация
      - 1.3.6.1.4.1.2021.4   # Память
    version: 2
    auth:
      community: your_secure_community
    timeout: 10s
    retries: 3

Диагностика проблем с SNMP

Если SNMP не работает, проверь следующее:

  1. Сервис запущен? service snmpd status
  2. Порт открыт? netstat -an | grep :161
  3. Брандмауэр? Проверь правила в Services → Network → Firewall
  4. Логи SNMP: tail -f /var/log/snmpd.log
  5. Тестовый запрос: snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.1.1

Команда для тестирования с удаленного хоста

bash
# Базовая проверка доступности
snmpget -v 2c -c your_community truenas_ip .1.3.6.1.2.1.1.5.0

# Получение системной информации
snmpwalk -v 2c -c your_community truenas_ip .1.3.6.1.2.1.1

# Проверка конкретного диска (ada0)
snmpwalk -v 2c -c your_community truenas_ip .1.3.6.1.4.1.2021.13.15.1.1.2.1

Безопасность SNMP в TrueNAS

Безопасная конфигурация критически важна:

  • Используй SNMPv3 вместо v2c для шифрования
  • Ограничь доступ по IP через rocommunity community network/mask
  • Регулярно меняй community strings и пароли v3
  • Отключи SNMP если не используется
  • Используй read-only community для мониторинга
SNMPv2c передает community в открытом виде! В production всегда используй v3 с аутентификацией или VPN туннель для трафика SNMP.

Часто задаваемые вопросы (FAQ)

Почему SNMP не показывает информацию о ZFS?

По умолчанию Net-SNMP не включает ZFS статистику. Нужно добавить extend-команды в конфиг или использовать кастомные скрипты, как показано выше.

Как мониторить температуру дисков через SNMP?

Используй OID .1.3.6.1.4.1.2021.13.15.1.1.6.1 для получения температуры или напиши скрипт, который парсит вывод smartctl -A /dev/ada0.

Можно ли отправлять trap-сообщения при ошибках ZFS?

Да, настройки alert в TrueNAS можно связать с SNMP traps. В конфиг добавь trapsink monitor_host community и настрой отправку при событиях в System → Alert Services.

SNMP работает после перезагрузки?

Да, если ты включил сервис в Services → SNMP → Start Automatically. Проверь галочку "Start Automatically".

Заключение

Настройка SNMP в TrueNAS — это must-have для любого production-окружения. Ты теперь знаешь как:

  • Базовая настройка через веб-интерфейс
  • Расширенная конфигурация через snmpd.conf
  • Интеграция с Zabbix и Prometheus
  • Мониторинг ZFS, дисков и системных ресурсов
  • Обеспечение безопасности SNMP-трафика

Помни: правильный мониторинг предотвращает простои. Настроив SNMP сегодня, ты завтра получишь уведомление о проблеме до того, как пользователи её заметят.

Проверяй обновления MIB в новых версиях TrueNAS. Разработчики иногда добавляют новые OID для мониторинга функций CORE/SCALE.

Статья актуальна для TrueNAS CORE 13.x и TrueNAS SCALE 22.x. Команды и OID могут незначительно отличаться в других версиях.

Поделиться:
Сохранить гайд? В закладки браузера