Настройка Express-уведомлений в Zabbix для TrueNAS и серверного оборудования: полное руководство | AdminWiki

Настройка Express-уведомлений в Zabbix для TrueNAS и серверного оборудования: полное руководство

28 июля 2026 9 мин. чтения

Express-уведомления в Zabbix доставляют критические алерты за 2-5 секунд, минуя стандартную очередь обработки. Для оборудования TrueNAS, где отказ диска или перегрев процессора требуют немедленного вмешательства, эта разница определяет, успеете ли вы заменить компонент до полной деградации пула ZFS. В этом руководстве мы настроим сквозной мониторинг: от включения SNMP на TrueNAS до получения алерта в Telegram при падении вентилятора или ошибке SMART.

Материал основан на практическом опыте эксплуатации серверов с TrueNAS SCALE 24.04 и Zabbix 6.4 LTS. Вы получите готовые выражения триггеров, шаблоны действий и методику тестирования, которая исключит ложные срабатывания. Если вам нужна базовая настройка оповещений в самом TrueNAS, обратитесь к руководству по алертингу в TrueNAS - там описаны email и webhook-интеграции на уровне хранилища.

Почему стандартных уведомлений Zabbix недостаточно для критических инцидентов

Стандартный механизм уведомлений Zabbix обрабатывает алерты последовательно. Когда срабатывают десятки триггеров одновременно - массовый сбой сети, перегрузка CPU на нескольких хостах - критическое сообщение о деградации ZFS-пула может задержаться в очереди на 30-60 секунд. Для базы данных, работающей поверх этого пула, минута простоя означает потерю транзакций и, возможно, повреждение данных.

Express-уведомления решают эту проблему архитектурно. Они отправляются через отдельный процесс alerter с повышенным приоритетом, не дожидаясь обработки остальных событий. Разница в скорости доставки: 2-5 секунд против 30-90 секунд для стандартного канала. При мониторинге серверного оборудования это критично для трёх категорий событий:

  • Отказ диска - SMART-атрибуты Reallocated Sectors Count или Uncorrectable Sector Count перешли порог
  • Перегрев компонентов - температура CPU выше 85°C, скорость вентилятора ниже 500 RPM
  • Проблемы ZFS - пул перешёл в состояние DEGRADED или FAULTED

Каждая минута простоя сервера стоит денег. По данным отраслевых опросов, средняя стоимость даунтайма для малого бизнеса составляет $427 в минуту, для enterprise - $9000. Express-уведомления сокращают время реакции на инцидент с минут до секунд, напрямую влияя на финансовые показатели.

Рекомендуем также изучить сравнение каналов уведомлений - там разобраны плюсы и минусы Express, Telegram и Email для разных сценариев использования.

Подготовка Zabbix и TrueNAS к интеграции

Перед настройкой алертов убедитесь, что Zabbix-сервер версии 6.0 LTS или новее имеет сетевой доступ к TrueNAS. Порт 161/UDP должен быть открыт на файрволе со стороны хранилища. Версия TrueNAS - CORE 13.0 или SCALE 24.04 и выше. Команда для проверки доступности SNMP с Zabbix-сервера:

snmpwalk -v3 -u zabbix_monitor -a SHA -A 'auth_password' -x AES -X 'priv_password' -l authPriv 192.168.1.100

Если вы используете SNMP v2c, команда упрощается:

snmpwalk -v2c -c public 192.168.1.100

Настройка SNMP на TrueNAS

В веб-интерфейсе TrueNAS перейдите в Services и включите SNMP. Для production-среды используйте SNMP v3 с аутентификацией и шифрованием - v2c передаёт community-строку открытым текстом.

Параметры для SNMP v3 на TrueNAS SCALE:

  • Username: zabbix_monitor
  • Authentication Type: SHA
  • Authentication Password: пароль не менее 8 символов
  • Privacy Protocol: AES
  • Privacy Password: пароль не менее 8 символов
  • Allowed IPs: IP-адрес вашего Zabbix-сервера

Для TrueNAS CORE интерфейс аналогичен: Services → SNMP → включаем, задаём те же параметры. После сохранения проверьте, что служба запущена и порт 161/UDP слушается:

sockstat -4 -l | grep 161

Добавление узла TrueNAS в Zabbix

В Zabbix перейдите в Configuration → Hosts → Create host. Заполните поля:

  • Host name: truenas-san-01
  • Templates: выберите Template Net Network Generic Device SNMPv3
  • Host groups: создайте группу TrueNAS Servers
  • Interfaces: добавьте Agent с IP-адресом TrueNAS, порт 161

В разделе Macros переопределите значения для SNMP v3:

  • {$SNMP_AUTH} → sha
  • {$SNMP_PRIV} → aes
  • {$SNMP_USERNAME} → zabbix_monitor
  • {$SNMP_AUTHPASS} → ваш пароль аутентификации
  • {$SNMP_PRIVPASS} → ваш пароль шифрования

Нажмите Add. Через 60 секунд в Monitoring → Latest data появятся первые метрики: uptime, сетевые интерфейсы, базовые счётчики. Зелёный индикатор Availability в колонке SNMP подтверждает корректную интеграцию.

