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

Как настроить Zabbix мониторинг на TrueNAS: Полное руководство для DevOps

14 марта 2026 7 мин. чтения #devops #freenas #truenas #zabbix #zabbix agent #мониторинг #настройка #системный администратор

Представь, что твой TrueNAS сервер — это сердце инфраструктуры. Оно должно биться ровно и стабильно. Но как узнать, не начались ли проблемы с дисками, не перегружена ли память или не заполнилось ли хранилище? Ответ — мониторинг Zabbix. В этой статье мы разберем, как превратить TrueNAS в полноценного участника твоей системы мониторинга.

Подготовка окружения: что нам понадобится

Прежде чем начать, давай убедимся, что у нас есть все необходимое:

  • Рабочий сервер TrueNAS (Core или Scale)
  • Установленный и настроенный сервер Zabbix (версии 5.0 или выше)
  • Сетевой доступ между TrueNAS и Zabbix сервером
  • Права администратора на TrueNAS
Важно: TrueNAS Scale основан на Debian Linux и использует стандартный Zabbix агент. TrueNAS Core (ранее FreeNAS) работает на FreeBSD и требует специального подхода.

Установка Zabbix агента на TrueNAS Scale

TrueNAS Scale — это Linux-дистрибутив, поэтому установка стандартная. Подключись к TrueNAS через SSH или используй консоль в веб-интерфейсе.

Шаг 1: Обновление системы и установка агента

bash
# Обновляем список пакетов
apt update

# Устанавливаем Zabbix агент
apt install zabbix-agent2 -y

Шаг 2: Настройка конфигурации агента

Отредактируем основной конфигурационный файл:

bash
nano /etc/zabbix/zabbix_agent2.conf

Найди и измени следующие параметры:

config
Server=IP_ВАШЕГО_ZABBIX_СЕРВЕРА
ServerActive=IP_ВАШЕГО_ZABBIX_СЕРВЕРА
Hostname=truenas-scale-01  # Уникальное имя хоста

# Включим дополнительные плагины
Plugins.SystemRun.LogRemoteCommands=1

# Настройки для мониторинга ZFS
UserParameter=zfs.pool.health[*], /usr/bin/zpool list -H -o health $1
UserParameter=zfs.pool.capacity[*], /usr/bin/zpool list -H -o capacity $1 | tr -d '%'
UserParameter=zfs.dataset.used[*], /usr/bin/zfs list -H -o used $1
UserParameter=zfs.dataset.available[*], /usr/bin/zfs list -H -o available $1

Шаг 3: Запуск и настройка автозагрузки

bash
# Перезапускаем агент
systemctl restart zabbix-agent2

# Включаем автозагрузку
systemctl enable zabbix-agent2

# Проверяем статус
systemctl status zabbix-agent2
Внимание: Не забудь открыть порт 10050 на фаерволе TrueNAS, если он активен: ufw allow 10050/tcp

Настройка Zabbix агента на TrueNAS Core (FreeBSD)

С TrueNAS Core ситуация сложнее, так как это FreeBSD система. Вот как это сделать:

Шаг 1: Установка через pkg

bash
# Обновляем репозитории
pkg update

# Ищем доступные версии Zabbix агента
pkg search zabbix-agent

# Устанавливаем (пример для версии 5)
pkg install zabbix52-agent

Шаг 2: Конфигурация для FreeBSD

config
# Редактируем конфиг
vi /usr/local/etc/zabbix52/zabbix_agentd.conf

# Основные настройки
Server=IP_ВАШЕГО_ZABBIX_СЕРВЕРА
ServerActive=IP_ВАШЕГО_ZABBIX_СЕРВЕРА
Hostname=truenas-core-01

# Специфичные для FreeBSD параметры
EnableRemoteCommands=1
LogRemoteCommands=1

# Пользовательские параметры для ZFS
UserParameter=zfs.pool.status[*], zpool list -H -o health $1
UserParameter=zfs.pool.cap[*], zpool list -H -o capacity $1 | tr -d '%'
UserParameter=system.cpu.temperature, sysctl -n dev.cpu.0.temperature | cut -d '.' -f 1

Шаг 3: Интеграция со службами FreeBSD

bash
# Добавляем в rc.conf для автозагрузки
echo 'zabbix_agentd_enable="YES"' >> /etc/rc.conf
echo 'zabbix_agentd_flags="-c /usr/local/etc/zabbix52/zabbix_agentd.conf"' >> /etc/rc.conf

# Запускаем службу
service zabbix_agentd start

# Проверяем
service zabbix_agentd status

Настройка хоста и шаблонов в Zabbix

Теперь перейдем к серверу Zabbix и настроим мониторинг нашего TrueNAS.

