Домашний NAS с TrueNAS хранит терабайты данных: семейные фото, проекты, резервные копии. Потеря даже части этой информации обходится дорого. Система мониторинга и алертинга - это страховка, которая предупредит о проблеме до того, как она станет необратимой. Вы получите уведомление о перегреве диска в Telegram за секунды, а критический сбой пула запустит эскалацию в PagerDuty с ночным звонком дежурному инженеру.
В этом руководстве мы выстроим многоуровневую систему оповещений для TrueNAS. Начнём с встроенных email-уведомлений, подключим Telegram-бота для мгновенных push-сообщений, добавим Pushover как резервный канал и завершим профессиональной интеграцией с PagerDuty через Events API v2. Каждый шаг проверен на TrueNAS SCALE 24.10 и Core 13.0, скрипты готовы к копированию.
Если вы ещё выбираете платформу для NAS, посмотрите сравнение Synology, QNAP и TrueNAS SCALE в 2026 году. Там разобраны плюсы ZFS, производительность и сценарии использования под разные бюджеты.
Почему мониторинг NAS - это не роскошь, а необходимость
Отказ жёсткого диска - вопрос времени. Статистика Backblaze за 2025 год показывает ежегодный уровень отказов (AFR) на уровне 1.2–1.8% для дисков объёмом 8–16 ТБ. В массиве из четырёх дисков вероятность, что один выйдет из строя в течение трёх лет, превышает 10%. Без мониторинга вы узнаете об этом, когда данные уже повреждены.
Перегрев - вторая по частоте причина деградации. Работа HDD при температуре выше 50°C сокращает срок службы на 30–50% по данным исследований Google. ZFS-пул, заполненный более чем на 90%, теряет в производительности записи до 70% из-за фрагментации метаслэбов. А единичная ошибка контрольной суммы, оставленная без внимания, за месяц может перерасти в нечитаемый файл.
Система алертинга решает эти проблемы проактивно. Вы настраиваете пороги, выбираете каналы доставки и получаете информацию тогда, когда она нужна. Дальше - конкретные метрики и пошаговая настройка.
Критические метрики: что отслеживать в первую очередь
Мониторинг начинается с правильных метрик. Отслеживайте пять ключевых параметров: температуру дисков, заполнение пула, ошибки ZFS, атрибуты SMART и загрузку CPU/RAM. Для каждого заданы пороговые значения, основанные на документации iXsystems и практическом опыте.
Температура дисков: как не допустить перегрева
Рабочий диапазон для большинства HDD - 25–45°C. При 50°C механические компоненты расширяются неравномерно, растёт число ошибок позиционирования головок. При 55°C и выше риск необратимых повреждений магнитного слоя увеличивается кратно.
В TrueNAS текущую температуру дисков смотрите в разделе Storage → Disks. Колонка Temperature отображает показания SMART-датчиков. Для настройки алерта перейдите в System → Alert Settings → Alert Rules. Создайте правило с типом Temperature, задайте порог Warning на 45°C и Critical на 50°C. При срабатывании система отправит уведомление через настроенный канал.
Охлаждение решается размещением: обеспечьте зазор 2–3 см между дисками в корпусе, установите вентилятор на вдув перед корзиной HDD. В тесных корпусах типа Mini-ITX используйте 80-мм вентиляторы с ШИМ-управлением, подключённые к разъёмам материнской платы. Скорость вращения настраивается в IPMI или BIOS по кривой: 40°C - 60% оборотов, 45°C - 80%, 50°C - 100%.
Заполнение пула: когда свободное место заканчивается
ZFS - copy-on-write файловая система. При заполнении пула выше 80% производительность записи падает, потому что системе приходится искать свободные блоки дольше. Порог 90% - критический: ZFS переходит в режим жёсткой фрагментации, транзакционные группы начинают задерживаться, возможны паузы ввода-вывода до нескольких секунд.
В TrueNAS настройка порогов выполняется в Storage → Pools → шестерёнка напротив пула → Edit Pool Options. Параметр Pool Capacity Warning установите на 80%, Pool Capacity Critical - на 90%. Система будет генерировать алерты автоматически. Для точного расчёта без учёта снапшотов используйте скрипт, который проверяет zpool list -o capacity,health и сравнивает с порогами. Готовый скрипт для мониторинга ZFS-пулов с отправкой в Telegram есть в статье по автоматизации резервного копирования.
Ошибки ZFS и SMART: ранние признаки отказов
ZFS сообщает о трёх типах ошибок: checksum (повреждение данных на диске), I/O (диск не вернул данные вовремя) и data (несовпадение после коррекции). Даже единичная checksum-ошибка - сигнал проверить диск. Команда zpool status -v покажет детализацию по каждому устройству.
SMART-атрибуты, требующие немедленного внимания:
- Reallocated Sectors Count (ID 5) - число переназначенных секторов. Значение выше 10 - диск под замену.
- Current Pending Sector Count (ID 197) - секторы, ожидающие переназначения. Любое ненулевое значение - риск.
- Offline Uncorrectable (ID 198) - секторы, которые не удалось прочитать. Выше 0 - данные уже потеряны.
Настройте регулярные scrubs пула: еженедельно для данных с высоким приоритетом, ежемесячно для архивных. SMART-тесты запускайте раз в две недели: короткий тест (2 минуты) и раз в месяц - расширенный (несколько часов). В TrueNAS это делается в Data Protection → Scrub Tasks и SMART Tests.
Встроенные возможности TrueNAS: email-оповещения
Email - базовый канал, который работает без внешних зависимостей. TrueNAS отправляет письма через SMTP-сервер. Настройка занимает пять минут.
Перейдите в System → General → Email. Заполните поля:
- From Email - адрес отправителя, например
nas-alert@yourdomain.com - Outgoing Mail Server - SMTP-хост. Для Gmail:
smtp.gmail.com, порт 587, TLS - Username/Password - учётные данные. Для Gmail потребуется пароль приложения, созданный в настройках безопасности аккаунта Google
Нажмите Send Test Mail. Если письмо пришло - настройка завершена. В разделе Alert Settings → Alert Services добавьте новый сервис типа Email, укажите список получателей через запятую. В Alert Rules привяжите правила к этому сервису.
Фильтрация по важности: создайте два сервиса Email - один для Warning (получает администратор раз в час), второй для Critical (получает вся группа, мгновенно). В правилах алертов выберите соответствующий сервис для каждого уровня.
Мгновенные уведомления в Telegram: настройка бота
Telegram доставляет сообщения за 1–2 секунды. Push-уведомления на телефон не зависят от почтового клиента и не теряются в спаме. Настроим бота, который будет принимать алерты от TrueNAS и пересылать их вам.
Создание и настройка Telegram-бота
Откройте Telegram, найдите @BotFather. Отправьте команду /newbot. Укажите имя бота (например, MyNAS Alerter) и username (должен заканчиваться на bot, например mynas_alerter_bot). BotFather выдаст токен - строку вида 1234567890:ABCdefGHIjklMNOpqrsTUVwxyz. Сохраните его, он потребуется для скрипта.
Теперь получите chat_id. Отправьте боту любое сообщение, затем в браузере перейдите по URL: https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates. В ответе JSON найдите поле "chat":{"id":123456789}. Это ваш chat_id. Для групповых чатов добавьте бота в группу, отправьте сообщение и повторите запрос - chat_id группы будет отрицательным числом.
Безопасность: храните токен в файле с правами 600, владелец root. Не публикуйте скрипты с токеном в открытых репозиториях.
Интеграция с TrueNAS через Alert Script
Создайте скрипт /usr/local/bin/telegram_alert.sh:
#!/bin/bash
TOKEN="ВАШ_ТОКЕН"
CHAT_ID="ВАШ_CHAT_ID"
MESSAGE="$1"
curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" \
-d chat_id="${CHAT_ID}" \
-d text="${MESSAGE}" \
-d parse_mode="HTML"Установите права: chmod 755 /usr/local/bin/telegram_alert.sh. В TrueNAS перейдите в Alert Settings → Alert Services → Add. Выберите тип Script, в поле Script укажите путь /usr/local/bin/telegram_alert.sh. Протестируйте кнопкой Send Test Alert - в Telegram должно прийти сообщение.
Для форматирования сообщений TrueNAS передаёт переменные: %s - severity, %m - message, %h - hostname. Модифицируйте скрипт для приёма этих параметров и формирования читаемого текста с эмодзи: 🔴 для Critical, 🟡 для Warning.
Pushover и другие каналы: расширяем арсенал
Pushover - платный сервис ($5 единоразово за платформу) с гарантированной доставкой и настраиваемыми звуками уведомлений. В отличие от Telegram, он не зависит от доступности мессенджера и поддерживает критические оповещения, которые обходят режим «Не беспокоить» на телефоне.
Настройка: зарегистрируйтесь на pushover.net, создайте приложение (Application), получите API Token и User Key. Скрипт отправки аналогичен Telegram, но endpoint - https://api.pushover.net/1/messages.json. Параметры: token, user, message, priority (2 для экстренных, которые повторяются до подтверждения).
Альтернативные каналы:
- Slack/Discord - webhook-интеграция через
curl, удобно для командного мониторинга. - Gotify - self-hosted решение, весь трафик внутри вашей сети.
Сравнение по надёжности: Pushover > Telegram > Email. По скорости: Telegram > Pushover > Email. По сложности настройки: Email < Telegram < Pushover. Рекомендация: используйте Telegram как основной канал, Pushover как резервный для критических алертов.
Профессиональный уровень: интеграция с PagerDuty
PagerDuty - это система управления инцидентами, которая маршрутизирует алерты по расписанию дежурств, эскалирует непринятые уведомления и ведёт журнал всех событий. Для домашнего NAS это может показаться избыточным, но если ваш NAS обслуживает семейный бизнес или удалённую работу, PagerDuty гарантирует, что критический сбой не останется незамеченным ночью.
Настройка PagerDuty: сервисы, интеграции, политики
Зарегистрируйтесь на pagerduty.com (есть бесплатный тариф для небольших команд). Создайте сервис: Services → New Service. Назовите его, например, «Home NAS Monitoring». В поле Integration Type выберите Events API v2. После создания сервиса вы получите Integration Key (Routing Key) - 32-символьную строку.
Настройте Escalation Policy: People → Escalation Policies → New Escalation Policy. Определите уровни: первый - push-уведомление в приложении PagerDuty (0 минут задержки), второй - звонок на мобильный (через 5 минут), третий - SMS на резервный номер (через 15 минут). Привяжите политику к сервису.
Расписание дежурств: People → Schedules. Создайте расписание, добавьте себя. Если NAS обслуживает семью, можно добавить несколько контактов с посменным дежурством.
Отправка алертов из TrueNAS в PagerDuty
Скрипт для отправки событий через Events API v2:
#!/usr/bin/env python3
import requests
import json
import sys
ROUTING_KEY = "ваш_integration_key"
def send_alert(severity, summary, source="truenas"):
payload = {
"routing_key": ROUTING_KEY,
"event_action": "trigger",
"payload": {
"summary": summary,
"severity": severity,
"source": source
}
}
response = requests.post(
"https://events.pagerduty.com/v2/enqueue",
json=payload
)
return response.status_code
if __name__ == "__main__":
severity = sys.argv[1] if len(sys.argv) > 1 else "critical"
summary = " ".join(sys.argv[2:]) if len(sys.argv) > 2 else "Test alert from TrueNAS"
status = send_alert(severity, summary)
print(f"PagerDuty response: {status}")Сохраните скрипт в /usr/local/bin/pagerduty_alert.py, установите права 755. В TrueNAS добавьте новый Alert Service типа Script, укажите путь к скрипту. Для теста выполните: python3 /usr/local/bin/pagerduty_alert.py warning "Тестовый алерт: температура диска 47°C". В дашборде PagerDuty появится инцидент.
Формат payload поддерживает поля component, group, class - используйте их для категоризации алертов по типу (disk, pool, network). Поле dedup_key позволяет группировать повторяющиеся алерты в один инцидент.
Строим многоуровневую систему: от предупреждения до эскалации
Объединим все каналы в единую архитектуру с правилами маршрутизации по severity:
| Уровень | Канал | Примеры алертов |
|---|---|---|
| Info | Email (дайджест раз в сутки) | Успешное завершение scrub, запуск обновления |
| Warning | Telegram (мгновенно) | Заполнение пула > 80%, температура > 45°C |
| Critical | Pushover + PagerDuty | Заполнение > 90%, отказ диска, ошибки ZFS |
Настройка в TrueNAS: создайте три Alert Service (Email, Script-Telegram, Script-PagerDuty). В Alert Rules для каждого типа алерта выберите соответствующий сервис. Правила с severity Info направляйте только на Email, Warning - на Email и Telegram, Critical - на все три канала.
Для тонкой фильтрации используйте поле Event в правилах. Например, алерт «Pool capacity warning» маршрутизируйте на Telegram, а «SMART self-test failed» - сразу на PagerDuty. Это исключит шум и гарантирует, что критическое событие не потеряется среди информационных сообщений.
Готовые скрипты для маршрутизации и примеры cron-задач для автоматического обслуживания TrueNAS - в статье по управлению задачами и автоматизации.
Предиктивная аналитика: смотрим в будущее
Исторические данные позволяют предсказать проблему до её возникновения. Тренд заполнения пула, скорость роста Reallocated Sectors, динамика температур - эти метрики дают фору в несколько дней или недель.
Сбор данных организуется скриптом, который раз в час записывает показатели в CSV или базу InfluxDB. Пример для SMART:
#!/bin/bash
DISK="/dev/sda"
TIMESTAMP=$(date +%s)
TEMP=$(smartctl -A $DISK | grep Temperature_Celsius | awk '{print $10}')
REALLOC=$(smartctl -A $DISK | grep Reallocated_Sector_Ct | awk '{print $10}')
echo "$TIMESTAMP,$TEMP,$REALLOC" >> /var/log/nas_metrics.csvВизуализация в Grafana: подключите источник данных (InfluxDB или Prometheus), постройте графики температуры и SMART-атрибутов по времени. Настройте алерты в Grafana на основе трендов: если температура растёт на 0.5°C в день и через 10 дней достигнет 50°C - отправьте предупреждение уже сейчас.
Прогноз заполнения пула: скрипт вычисляет скорость прироста данных за последние 30 дней и экстраполирует дату достижения порога 90%. Если прогноз меньше 14 дней - алерт Warning. Формула простая: days_until_full = (capacity * (0.9 - current_fill)) / daily_growth_rate.
Предиктивные алерты настраиваются через те же каналы: скрипт проверяет прогноз и вызывает telegram_alert.sh или pagerduty_alert.py с соответствующим сообщением. Добавьте вызов в cron раз в сутки.
Заключение: ваш NAS под контролем
Выстроенная система мониторинга покрывает все уровни: от сбора метрик до эскалации критических инцидентов. TrueNAS отправляет email при первых признаках проблемы, Telegram-бот доставляет мгновенные push-уведомления, Pushover страхует канал связи, а PagerDuty поднимает дежурного звонком, если инцидент не подтверждён.
Проверьте текущие настройки прямо сейчас: запустите тестовый scrub, убедитесь, что алерты доходят. Настройте еженедельный отчёт о состоянии SMART-атрибутов. Для углублённого изучения темы обратитесь к руководству по мониторингу резервных копий в TrueNAS и настройке сетевого доступа к файлам для комплексной защиты вашего хранилища.