Docs/docs/12-troubleshooting.md
Administrator 6733688c69 Update 3 files
- /docs/10-security.md
- /docs/11-backup.md
- /docs/12-troubleshooting.md
2026-03-20 16:29:00 +05:00

289 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 12. Решение проблем
В этом разделе собраны типичные проблемы, возникающие при эксплуатации инфраструктуры, и способы их устранения.
## Содержание
- [SSH: не удаётся подключиться](#ssh-не-удаётся-подключиться)
- [Samba: не монтируются шары](#samba-не-монтируются-шары)
- [NPM: сертификат не выпускается](#npm-сертификат-не-выпускается)
- [Docker: контейнер не запускается](#docker-контейнер-не-запускается)
- [Proxmox: ВМ не стартует](#proxmox-вм-не-стартует)
- [Grafana: нет данных](#grafana-нет-данных)
- [Immich: не загружаются фото](#immich-не-загружаются-фото)
- [Jellyfin: аппаратное ускорение не работает](#jellyfin-аппаратное-ускорение-не-работает)
- [Общие проверки](#общие-проверки)
---
## SSH: не удаётся подключиться
### Симптомы
- `Connection refused`
- `Permission denied (publickey)`
- Таймаут подключения
### Проверка
1. Доступен ли хост по сети:
```bash
ping 192.168.1.201
```
2. Слушает ли SSH:
```bash
ssh -v user@192.168.1.201
```
3. Проверьте файрвол на хосте:
```bash
ufw status
iptables -L -n -v | grep 22
```
4. Проверьте конфиг SSH на хосте:
```bash
grep -E '^(PermitRootLogin|PasswordAuthentication|PubkeyAuthentication)' /etc/ssh/sshd_config
```
### Решение
- Если порт не слушается: `systemctl status sshd`
- Если файрвол блокирует: разрешить порт 22 из нужной подсети
- Если проблема с ключами: убедиться, что ключ добавлен в `~/.ssh/authorized_keys` и права на файлы корректны (`600` для ключа, `700` для `.ssh`)
---
## Samba: не монтируются шары
### Симптомы
- `mount error(13): Permission denied`
- `mount error(112): Host is down`
- В Windows не видит шару
### Проверка
1. Работает ли Samba на сервере:
```bash
systemctl status smbd
```
2. Правильный ли протокол (версия SMB):
```bash
smbclient -L //192.168.1.203 -U zailon
```
3. Проверка конфигурации:
```bash
testparm
```
### Решение
- Убедиться, что пользователь существует в Samba:
```bash
pdbedit -L
```
- Проверить `hosts allow` в `smb.conf` должна быть разрешена подсеть клиента
- Для Docker-контейнеров (qbittorrent) проверить, что учётные данные в `/etc/smb-creds/qb` корректны и файл имеет права `600`
- Если используется шифрование `required`, убедиться, что клиент его поддерживает (для Windows 10/11 включено по умолчанию)
---
## NPM: сертификат не выпускается
### Симптомы
- В интерфейсе NPM сертификат в статусе `Error`
- Ошибка `Failed to issue certificate` в логах
### Проверка
1. Доступен ли домен из интернета:
```bash
dig ab.zailon.ru
```
2. Открыт ли порт 443 на роутере
3. Логи NPM:
```bash
docker logs npm 2>&1 | grep -i error
```
### Решение
- Убедиться, что DNS-запись `A` для домена указывает на внешний IP `188.73.191.202`
- Убедиться, что порт 443 на роутере проброшен на `192.168.1.201:443`
- Если используется Let's Encrypt, проверить, что не превышен лимит запросов
- Для внутренних доменов (без публичного доступа) использовать самоподписанные сертификаты или DNS-челлендж
---
## Docker: контейнер не запускается
### Симптомы
- `docker start` выдаёт ошибку
- Контейнер падает сразу после запуска
- В логах ошибки
### Проверка
1. Посмотреть логи контейнера:
```bash
docker logs <container_name>
```
2. Проверить, нет ли конфликта портов:
```bash
docker ps -a
ss -tulnwp | grep <port>
```
3. Проверить права на монтированные тома:
```bash
ls -la /path/to/mount
```
### Решение
- Исправить ошибки в конфигурации (обычно они видны в логах)
- Освободить занятый порт или изменить маппинг портов в `docker-compose.yml`
- Убедиться, что пользователь внутри контейнера имеет доступ к смонтированным папкам (UID/GID)
---
## Proxmox: ВМ не стартует
### Симптомы
- Ошибка `TASK ERROR: unable to open file '/etc/pve/nodes/olimp/qemu-server/205.conf'`
- Ошибка `kvm: no such device`
- ВМ зависает на старте
### Проверка
1. Статус служб Proxmox:
```bash
systemctl status pve-cluster pvedaemon qemu-server
```
2. Проверить наличие свободного места на хранилище:
```bash
pvesm status
```
3. Посмотреть логи:
```bash
journalctl -u pvedaemon -f
```
### Решение
- Если проблема с конфигурационным файлом восстановить из бэкапа (см. раздел 11)
- Если не хватает памяти остановить другие ВМ или увеличить ресурсы
- Если ошибка KVM убедиться, что виртуализация включена в BIOS и модули загружены:
```bash
lsmod | grep kvm
```
---
## Grafana: нет данных
### Симптомы
- Дашборды не отображают метрики
- Ошибка `No data` или `Data source not found`
### Проверка
1. Доступен ли источник данных (VictoriaMetrics, Loki):
```bash
curl http://192.168.1.208:8428/api/v1/query?query=up
curl http://192.168.1.208:3100/loki/api/v1/query_range?query={job="node_exporter"}
```
2. Работает ли Promtail на хостах:
```bash
systemctl status promtail
```
3. Проверить конфигурацию источников данных в Grafana (Settings → Data Sources)
### Решение
- Перезапустить VictoriaMetrics, Loki, Promtail
- Проверить сетевые доступы между `manage` и другими хостами (порты 8428, 3100, 9080)
- Убедиться, что файлы конфигурации Promtail корректны (пути к логам, метки)
---
## Immich: не загружаются фото
### Симптомы
- Ошибка загрузки в веб-интерфейсе или приложении
- Файлы не появляются в библиотеке
### Проверка
1. Статус контейнеров Immich:
```bash
docker ps | grep immich
```
2. Логи сервера:
```bash
docker logs immich_server | tail -50
```
3. Доступность хранилища:
```bash
df -h /mnt/immich
```
### Решение
- Проверить права на папку загрузок: должны быть доступны пользователю внутри контейнера (обычно 1000:1000)
- Убедиться, что база данных PostgreSQL работает и доступна
- Проверить конфигурацию обратного прокси (NPM) не обрезает ли большие файлы (должно быть `client_max_body_size 2000m`)
---
## Jellyfin: аппаратное ускорение не работает
### Симптомы
- Высокая загрузка CPU при воспроизведении
- В логах ошибки `Failed to open VAAPI device`
### Проверка
1. Наличие устройства `/dev/dri` в контейнере:
```bash
docker exec jellyfin ls -la /dev/dri
```
2. Установлены ли драйверы на хосте:
```bash
apt list --installed | grep -E 'intel-media-va-driver|mesa-va-drivers'
```
### Решение
- Добавить в `docker-compose.yml`:
```yaml
devices:
- /dev/dri:/dev/dri
```
- Установить драйверы на хосте `media`:
```bash
apt install intel-media-va-driver-non-free
```
- Включить аппаратное ускорение в настройках Jellyfin (Администрирование → Воспроизведение → Аппаратное ускорение → VAAPI)
---
## Общие проверки
Если проблема не локализована, выполните следующие шаги:
1. **Логи** первое, что нужно смотреть:
- Системные: `journalctl -xe`
- Docker: `docker logs <container>`
- Samba: `tail -f /var/log/samba/log.smbd`
2. **Сеть** проверить доступность и открытые порты:
```bash
ping 192.168.1.200
traceroute 192.168.1.200
nmap -p 22,80,443 192.168.1.201
```
3. **Диски** проверить свободное место:
```bash
df -h
pvesm status # на Proxmox
```
4. **Файрвол** временно отключить для теста:
```bash
ufw disable # только для теста!
```
5. **Перезагрузка** иногда помогает:
```bash
reboot
```
---
**Связанные разделы:**
- [Сеть и доступ](04-network.md)
- [Samba файловые шары](05-samba.md)
- [Проксирование и SSL (NPM)](07-proxy-ssl.md)
- [Мониторинг и логирование](08-monitoring.md)