Skip to main content

Как диагностировать проблемы NFS и DNS

Назначение

DNS и NFS являются критически важными инфраструктурными зависимостями системы Printum.

Проблемы с DNS или NFS могут вызывать:

  • restart loop контейнеров;
  • недоступность ПринтМенеджера;
  • ошибки синхронизации;
  • недоступность очередей печати;
  • проблемы работы встроенных приложений;
  • ошибки авторизации пользователей;
  • недоступность архива заданий.

Типовые признаки проблем DNS

Симптом Возможная причина
Контейнеры постоянно перезапускаются hostname не резолвится, nfs-сервер недоступен
Ошибки timeout DNS-сервер недоступен
Ошибки синхронизации неверное DNS-имя
SSL/TLS errors hostname не соответствует сертификату
ПринтМенеджер недоступен отсутствует DNS-resolve между узлами, nfs-сервер недоступен

Диагностика DNS

Проверка resolv.conf

Проверить содержимое файла:

cat /etc/resolv.conf

Необходимо убедиться:

  • DNS-серверы указаны корректно;
  • DNS-серверы доступны;
  • отсутствуют ошибочные записи;
  • указан корректный search domain (если используется).

Проверка разрешения hostname

Проверить разрешение hostname:

ping monitoring.local

Дополнительно рекомендуется выполнить:

nslookup monitoring.local

Проверить:

  • hostname успешно резолвится;
  • IP-адрес соответствует ожидаемому;
  • отсутствуют timeout;
  • ответ приходит от корректного DNS-сервера.

Проверка сетевой связности

Проверить доступность серверов:

ping printmanager.local

При использовании отказоустойчивой конфигурации необходимо проверить связность между:

  • Мониторингом;
  • всеми узлами ПринтМенеджера;
  • NFS-сервером;
  • балансировщиком;
  • PostgreSQL;
  • Redis/Sentinel.

Диагностика NFS

Проверка доступности NFS-портов

Проверить доступность NFS:

telnet nfs-server.local 2049

Если используется stunnel:

telnet nfs-server.local 20490

Ожидаемый результат:

  • TCP-соединение успешно устанавливается;
  • отсутствуют timeout;
  • отсутствует ошибка Connection refused.

Проверка mounted volumes

Проверка NFS volume в Docker

Проверить список Docker volumes:

docker volume ls

Найти volume, который используется ПринтМенеджером (printmanager-app).

Проверить параметры volume:

docker volume inspect <volume_name>

Проверить:

  • volume существует;
  • указан корректный NFS server;
  • указан корректный путь NFS export;
  • параметры подключения соответствуют конфигурации.

Проверка mount внутри контейнера

Зайти в контейнер ПринтМенеджера:

docker exec -it printmanager-app sh

Проверить подключённые файловые системы внутри контейнера:

df -h

Дополнительно проверить доступность каталога:

ls -la <mount_path>

Проверить:

  • каталог доступен из контейнера;
  • отсутствуют ошибки Stale file handle;
  • файловая система не находится в режиме read-only;
  • файлы создаются и читаются корректно.

Проверка сервисов NFS

На NFS-сервере проверить состояние сервисов:

systemctl status nfs-server.service

Если используется stunnel:

systemctl status stunnel.service

Проверить:

  • сервисы находятся в состоянии active (running);
  • отсутствуют restart loop;
  • отсутствуют ошибки systemd.

Перезапуск сервисов NFS

При необходимости выполнить перезапуск:

systemctl restart nfs-server.service

Если используется stunnel:

systemctl restart stunnel.service

После перезапуска рекомендуется повторно проверить:

  • доступность портов;
  • состояние mount;
  • доступность каталогов;
  • состояние контейнеров Printum.

Что делать при restart loop контейнеров

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

  • DNS;
  • NFS;
  • сетевую связность;
  • mounted volumes;
  • доступность PostgreSQL;
  • доступность Redis;
  • корректность hostname;
  • срок действия SSL-сертификатов.

После устранения проблемы выполнить перезапуск контейнеров:

cd /opt/printmanager
docker-compose down && docker-compose up -d

Дополнительная диагностика Docker

Проверить состояние контейнеров:

docker ps -a

Просмотреть логи контейнера:

cd /opt/printmanager/
docker-compose logs -f --tail=5

Важно помнить

  • DNS является одной из самых частых причин инфраструктурных отказов.
  • NFS критически важен для работы отказоустойчивой конфигурации ПринтМенеджера.
  • Большинство restart loop связано с инфраструктурными зависимостями.
  • Проверка DNS и NFS должна быть первым этапом диагностики.
  • В Active-Active конфигурации стабильная работа DNS и NFS обязательна для всех узлов кластера.