Перейти к содержимому

Логи и отладка

Окно терминала
# Следить за логами бота (live)
docker compose logs -f remnawave-telegram-shop-bot
# Следить за логами БД
docker compose logs -f postgres
# Оба одновременно
docker compose logs -f
Окно терминала
# Последние 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
Окно терминала
# Показать только ошибки
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 - Ошибка аутентификации
Окно терминала
docker compose logs remnawave-telegram-shop-bot | grep -i warning
Окно терминала
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
Окно терминала
# Логи БД
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"
Окно терминала
# Ошибки
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
Окно терминала
# Конкретный пользователь
docker compose logs remnawave-telegram-shop-bot | grep "123456789"
# Недавняя активность
docker compose logs remnawave-telegram-shop-bot | grep -i "user" | tail -20
Окно терминала
# Подключитесь напрямую
docker compose exec postgres \
psql -U remnawave -d remnawave
# Проверьте соединения
SELECT * FROM pg_stat_activity;
# Список таблиц
\dt
# Проверьте конкретную таблицу
SELECT COUNT(*) FROM subscriptions;
Окно терминала
# Просмотрите логи платежей
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"
Окно терминала
# Пользователь запустил бота
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:

environment:
LOG_LEVEL: DEBUG

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

Окно терминала
docker compose up -d
Окно терминала
# Непрерывное логирование
docker compose logs -f remnawave-telegram-shop-bot > /var/log/bot.log 2>&1 &
# Следите за файлом
tail -f /var/log/bot.log
Окно терминала
# Создайте конфиг logrotate
sudo tee /etc/logrotate.d/remnawave-bot > /dev/null <<EOF
/var/log/bot.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
}
EOF
Окно терминала
# Создайте архив логов
docker compose logs remnawave-telegram-shop-bot > logs_$(date +%Y%m%d).txt
gzip logs_*.txt
# Сохраните на внешнее хранилище
scp logs_*.txt.gz backup@server:/backups/
Окно терминала
docker compose logs remnawave-telegram-shop-bot | \
grep -E "ERROR|FATAL|failed" | \
wc -l # Подсчитайте ошибки
Окно терминала
# Группируйте по часам
docker compose logs remnawave-telegram-shop-bot | \
grep ERROR | \
awk '{print $1}' | \
sort | uniq -c
Окно терминала
# Найдите медленные операции
docker compose logs remnawave-telegram-shop-bot | \
grep "duration\|time" | \
sort -k3 -nr | head -10
Окно терминала
# Логи демона Docker
docker logs $(docker compose ps -q remnawave-telegram-shop-bot) -f
# События контейнера
docker events --filter type=container
Окно терминала
# Логи Linux системы
journalctl -u docker -f
# Проверьте свободное место
df -h

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

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

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

  • ✅ Ограничьте доступ к логам
  • ✅ Регулярно ротируйте логи
  • ✅ Архивируйте старые логи
  • ✅ Никогда не делитесь логами публично с ключами
  • ❌ Не логируйте пароли/токены
Окно терминала
docker compose logs remnawave-telegram-shop-bot | grep -E "ERROR|failed|starting"
Окно терминала
docker compose logs remnawave-telegram-shop-bot | grep -i "payment\|yookassa"
Окно терминала
docker compose logs remnawave-telegram-shop-bot | grep "duration\|slow\|timeout"
Окно терминала
docker compose logs postgres | grep -E "ERROR|failed"

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

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