# Диагностика проблем NFS и DNS

## Назначение

DNS и NFS являются критическими зависимостями Принтум. Проблемы с ними могут вызывать: restart loop контейнеров, отказ ПринтМенеджера, ошибки синхронизации, недоступность очередей, проблемы Встроенного приложения.

## Диагностика проблем DNS

### Проверка resolv.conf

```
cat /etc/resolv.conf
```

Убедиться: DNS-серверы доступны, нет ошибочных записей. При необходимости скорректировать файл `/etc/resolv.conf`.

### Проверка hostname resolution

```
ping monitoring.local
```

Проверить: hostname резолвится, IP корректный.

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

<table id="bkmrk-%D0%A1%D0%B8%D0%BC%D0%BF%D1%82%D0%BE%D0%BC%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F-%D0%BF%D1%80%D0%B8"><thead><tr><th>Симптом</th><th>Возможная причина</th></tr></thead><tbody><tr><td>restart loop</td><td>hostname не резолвится</td></tr><tr><td>timeout</td><td>DNS unavailable</td></tr><tr><td>sync errors</td><td>неверный hostname</td></tr><tr><td>SSL errors</td><td>mismatch hostname</td></tr></tbody></table>

## Диагностика проблем NFS

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

```
telnet <hostname_nfs> 2049
```

Проверка stunnel:

```
telnet <hostname_nfs> 20490
```

### Проверка mount

```
df -h
```

Проверить точку монтирования:

```
ls /var/lib/docker/volumes/printmanager_media/_data
```

Убедиться: volume mounted, нет stale mount, нет readonly mode.

### Проверка volumes

```
ls /var/lib/docker/volumes/
```

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

Подключиться по SSH к серверу NFS.

Проверить место:

```
df -h
```

Проверить сервисы:

```
systemctl status nfs-server.service
```

```
systemctl status stunnel.service
```

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

```
systemctl restart nfs-server.service
```

```
systemctl restart stunnel.service
```

Проверить зелёный статус сервисов в HAProxy.

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

Проверить: DNS, NFS и stunnel, точки монтирования, сетевую связность.

После исправления:

```
sudo docker-compose down
sudo docker-compose up -d
```

Если проблема на нескольких серверах ПринтМенеджера — остановку и запуск выполнить на всех нодах. Убедиться, что статусы в HAProxy зелёные. Если проблема сохраняется — восстановить сервер из резервной копии.

## Нехватка места на диске

### Очистка журналов ОС

```
sudo journalctl --vacuum-size 1M
```

```
sudo rm -rf /var/log/messages-*
```

```
df -h
```

### Поиск больших логов Docker

```
sudo du -ch /var/lib/docker/containers/*/*-json.log
```

```
sudo truncate -s 0 <путь_к_файлу>
```

```
sudo df -h
```

## Что важно помнить

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