Зачем нужен мониторинг и какие события критичны
Диски выходят из строя. Контроллеры перегреваются. Пул ZFS деградирует после незамеченного сбоя питания. Без настроенной системы оповещений вы узнаете об этом, когда данные уже потеряны. TrueNAS умеет предупреждать о проблемах заранее - нужно лишь правильно сконфигурировать каналы доставки и определить, на какие события реагировать немедленно.
Критические события, требующие мгновенного оповещения:
- Отказ диска - устройство полностью недоступно, пул переходит в состояние DEGRADED или FAULTED.
- Ошибки SMART - рост атрибутов Reallocated Sectors, Pending Sectors, Offline Uncorrectable. Диск ещё работает, но счёт идёт на дни.
- Деградация пула - потеря одного или нескольких устройств в vdev, пул продолжает работать без избыточности.
- Ошибки scrub - обнаружены неисправимые ошибки контрольных сумм. Данные повреждены без возможности восстановления.
- Перегрев дисков - температура выше порога, заданного в настройках SMART.
Разница между предупреждением (WARNING) и критической ошибкой (CRITICAL) принципиальна. WARNING - сигнал к проверке в рабочее время. CRITICAL - повод встать среди ночи и заменить диск. TrueNAS позволяет гибко настраивать уровни важности для каждого типа событий в разделе System → Alert Settings.
Базовая настройка алертинга занимает 15 минут. Вы получите уверенность, что хранилище под контролем. Если вы только выбираете платформу для NAS, обратите внимание на сравнение TrueNAS, Synology и QNAP - там разобраны сценарии для дома и бизнеса.
Настройка email-уведомлений в TrueNAS
Email - базовый канал. Он работает без внешних сервисов, не зависит от доступности мессенджеров и гарантирует доставку при корректной настройке SMTP. Начнём с него.
Откройте System → Email. Заполните поля:
- From Email - адрес, от которого будут приходить письма. Совпадает с учётной записью SMTP.
- Outgoing Mail Server - адрес SMTP-сервера.
- Mail Server Port - порт (обычно 587 для STARTTLS, 465 для SSL).
- Security - STARTTLS или SSL в зависимости от требований сервера.
- SMTP Authentication - включите, введите логин и пароль.
После заполнения нажмите Send Test Mail. Если письмо не пришло - проверьте логи.
Использование Gmail как SMTP-сервера
Gmail требует пароль приложения, а не пароль от аккаунта. Создайте его в настройках Google-аккаунта: Безопасность → Двухфакторная аутентификация → Пароли приложений. Выберите «Почта» и «Другое», скопируйте 16-значный пароль.
Настройки SMTP для Gmail:
- Outgoing Mail Server: smtp.gmail.com
- Port: 587
- Security: STARTTLS
- Username: ваш email
- Password: пароль приложения
Ограничения Gmail: 500 писем в день для личных аккаунтов, 2000 для Google Workspace. Для корпоративного хранилища с сотнями алертов используйте собственный почтовый сервер или сервисы транзакционной почты.
Диагностика проблем с отправкой email
Логи почтовой системы лежат в /var/log/maillog. Подключитесь по SSH и выполните:
tail -f /var/log/maillogЧастые ошибки:
- Authentication failed - неверный логин или пароль. Для Gmail проверьте, что используете пароль приложения.
- Connection refused - порт заблокирован фаерволом или провайдером. Попробуйте порт 465 с SSL.
- Certificate verification failed - проблема с сертификатом сервера. Убедитесь, что системное время TrueNAS корректно.
Для тестирования из shell используйте команду:
echo "Test body" | mail -s "Test Subject" recipient@example.comЕсли письмо уходит из shell, но не из веб-интерфейса - проблема в настройках раздела System → Email.
Мониторинг состояния дисков: SMART-тесты и оповещения
S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) - система самодиагностики дисков. TrueNAS опрашивает атрибуты SMART в реальном времени и генерирует алерты при превышении порогов. Дополнительно можно запускать плановые тесты для выявления скрытых проблем.
Включите SMART-сервис: Services → S.M.A.R.T., установите флаг Start Automatically и запустите службу.
Настройка расписания SMART-тестов
Перейдите в Tasks → SMART Tests → Add. Рекомендованное расписание:
- Short тест - еженедельно, в ночное время. Проверяет электрику, механику, чтение части поверхности. Длится 2-5 минут.
- Long тест - ежемесячно, в выходной день. Полное сканирование поверхности. Может занимать часы на дисках большого объёма.
Выберите диски (All Disks - для всех), тип теста, день недели и время. TrueNAS автоматически отправит email с результатами, если настроена почта.
Интерпретация результатов SMART и реакция на ошибки
Ключевые атрибуты, на которые нужно смотреть:
| Атрибут | Значение | Действие |
|---|---|---|
| Reallocated Sectors Count | Любое значение > 0 | Диск начал переназначать сбойные сектора. Если счётчик растёт - замена. |
| Current Pending Sector | Любое значение > 0 | Сектора ожидают решения. Запустите long тест. При повторном появлении - замена. |
| Offline Uncorrectable | Любое значение > 0 | Неисправимые ошибки. Немедленная замена. |
| UDMA CRC Error Count | Рост значения | Проблема с SATA-кабелем или контроллером. Замените кабель. |
При появлении предупреждений немедленно сделайте резервную копию критичных данных. Для автоматизации бэкапов изучите готовые скрипты для резервного копирования - там есть примеры для ZFS-снапшотов.
Оповещения о состоянии ZFS-пула
ZFS - транзакционная файловая система с контрольными суммами. Она обнаруживает повреждения данных автоматически. TrueNAS отслеживает состояние пула и генерирует алерты при любых изменениях статуса.
Проверить состояние пула вручную можно командой:
zpool status -vВывод покажет статус каждого vdev и диска. Состояния: ONLINE (норма), DEGRADED (работает без избыточности), FAULTED (недоступен), OFFLINE (отключён администратором).
Настройка уведомлений о scrub
Scrub - операция проверки всех контрольных сумм в пуле. Находит и исправляет ошибки, если есть избыточность. Настройте регулярный scrub: Tasks → Scrub Tasks → Add. Рекомендованное расписание - раз в две недели для домашних систем, еженедельно для корпоративных.
В настройках задачи установите флаг Send Email и укажите порог в днях между скрабами для напоминания. После завершения TrueNAS отправит отчёт:
- Repaired errors - ошибки, исправленные за счёт избыточности. Повод проверить диски.
- Unrepaired errors - неисправимые ошибки. Данные повреждены безвозвратно. Восстановите из бэкапа.
Мониторинг деградации пула и отказов дисков
TrueNAS автоматически отправляет CRITICAL alert при переходе пула в состояние DEGRADED или FAULTED. Настройте уровни важности: System → Alert Settings. Для событий пула выберите уровень CRITICAL - это гарантирует немедленную отправку по всем настроенным каналам.
Дополнительно настройте мониторинг заполнения пула. ZFS начинает деградировать по производительности при заполнении выше 80%. В разделе Alert Settings найдите оповещение Pool Capacity и задайте пороги: Warning на 80%, Critical на 90%.
Интеграция со сторонними сервисами через Webhook
Email удобен, но медленный. Для мгновенных оповещений используйте webhook - HTTP-запрос, который TrueNAS отправляет при срабатывании алерта. Поддерживаются Slack, Telegram, Discord и любые сервисы с REST API.
Настройка: System → Alert Services → Add → выберите тип Webhook. Заполните URL эндпоинта, метод (POST), заголовки и тело запроса в формате JSON.
Отправка уведомлений в Telegram
Создайте бота через BotFather в Telegram. Получите токен. Затем напишите боту любое сообщение и выполните запрос:
curl -s https://api.telegram.org/bot/getUpdates | jq '.result[].message.chat.id' Полученный chat_id используйте в настройках webhook TrueNAS:
- URL: https://api.telegram.org/bot
/sendMessage - Method: POST
- Content-Type: application/json
- Body: {"chat_id": "
", "text": "{{.Message}}"}
TrueNAS подставляет переменную {{.Message}} автоматически. После сохранения нажмите Send Test Alert.
Интеграция с системами мониторинга (Prometheus, Grafana)
Webhook позволяет передавать алерты в Alertmanager. Настройте эндпоинт Alertmanager в TrueNAS и форматируйте JSON-пейлоад согласно API. Для метрик производительности используйте встроенный Graphite exporter: Services → Graphite, укажите порт и включите сбор метрик CPU, памяти, дисков, сети и ZFS.
Prometheus забирает метрики с Graphite exporter через адаптер graphite_exporter. Настройте алерты на стороне Prometheus: задержка операций ZFS, utilisation пула, температура дисков. Это даёт единую панель мониторинга для всей инфраструктуры.
Для комплексной автоматизации задач TrueNAS посмотрите руководство по управлению задачами и автоматизации - там разобраны cron-задания и интеграция с Zabbix.
Создание пользовательских скриптов оповещения
Встроенные алерты покрывают 90% сценариев. Оставшиеся 10% - специфичные проверки: свободное место на конкретном датасете, состояние сервисов, температура за пределами дисков. Для этого используйте Tasks → Cron Jobs.
Пример скрипта: мониторинг заполнения пула
Создайте скрипт /root/check_pool.sh:
#!/bin/bash
THRESHOLD=80
POOL="tank"
USED=$(zpool list -H -o capacity "$POOL" | sed 's/%//')
if [ "$USED" -gt "$THRESHOLD" ]; then
echo "Pool $POOL заполнен на ${USED}%. Порог: ${THRESHOLD}%." | mail -s "CRITICAL: Pool $POOL capacity" admin@example.com
fiСделайте скрипт исполняемым: chmod +x /root/check_pool.sh. Добавьте cron-задачу: Tasks → Cron Jobs → Add. Укажите команду /root/check_pool.sh, пользователя root, расписание - раз в час.
Отладка и логирование пользовательских скриптов
Перенаправляйте вывод в лог-файл:
/root/check_pool.sh >> /var/log/check_pool.log 2>&1Проверяйте права доступа: скрипты, запускаемые cron, выполняются от указанного пользователя. Используйте абсолютные пути ко всем командам и файлам. Переменные окружения из shell могут отсутствовать в cron-окружении - задавайте их явно в скрипте.
Для детального мониторинга задач резервного копирования используйте руководство по мониторингу бэкапов с готовыми скриптами для Telegram.
Проверка и тестирование системы оповещений
Настроили - проверьте. Тихий отказ системы оповещения сводит на нет все усилия.
Методы тестирования:
- Тестовый email - кнопка Send Test Mail в настройках почты.
- Тестовый alert - кнопка Send Test Alert в настройках Alert Services.
- Принудительный SMART-тест - запустите short тест вручную через Storage → Disks → выберите диск → Manual Test.
- Проверка логов оповещений - файл
/var/log/alert.logсодержит историю всех сгенерированных алертов.
Не симулируйте отказ диска извлечением на работающей системе - это создаёт реальный риск потери данных. Вместо этого проверьте, что при ручном переводе диска в OFFLINE (zpool offline tank da1) приходит alert. После теста верните диск: zpool online tank da1.
Проводите тестирование раз в квартал. Меняются пароли, истекают токены, обновляются сертификаты. Система оповещений требует такого же обслуживания, как и само хранилище.