Представь, что твой TrueNAS сервер — это сердце инфраструктуры. Оно должно биться ровно и стабильно. Но как узнать, не начались ли проблемы с дисками, не перегружена ли память или не заполнилось ли хранилище? Ответ — мониторинг Zabbix. В этой статье мы разберем, как превратить TrueNAS в полноценного участника твоей системы мониторинга.
Подготовка окружения: что нам понадобится
Прежде чем начать, давай убедимся, что у нас есть все необходимое:
- Рабочий сервер TrueNAS (Core или Scale)
- Установленный и настроенный сервер Zabbix (версии 5.0 или выше)
- Сетевой доступ между TrueNAS и Zabbix сервером
- Права администратора на TrueNAS
Установка Zabbix агента на TrueNAS Scale
TrueNAS Scale — это Linux-дистрибутив, поэтому установка стандартная. Подключись к TrueNAS через SSH или используй консоль в веб-интерфейсе.
Шаг 1: Обновление системы и установка агента
# Обновляем список пакетов
apt update
# Устанавливаем Zabbix агент
apt install zabbix-agent2 -y
Шаг 2: Настройка конфигурации агента
Отредактируем основной конфигурационный файл:
nano /etc/zabbix/zabbix_agent2.conf
Найди и измени следующие параметры:
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: Запуск и настройка автозагрузки
# Перезапускаем агент
systemctl restart zabbix-agent2
# Включаем автозагрузку
systemctl enable zabbix-agent2
# Проверяем статус
systemctl status zabbix-agent2
ufw allow 10050/tcp
Настройка Zabbix агента на TrueNAS Core (FreeBSD)
С TrueNAS Core ситуация сложнее, так как это FreeBSD система. Вот как это сделать:
Шаг 1: Установка через pkg
# Обновляем репозитории
pkg update
# Ищем доступные версии Zabbix агента
pkg search zabbix-agent
# Устанавливаем (пример для версии 5)
pkg install zabbix52-agent
Шаг 2: Конфигурация для FreeBSD
# Редактируем конфиг
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
# Добавляем в 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
- Зайди в веб-интерфейс Zabbix
- Перейди в "Configuration" → "Hosts"
- Нажми "Create host"
- Заполни поля:
- 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 | Критическая |
# Если шаблона 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 в одном месте:
- В Zabbix перейди в "Monitoring" → "Dashboard"
- Нажми "Create dashboard"
- Добавь виджеты:
- Problem hosts: Покажет проблемы с TrueNAS
- Graph: Загрузка CPU и памяти
- Graph: Использование ZFS пулов
- Plain text: Статус всех дисков (через UserParameter)
- Clock: Время работы системы (uptime)
- Сохрани дашборд как "TrueNAS Monitoring"
Расширенный мониторинг: что еще можно отслеживать
Помимо базовых метрик, рекомендую настроить мониторинг этих аспектов:
Сетевые службы
- SMB/CIFS доступность
- NFS сервисы
- iSCSI таргеты
- Веб-интерфейс TrueNAS
Производительность
- IOPS дисков
- Пропускная способность сети
- ARC hit ratio (кэш ZFS)
- Время отклика SMB
Автоматизация и поддержка
Чтобы мониторинг работал стабильно, настрой эти автоматические проверки:
#!/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
- Дашборд для быстрого обзора состояния
- Триггеры для автоматического оповещения о проблемах
Помни: хороший мониторинг — это тот, о котором ты забываешь, пока все работает. Но когда что-то ломается, он первым сообщит тебе об этом. Удачи в настройке!