Skip to content

Просмотр логов ​

Логи в реальном времени ​

bash
# Следить за логами бота (live)
docker compose logs -f remnawave-telegram-shop-bot

# Следить за логами БД
docker compose logs -f postgres

# Оба одновременно
docker compose logs -f

Исторические логи ​

bash
# Последние 100 строк
docker compose logs --tail 100 remnawave-telegram-shop-bot

# За определенный временной период
docker compose logs \
  --since 2024-11-10T10:00:00 \
  --until 2024-11-10T11:00:00 \
  remnawave-telegram-shop-bot

# Все доступные логи
docker compose logs remnawave-telegram-shop-bot > /tmp/bot-logs.txt

Уровни логирования ​

Логи ошибок ​

bash
# Показать только ошибки
docker compose logs remnawave-telegram-shop-bot | grep -i error

# С контекстом
docker compose logs remnawave-telegram-shop-bot | grep -A 5 -B 5 "error"

Частые ошибки:

  • connection refused - Сервис недоступен
  • permission denied - Ошибка доступа
  • timeout - Медленный ответ
  • invalid token - Ошибка аутентификации

Логи предупреждений ​

bash
docker compose logs remnawave-telegram-shop-bot | grep -i warning

Информационные логи ​

bash
docker compose logs remnawave-telegram-shop-bot | grep -i "info\|started"

Частые паттерны логов ​

При запуске ​

[INFO] Starting bot
[INFO] Connecting to database
[INFO] Database connection established
[INFO] Loading configuration
[INFO] Bot ready for commands

Обработка платежей ​

[INFO] Payment received from user 123456789
[INFO] Processing payment via yookassa
[INFO] Activating subscription for user
[INFO] Subscription activated successfully

Ошибки ​

[ERROR] Failed to connect to database: connection refused
[ERROR] Invalid API token
[ERROR] User not found in Remnawave
[ERROR] Webhook signature verification failed

Фильтрация логов ​

По компоненту ​

bash
# Логи БД
docker compose logs remnawave-telegram-shop-bot | grep -i "database\|db\|postgres"

# Логи платежей
docker compose logs remnawave-telegram-shop-bot | grep -i "payment\|yookassa\|crypto\|stars"

# Логи пользователей
docker compose logs remnawave-telegram-shop-bot | grep -i "user\|subscription"

# Логи API
docker compose logs remnawave-telegram-shop-bot | grep -i "api\|remnawave"

По серьезности ​

bash
# Ошибки
docker compose logs remnawave-telegram-shop-bot | grep ERROR

# Предупреждения
docker compose logs remnawave-telegram-shop-bot | grep WARNING

# Информация
docker compose logs remnawave-telegram-shop-bot | grep INFO

По пользователю ​

bash
# Конкретный пользователь
docker compose logs remnawave-telegram-shop-bot | grep "123456789"

# Недавняя активность
docker compose logs remnawave-telegram-shop-bot | grep -i "user" | tail -20

Отладка конкретных проблем ​

Отладка БД ​

bash
# Подключитесь напрямую
docker compose exec postgres \
  psql -U remnawave -d remnawave

# Проверьте соединения
SELECT * FROM pg_stat_activity;

# Список таблиц
\dt

# Проверьте конкретную таблицу
SELECT COUNT(*) FROM subscriptions;

Отладка платежей ​

bash
# Просмотрите логи платежей
docker compose logs remnawave-telegram-shop-bot | grep -A 10 "payment"

# Проверьте статус транзакции
docker compose logs remnawave-telegram-shop-bot | grep "transaction\|order"

# Ответы API
docker compose logs remnawave-telegram-shop-bot | grep "response\|status"

Отладка действий пользователей ​

bash
# Пользователь запустил бота
docker compose logs remnawave-telegram-shop-bot | grep "user.*start\|/start"

# Пользователь сделал платеж
docker compose logs remnawave-telegram-shop-bot | grep "user.*payment"

# Пользователь оформил подписку
docker compose logs remnawave-telegram-shop-bot | grep "subscription.*created"

Продвинутая отладка ​

Увеличьте уровень логирования ​

Отредактируйте docker-compose.yaml:

yaml
environment:
  LOG_LEVEL: DEBUG

Перезагрузитесь:

bash
docker compose up -d

Сохранение логов в файл ​

bash
# Непрерывное логирование
docker compose logs -f remnawave-telegram-shop-bot > /var/log/bot.log 2>&1 &

# Следите за файлом
tail -f /var/log/bot.log

Ротация логов ​

bash
# Создайте конфиг logrotate
sudo tee /etc/logrotate.d/remnawave-bot > /dev/null <<EOF
/var/log/bot.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
}
EOF

Сохранение логов для анализа ​

bash
# Создайте архив логов
docker compose logs remnawave-telegram-shop-bot > logs_$(date +%Y%m%d).txt
gzip logs_*.txt

# Сохраните на внешнее хранилище
scp logs_*.txt.gz backup@server:/backups/

Инструменты анализа логов ​

Поиск ошибок ​

bash
docker compose logs remnawave-telegram-shop-bot | \
  grep -E "ERROR|FATAL|failed" | \
  wc -l  # Подсчитайте ошибки

Анализ по временной шкале ​

bash
# Группируйте по часам
docker compose logs remnawave-telegram-shop-bot | \
  grep ERROR | \
  awk '{print $1}' | \
  sort | uniq -c

Анализ производительности ​

bash
# Найдите медленные операции
docker compose logs remnawave-telegram-shop-bot | \
  grep "duration\|time" | \
  sort -k3 -nr | head -10

Связанные логи ​

Логи системы Docker ​

bash
# Логи демона Docker
docker logs $(docker compose ps -q remnawave-telegram-shop-bot) -f

# События контейнера
docker events --filter type=container

Системные логи ​

bash
# Логи Linux системы
journalctl -u docker -f

# Проверьте свободное место
df -h

Безопасность логов ​

⚠️ Важно: Логи могут содержать:

  • ID пользователей
  • Детали транзакций
  • API ключи (если неправильно настроено)
  • Чувствительную системную информацию

Лучшие практики:

  • ✅ Ограничьте доступ к логам
  • ✅ Регулярно ротируйте логи
  • ✅ Архивируйте старые логи
  • ✅ Никогда не делитесь логами публично с ключами
  • ❌ Не логируйте пароли/токены

Отладка с помощью логов ​

Проблема: Бот не отвечает ​

bash
docker compose logs remnawave-telegram-shop-bot | grep -E "ERROR|failed|starting"

Проблема: Платежи не работают ​

bash
docker compose logs remnawave-telegram-shop-bot | grep -i "payment\|yookassa"

Проблема: Медленная работа ​

bash
docker compose logs remnawave-telegram-shop-bot | grep "duration\|slow\|timeout"

Проблема: Ошибки БД ​

bash
docker compose logs postgres | grep -E "ERROR|failed"

Когда собирать логи ​

Перед открытием issue/обращением в поддержку:

  1. Воспроизведите проблему
  2. Соберите логи: docker compose logs > issue.log
  3. Включите последние 50-100 строк
  4. Удалите чувствительные данные
  5. Опишите предпринятые шаги
  6. Включите конфигурацию (без секретов)