Мониторинг состояния дисков и ZFS: создание элементов данных и триггеров

Стандартный SNMP-шаблон не собирает SMART-атрибуты и статус ZFS. Для этого мы создадим пользовательские элементы данных, опрашивающие TrueNAS через SNMP-расширения. TrueNAS экспортирует SMART-данные через ветку OID .1.3.6.1.4.1.50536 - это enterprise MIB проекта FreeNAS/TrueNAS.

Критические SMART-атрибуты, которые нельзя игнорировать

Три SMART-параметра с высокой предсказательной силой отказа диска:

  • Reallocated Sectors Count (ID 5) - количество переназначенных секторов. Значение выше 10 указывает на деградацию поверхности.
  • Current Pending Sector Count (ID 197) - секторы, ожидающие переназначения. Любое значение выше 0 - сигнал к замене диска.
  • Uncorrectable Sector Count (ID 198) - секторы, которые не удалось прочитать. Выше 0 - данные уже потеряны.

Создайте элемент данных в Zabbix для отслеживания Reallocated Sectors. Перейдите в Configuration → Hosts → ваш узел TrueNAS → Items → Create item:

  • Name: Disk /dev/ada0 Reallocated Sectors
  • Type: SNMP agent
  • Key: disk.ada0.reallocated
  • SNMP OID: .1.3.6.1.4.1.50536.1.1.1.5.<индекс диска>
  • Type of information: Numeric (unsigned)
  • Update interval: 300s

Триггер для этого элемента:

{truenas-san-01:disk.ada0.reallocated.last()}>10

Для Current Pending Sector Count порог жёстче - любое значение выше 0:

{truenas-san-01:disk.ada0.pending.last()}>0

Если вам нужна более широкая система мониторинга дисков с уведомлениями в Telegram и email, посмотрите руководство по автоматическому мониторингу дисков - там есть готовые скрипты для smartd и интеграция с Grafana.

Мониторинг состояния ZFS-пулов и снапшотов

Статус ZFS-пула - критический индикатор здоровья всего хранилища. TrueNAS выполняет команду zpool status -x и экспортирует результат через SNMP. Создайте элемент данных:

  • Name: ZFS Pool Status
  • Key: zpool.status
  • SNMP OID: .1.3.6.1.4.1.50536.1.2.1.1.<индекс пула>
  • Type of information: Character

Триггер срабатывает при любом статусе, отличном от ONLINE:

{truenas-san-01:zpool.status.last()}<>"ONLINE"

Заполнение пула - ещё один параметр, требующий контроля. При достижении 80% производительность ZFS падает из-за фрагментации. Элемент данных:

  • Name: ZFS Pool Capacity %
  • Key: zpool.capacity.pct
  • SNMP OID: .1.3.6.1.4.1.50536.1.2.1.3.<индекс пула>
  • Type: Numeric (float)
  • Units: %

Триггер с двумя порогами - предупреждение на 80% и критический на 90%:

{truenas-san-01:zpool.capacity.pct.last()}>80

Для отслеживания возраста последнего снапшота используйте внешний скрипт на стороне TrueNAS, который отдаёт разницу в секундах между текущим временем и временем создания последнего снапшота. Подробнее о настройке оповещений о заполнении диска и работе со снапшотами читайте в гайде по оповещениям о заполнении диска в TrueNAS.

Мониторинг аппаратного обеспечения сервера через IPMI/SNMP

TrueNAS работает на физическом сервере, и отказ вентилятора или блока питания так же опасен, как и отказ диска. IPMI-контроллер (BMC) предоставляет доступ к сенсорам независимо от состояния операционной системы. Настройте SNMP на BMC-контроллере - для Supermicro это веб-интерфейс IPMI, для Dell - iDRAC, для HP - iLO.

Добавьте BMC как отдельный хост в Zabbix с шаблоном Template Server Hardware. Ключевые метрики для мониторинга:

  • Температура CPU - OID .1.3.6.1.4.1.2021.13.16.2.1.3.<индекс>
  • Скорость вентиляторов - OID .1.3.6.1.4.1.2021.13.16.3.1.4.<индекс>
  • Статус блоков питания - вендор-специфичные OID
  • Напряжения на линиях - 3.3V, 5V, 12V

Триггер на перегрев CPU:

{bmc-ipmi:temp.cpu.last()}>85

Триггер на отказ вентилятора (скорость ниже 500 RPM при штатных 3000-6000):

{bmc-ipmi:fan.speed.last()}<500

Для серверов с резервированием питания создайте триггер на статус PSU:

{bmc-ipmi:psu.status.last()}<>1

Где 1 - OK, 0 - отказ. Проверьте документацию вашего BMC для точных значений OID и кодов состояний.

Создание Express-уведомлений: пошаговая настройка действий

Express-уведомления в Zabbix настраиваются через Actions с типом Send message. Ключевое отличие от стандартных - в условиях срабатывания: мы указываем только триггеры с severity Disaster и High для группы хостов TrueNAS.

