Введение: почему логи TrueNAS — ваш главный инструмент диагностики
Представь, что твой TrueNAS сервер внезапно перестал отдавать файлы по SMB, или пул ZFS показывает странные ошибки. Куда смотреть в первую очередь? Правильно — в логи. Логи TrueNAS — это детальная хроника всех событий системы: от загрузки ядра до мельчайших операций с файлами. Умение работать с ними отличает новичка от опытного администратора.
В этой статье мы разберем все аспекты работы с логами TrueNAS Scale и Core: где они хранятся, как их читать, фильтровать, настраивать ротацию и отправлять в централизованную систему. Давай превратим эти непонятные строки в понятные инструкции для решения проблем.
Где живут логи TrueNAS: карта местности
Первое, что нужно сделать — понять структуру каталогов. Основные логи сосредоточены в нескольких ключевых местах.
Системные логи (ядро, демоны, общие события)
- /var/log/messages — главный системный лог. Сюда попадает почти всё: сообщения ядра (dmesg), системных служб, cron-заданий.
- /var/log/debug.log — расширенный отладочный лог (требует включения соответствующего уровня логирования).
- /var/log/auth.log — журнал аутентификации (входы по SSH, sudo, и т.д.).
- /var/log/daemon.log — логи системных демонов.
Логи служб TrueNAS (WebUI, middleware, задач)
- /var/log/middlewared.log — самый важный лог! Здесь пишется деятельность веб-интерфейса и API (middleware). Ошибки конфигурации, задачи создания пулов, снэпшотов — всё здесь.
- /var/log/freenas.log (на Core) или /var/log/truenas.log (на Scale) — исторический лог событий системы, который также отображается в Web UI в разделе "Система" -> "Журналы".
- /var/log/alert.log — лог системных алертов (предупреждений).
Логи файловых служб (SMB, NFS, iSCSI)
- /var/log/samba4/log.smbd — основной лог сервера SMB/CIFS. Проблемы с доступом к общим папкам Windows? Смотрим сюда.
- /var/log/samba4/log.* — другие логи Samba (log.nmbd, log.winbindd).
- /var/log/rpc.log — логи RPC-служб, критично для NFS.
- Логи iSCSI находятся в /var/log/target/.
Логи ZFS и пулов
ZFS — сердце TrueNAS. Его логи не всегда лежат в /var/log, но их можно и нужно мониторить.
- Команда
zpool status -xпокажет текущее состояние пулов. - Команда
zpool historyпокажет историю всех операций с пулами. - Ошибки дисков (checksum, read/write) выводятся в /var/log/messages и видны в
zpool status. - Журнал транзакций ZFS (ZIL) и интент-лог (управляемый SLOG) — это не текстовые логи, а специальные области на диске.
Как читать и анализировать логи TrueNAS: практика
Теперь, когда мы знаем где что лежит, давай научимся это эффективно использовать.
Базовые команды CLI для работы с логами
Подключись к TrueNAS по SSH (Система -> SSH-сервис) и используй эти команды:
# Просмотр логов в реальном времени (tail -f)
tail -f /var/log/messages
tail -f /var/log/middlewared.log
# Просмотр последних 100 строк лога
tail -n 100 /var/log/samba4/log.smbd
# Поиск ошибок в системном логе за последний час
grep -i error /var/log/messages | grep "$(date '+%b %_d %H:')"
# Поиск конкретного события (например, проблемы с диском da0)
grep "da0" /var/log/messages
# Просмотр лога с разбивкой по страницам (less)
less /var/log/freenas.log
# В less: / - поиск, q - выход.
# Мониторинг состояния ZFS (обновляется раз в секунду)
watch -n 1 zpool status
Анализ через Web UI TrueNAS
Не всегда нужно лезть в консоль. В TrueNAS Scale и Core есть удобный интерфейс:
- Зайди в Системные настройки -> Журналы.
- Здесь ты увидиз таблицу с событиями из
/var/log/freenas.logили/var/log/truenas.log. - Можно фильтровать по уровню (INFO, WARN, ERROR), дате и содержанию.
- Кнопка "Скачать" позволяет сохранить логи для углубленного анализа или отправки в поддержку.
Разбор типичных ошибок в логах
Давай рассмотрим несколько реальных примеров:
# Пример ошибки ZFS (checksum error) из /var/log/messages
Jun 10 14:23:01 truenas kernel: ZFS: checksum error ...
# Что делать: Проверить кабель, SMART диска. Запустить scrubbing пула.
# Пример ошибки SMB из /var/log/samba4/log.smbd
[2024/06/10 14:25:12.123456, 0] ... smbd/service.c:676(create_connection_session_info)
create_connection_session_info: user 'WORKGROUP\\user' not found
# Что делать: Проверить настройки пользователя, членство в группе, разрешения dataset.
# Ошибка middlewared (часто при сбое задачи)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 180, in main_worker
result = await self.middleware.call(*worker['args'], **worker['kwargs'])
# Что делать: Смотреть выше по логу на конкретную причину. Часто помогает перезапуск службы или перезагрузка.
Настройка и управление логами TrueNAS
Настройка Syslog для централизованного сбора
Хранить логи только на самом сервере — рискованно. Настрой отправку в выделенный syslog-сервер (например, Graylog, ELK Stack, другой Linux).
- В Web UI иди в Системные настройки -> Дополнительно -> Syslog.
- Включи "Использовать системный syslog-сервис".
- В поле "Удалённый syslog-сервер" укажи IP и порт (обычно 514 UDP или TCP) твоего сборщика.
- Выбери, какие транспорты (UDP/TCP/TLS) и какие уровни логирования отправлять.
# Конфигурационный файл syslog в TrueNAS Scale (Debian)
# Основные настройки в /etc/rsyslog.conf и /etc/rsyslog.d/*
# После настройки в UI проверь файл:
cat /etc/rsyslog.d/90-truenas-remote.conf
# Он должен содержать строки вида:
*.* @@192.168.1.100:514 # Для TCP
# или
*.* @192.168.1.100:514 # Для UDP
Ротация и очистка логов
Логи имеют свойство разрастаться. Ими управляет logrotate.
# Проверь конфигурацию logrotate для middlewared
cat /etc/logrotate.d/middlewared
# Пример содержимого:
/var/log/middlewared.log {
rotate 7
daily
missingok
notifempty
compress
delaycompress
postrotate
/usr/bin/killall -USR1 python3.9 2>/dev/null || true
endscript
}
# Это означает: хранить 7 архивов, ротировать ежедневно, сжимать.
Вручную можно очистить лог (если он огромный) командой > /var/log/filename.log. Но лучше дождаться ротации или увеличить её настройки.
Повышение уровня детализации (Debug Logging)
Для глубокой отладки нужно включить debug-логирование. Делается это через CLI или для отдельных служб (например, Samba) через настройки в UI.
# Включение debug логирования для middlewared (временно)
midclt call system.advanced.update '{"debugkernel": true, "debugsyslog": true}'
# После диагностики ОБЯЗАТЕЛЬНО отключи, иначе диск быстро заполнится!
midclt call system.advanced.update '{"debugkernel": false, "debugsyslog": false}'
Практические кейсы: решаем проблемы с помощью логов
| Симптом | Куда смотреть (логи) | Возможная причина |
|---|---|---|
| Медленная работа SMB | /var/log/samba4/log.smbd, zpool iostat 1 |
Проблемы с сетью, фрагментация ZFS, нехватка RAM для кэша ARC. |
| Пропал диск из пула (DEGRADED) | /var/log/messages, dmesg, smartctl -a /dev/daX |
Сбой диска (SMART ошибки), плохой кабель/коннектор, сбой контроллера. |
| Не загружается Web UI | /var/log/middlewared.log |
Ошибка в конфигурации базы данных middlewared, конфликт служб. |
| Нет доступа к общей папке | /var/log/samba4/log.smbd, /var/log/middlewared.log |
Неправильные разрешения ACL, неработающая служба winbind (для AD). |
| Задача репликации snapshot'ов не запускается | /var/log/middlewared.log, /var/log/messages |
Проблемы с SSH-ключами, сетевое соединение, отсутствие snapshot'а-источника. |
FAQ: частые вопросы о логах TrueNAS
Как скачать все логи для обращения в поддержку?
В Web UI есть встроенная функция: Системные настройки -> Журналы -> кнопка "СОХРАНИТЬ". Это создаст .tgz архив с основными логами и конфигами. Также можно в CLI выполнить truenas-cli logs save (на Scale) или через Shell собрать нужные файлы вручную.
Лог /var/log/messages постоянно перезаписывается. Как сохранить историю?
Этим управляет newsyslog (на Core) или logrotate (на Scale). Конфиги находятся в /etc/newsyslog.conf или /etc/logrotate.d/. Там можно увеличить параметр rotate (число хранимых архивов) и их размер.
Можно ли перенести логи на отдельный dataset (например, на SSD)?
Да, это отличная практика для снижения нагрузки на основной пул. В TrueNAS Scale можно создать отдельный dataset для логов и смонтировать его поверх стандартных папок, используя bind mounts в настройках приложений или вручную через fstab. На Core это сложнее и требует редактирования системных конфигов, что не рекомендуется.
В логах много "шума". Как фильтровать только важное?
Используй grep с ключами: grep -E "(ERROR|CRITICAL|FAILED|panic)" /var/log/messages. Для постоянного мониторинга настрой отправку логов в систему типа Grafana Loki, Splunk или ELK, где можно создавать мощные дашборды и алерты.
Заключение: системный подход к логам
Логи TrueNAS — не просто текстовые файлы, это живая нервная система твоего хранилища. Освоив их расположение и базовые инструменты анализа (tail, grep, less), ты перестанешь гадать при проблемах и перейдешь к точной диагностике.
Ключевые шаги для профессионала:
- Настрой централизованный сбор логов (Syslog) на выделенный сервер.
- Регулярно просматривай
/var/log/messagesиzpool status. - При любой проблеме первым делом открывай соответствующий лог.
- Не забывай про ротацию и мониторинг свободного места в /var.
- Используй Web UI для быстрого просмотра, но для глубокого анализа учи CLI.
Помни: в логах уже есть ответ на 95% вопросов. Нужно лишь научиться его читать. Удачи в освоении твоего TrueNAS!