uploader-bot/docs/REMOTE_DIAGNOSIS_GUIDE.md

139 lines
4.2 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.

# Руководство по удаленной диагностике MY Network сервера
## Проблема
- SSH недоступен на порту 22 (Connection refused)
- Nginx работает на порту 80, но возвращает 404 для всех запросов
- Приложения на портах 3000, 5000, 8080 недоступны
## Диагностика на сервере (выполнить локально)
### 1. Проверить статус служб
```bash
# Проверить статус Docker
sudo systemctl status docker
# Проверить статус MyUploader service
sudo systemctl status myuploader
# Проверить запущенные контейнеры
sudo docker ps -a
# Проверить логи контейнеров
sudo docker logs uploader-bot-app-1
sudo docker logs uploader-bot-postgres-1
sudo docker logs uploader-bot-nginx-1
```
### 2. Проверить сетевые соединения
```bash
# Проверить какие порты слушает система
sudo netstat -tulpn | grep LISTEN
# Проверить статус nginx
sudo nginx -t
sudo systemctl status nginx
# Проверить конфигурацию nginx
sudo cat /etc/nginx/sites-enabled/default
```
### 3. Проверить Docker Compose
```bash
# Перейти в директорию проекта
cd /home/myuploader/my-uploader-bot
# Проверить статус compose
sudo docker-compose -f docker-compose.production.yml ps
# Посмотреть логи всех сервисов
sudo docker-compose -f docker-compose.production.yml logs --tail=50
# Перезапустить сервисы
sudo docker-compose -f docker-compose.production.yml down
sudo docker-compose -f docker-compose.production.yml up -d
```
### 4. Проверить SSH
```bash
# Проверить статус SSH
sudo systemctl status ssh
# Проверить конфигурацию SSH
sudo cat /etc/ssh/sshd_config | grep -E "Port|PasswordAuthentication|PubkeyAuthentication"
# Перезапустить SSH если нужно
sudo systemctl restart ssh
```
### 5. Проверить брандмауэр
```bash
# Проверить статус UFW
sudo ufw status
# Если UFW активен, проверить правила
sudo ufw status numbered
# Разрешить SSH (если заблокирован)
sudo ufw allow 22/tcp
```
### 6. Быстрое восстановление
```bash
# Если сервисы не работают, запустить быстрое восстановление
cd /home/myuploader/my-uploader-bot
sudo ./diagnose.sh
# Проверить health API приложения
curl -I http://localhost:3000/api/health
curl -I http://localhost:5000/api/health
```
## Возможные решения
### Проблема с nginx proxy
Если nginx возвращает 404, проверить файл `/etc/nginx/sites-enabled/default`:
```bash
sudo cat /etc/nginx/sites-enabled/default
```
Должен содержать:
```nginx
location /api/ {
proxy_pass http://localhost:3000/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
```
### Проблема с Docker
Если контейнеры не запущены:
```bash
cd /home/myuploader/my-uploader-bot
sudo docker-compose -f docker-compose.production.yml up -d --build
```
### Проблема с SSH
Если SSH заблокирован файрволлом:
```bash
sudo ufw allow 22/tcp
sudo systemctl restart ssh
```
## Команды для отправки результатов
После выполнения диагностики, отправьте результаты:
```bash
# Сохранить всю диагностику в файл
echo "=== DOCKER STATUS ===" > diagnosis.txt
sudo docker ps -a >> diagnosis.txt
echo "=== DOCKER LOGS ===" >> diagnosis.txt
sudo docker-compose -f docker-compose.production.yml logs --tail=20 >> diagnosis.txt
echo "=== NGINX STATUS ===" >> diagnosis.txt
sudo systemctl status nginx >> diagnosis.txt
echo "=== SSH STATUS ===" >> diagnosis.txt
sudo systemctl status ssh >> diagnosis.txt
echo "=== NETWORK PORTS ===" >> diagnosis.txt
sudo netstat -tulpn | grep LISTEN >> diagnosis.txt
# Просмотреть файл
cat diagnosis.txt