289 lines
11 KiB
Markdown
289 lines
11 KiB
Markdown
# 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) |