Создание хоста в Zabbix

  1. Зайди в веб-интерфейс Zabbix
  2. Перейди в "Configuration" → "Hosts"
  3. Нажми "Create host"
  4. Заполни поля:
    • Host name: Имя, которое ты указал в конфиге агента
    • Visible name: Человекочитаемое имя (например, "TrueNAS Production")
    • Groups: Добавь в группу "Templates/Operating systems" или создай новую "Storage Systems"
    • IP address: IP адрес TrueNAS сервера

Применение шаблонов

Добавь следующие шаблоны к хосту:

Шаблон Что мониторит Важность
Template OS Linux (для Scale)
Template OS FreeBSD (для Core)
CPU, память, диски, сеть Высокая
Template App Zabbix Agent Доступность агента Критическая
Template Module ZFS by Zabbix agent Состояние ZFS пулов и datasets Критическая
bash
# Если шаблона ZFS нет, создадим свои триггеры:

# Триггер для здоровья пула
{zabbix-server:truenas-scale-01:zfs.pool.health[pool_name].str(DEGRADED)}=1

# Триггер для заполнения пула > 80%
{zabbix-server:truenas-scale-01:zfs.pool.capacity[pool_name].last()}>80

# Триггер для SMART ошибок
{zabbix-server:truenas-scale-01:sensor.temperature[ada0].last()}>50

Создание дашборда для TrueNAS

Давай создадим удобный дашборд, который покажет все ключевые метрики TrueNAS в одном месте:

  1. В Zabbix перейди в "Monitoring" → "Dashboard"
  2. Нажми "Create dashboard"
  3. Добавь виджеты:
    • Problem hosts: Покажет проблемы с TrueNAS
    • Graph: Загрузка CPU и памяти
    • Graph: Использование ZFS пулов
    • Plain text: Статус всех дисков (через UserParameter)
    • Clock: Время работы системы (uptime)
  4. Сохрани дашборд как "TrueNAS Monitoring"

Расширенный мониторинг: что еще можно отслеживать

Помимо базовых метрик, рекомендую настроить мониторинг этих аспектов:

Сетевые службы

  • SMB/CIFS доступность
  • NFS сервисы
  • iSCSI таргеты
  • Веб-интерфейс TrueNAS

Производительность

  • IOPS дисков
  • Пропускная способность сети
  • ARC hit ratio (кэш ZFS)
  • Время отклика SMB

Автоматизация и поддержка

Чтобы мониторинг работал стабильно, настрой эти автоматические проверки:

bash
#!/bin/bash
# Скрипт для проверки состояния ZFS и отправки в Zabbix
# Добавь в cron: */5 * * * * /root/check_zfs.sh

POOL="tank"
ZABBIX_SENDER="/usr/bin/zabbix_sender"
ZABBIX_SERVER="zabbix.example.com"
ZABBIX_HOST="truenas-scale-01"

# Проверяем здоровье пула
HEALTH=$(zpool list -H -o health $POOL)
if [ "$HEALTH" != "ONLINE" ]; then
    $ZABBIX_SENDER -z $ZABBIX_SERVER -s $ZABBIX_HOST -k zfs.pool.alert -o "Pool $POOL status: $HEALTH"
fi

# Проверяем заполнение
CAPACITY=$(zpool list -H -o capacity $POOL | tr -d '%')
echo "- $ZABBIX_HOST zfs.pool.capacity[$POOL] $CAPACITY" | $ZABBIX_SENDER -z $ZABBIX_SERVER -i -
Совет от ментора: Всегда тестируй триггеры перед внедрением в продакшн. Создай тестовый триггер с низким приоритетом и убедись, что он срабатывает корректно.

Устранение частых проблем

Вот с какими проблемами ты можешь столкнуться и как их решить:

Проблема Причина Решение
Агент не подключается Фаервол или SELinux ufw allow 10050/tcp или проверь iptables
Нет данных по ZFS Нет прав на выполнение zpool Добавь zabbix пользователя в группу root или настрой sudo
High CPU от агента Слишком частая проверка Увеличь интервалы в шаблонах (с 30s до 60s)

Заключение

Настройка мониторинга TrueNAS через Zabbix — это не просто техническая задача, это инвестиция в стабильность твоей инфраструктуры. Теперь у тебя есть:

  • Работающий Zabbix агент на TrueNAS
  • Настроенные шаблоны для мониторинга ZFS
  • Дашборд для быстрого обзора состояния
  • Триггеры для автоматического оповещения о проблемах

Помни: хороший мониторинг — это тот, о котором ты забываешь, пока все работает. Но когда что-то ломается, он первым сообщит тебе об этом. Удачи в настройке!

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