Создайте действие: Configuration → Actions → Create action. На вкладке Action:

  • Name: Express - TrueNAS Critical Alerts
  • Conditions: Host group = TrueNAS Servers, Trigger severity = Disaster, Trigger severity = High
  • Operations: Send message to Telegram group, Send message to Slack channel, Send message to Email admin

Настройка Telegram-бота для приема алертов

Telegram - самый быстрый канал для персональных уведомлений. Создайте бота через @BotFather и получите токен. Добавьте бота в группу и узнайте chat_id через вызов API:

curl -s "https://api.telegram.org/bot/getUpdates"

В Zabbix перейдите в Administration → Media types → Create media type. Выберите Type: Webhook. Параметры:

  • Name: Telegram Express
  • URL: https://api.telegram.org/bot{ALERT.SENDTO}/sendMessage
  • Message format: JSON
  • Message template: {"chat_id":"{ALERT.SENDTO}","text":"{ALERT.MESSAGE}","parse_mode":"HTML"}

Протестируйте отправку через Administration → Media types → Test.

Интеграция с Email и Slack

Email - резервный канал для документирования инцидентов. Настройте SMTP в Administration → Media types → Email. Укажите сервер, порт, учётные данные. Для Яндекс 360 или Mail.ru потребуется пароль приложения.

Slack удобен для командной работы. Создайте Webhook в Slack: Slack API → Incoming Webhooks → Add to Workspace. Скопируйте URL. В Zabbix создайте новый медиатип Webhook с URL вашего Slack-вебхука и JSON-пейлоадом:

{"text":"*{ALERT.SUBJECT}*\n{ALERT.MESSAGE}"}

Шаблон сообщения для всех каналов, использующий макросы Zabbix:

🚨 *Критический алерт: {TRIGGER.NAME}*
Хост: {HOST.NAME}
Статус: {TRIGGER.STATUS}
Значение: {ITEM.LASTVALUE}
Время: {EVENT.TIME} {EVENT.DATE}

Подробности: {TRIGGER.DESCRIPTION}

Для автоматизации реагирования на инциденты можно интегрировать Zabbix с системами резервного копирования. Готовые скрипты на Python и Bash для этой задачи собраны в статье по автоматизации резервного копирования.

Тестирование и проверка работоспособности системы оповещения

Непроверенный алертинг создаёт иллюзию безопасности. Проведите тестирование каждого канала до того, как случится реальный инцидент.

Метод 1 - ручное изменение значения элемента данных. В Monitoring → Latest data найдите элемент, например, температуру CPU. Нажмите на значение и выберите Change. Введите значение выше порога триггера - например, 90°C. Триггер сработает в течение 60 секунд.

Метод 2 - временное отключение SNMP на TrueNAS. Это симулирует потерю связи с хостом. Остановите службу SNMP на TrueNAS и проверьте, что триггер недоступности сработал и уведомление ушло.

Метод 3 - использование zabbix_sender для отправки тестового значения напрямую в Zabbix-сервер:

zabbix_sender -z 127.0.0.1 -s "truenas-san-01" -k "test.trigger" -o "1"

После каждого теста проверяйте логи Zabbix-сервера:

tail -f /var/log/zabbix/zabbix_server.log | grep -i "alert\|error\|express"

Плановое тестирование проводите раз в квартал в нерабочее время. Документируйте результаты: какой канал сработал, время доставки, были ли ложные срабатывания.

Типичные проблемы и их решение

«Нет данных SNMP» в Zabbix. Причины: неверный community или пароли v3, файрвол блокирует порт 161/UDP, служба SNMP не запущена на TrueNAS. Проверьте snmpwalk с Zabbix-сервера. Если команда не возвращает данных, проблема на стороне TrueNAS или сети. Если возвращает, но Zabbix не видит - проверьте макросы хоста и интерфейс.

Уведомления не приходят. Проверьте цепочку: триггер сработал (Monitoring → Problems) → действие активно (Configuration → Actions → статус Enabled) → медиатип настроен и протестирован (Administration → Media types → Test) → пользователь привязан к медиатипу (Administration → Users → Media).

Ложные срабатывания. Слишком жёсткие пороги триггеров - частая причина. Для температуры CPU используйте скользящее среднее за 5 минут вместо мгновенного значения:

{bmc-ipmi:temp.cpu.avg(300)}>85

Для SMART-атрибутов добавьте задержку срабатывания в 2-3 проверки, чтобы исключить кратковременные всплески. В конфигурации триггера задайте Problem expression с условием повторения:

{truenas-san-01:disk.ada0.reallocated.min(600)}>10

Этот триггер сработает, только если значение держится выше порога 10 минут подряд.

Если вы планируете масштабировать мониторинг на другие серверы, рассмотрите облачную инфраструктуру для Zabbix-сервера. Timeweb Cloud предоставляет VDS с гибким изменением ресурсов, что удобно при росте количества наблюдаемых хостов. Для автоматизации обработки алертов с помощью нейросетей можно использовать AiTunnel - агрегатор API для GPT и Claude, который анализирует текст уведомлений и предлагает варианты решения инцидента.

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

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