Files
ripe-cidr-collector/docs/summary-production-deploy.md
ayurishchevandClaude Sonnet 5 7e3b4526f3 Record the production deployment on port 18000
Plan and summary of the containerized deployment (six ASNs, three FQDNs,
token in .env, published on all interfaces, backups on the volume) and the
updated analysis. The .env file stays out of git.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 11:45:46 +03:00

4.8 KiB

Итоги: боевое развёртывание в контейнерах (порт 18000)

План: docs/plan-production-deploy.md. Предшествовал тестовый запуск docs/summary-real-data-run.md.

Параметры развёртывания

  • Адрес: http://192.168.5.9:18000 (порт опубликован на всех интерфейсах хоста, доступ открыт для всех в доверенном контуре, TLS нет; риск 5 принят). Файрвол на хосте входящий трафик не фильтрует (INPUT ACCEPT).
  • Токен: RIPE_API_TOKEN (64 hex-символа, сгенерирован) записан в /opt/lvraid/claude/ripe_cidr_collector/.env (права 600, файл в .gitignore); там же API_PORT=18000 и TZ=Europe/Moscow (часовой пояс хоста: расписания считаются по московскому времени). Смена токена: изменить .env и выполнить docker compose up -d.
  • Контейнеры: проект Compose по умолчанию (ripe_cidr_collector), сервисы api и collector, образ ripe-cidr-collector, том ripe_cidr_collector_ripe_data, перезапуск unless-stopped (Docker на хосте включён при загрузке).
  • Данные: в том скопированы копии реальных config.json (6 ASN: 62014, 62041, 59930, 44907, 211157, 11917; 3 FQDN), data.json, fqdn_data.json; исходные файлы проекта не менялись (контрольные суммы совпали).
  • Расписание: ASN */15 * * * *, FQDN 0 3 * * *, копия базы 30 4 * * * (по умолчанию), копии на том же томе (/data/backups, 7 штук), отдельно не выносятся (риск 10 принят).

Результаты проверки

Проверка Итог
Сервисы api и collector healthy, порт 0.0.0.0:18000, часовой пояс контейнеров MSK.
Миграция Схема версии 3, 24 префикса и 4 значения FQDN (28 строк) без потерь, оригиналы в томе переименованы, журнал пуст.
Первый сбор (POST /collect, реальные RIPEstat и DNS) 6 ASN из 6 успешно, 3 FQDN из 3 успешно; +18 префиксов и +3 строки IP; сбоев нет.
Состояние источников /sources: у всех источников 0 сбоев; AS11917 отвечает без префиксов (addresses: 0, успех), как и в данных февраля.
Diff С момента миграции 19 добавлений, 0 удалений; все старые значения подтверждены RIPE. AS62014 теперь анонсирует и прежние префиксы, и их более специфичные части (91.108.16.0/23, 91.108.18.0/23, 91.108.56.0/24, 91.108.57.0/24): для потребителей есть смысл использовать aggregate=true.
Доступ извне По адресу хоста: /health 200, /addresses 45 значений; запись без токена и с неверным токеном - 401.
Штатное расписание Плановый запуск ASN в 11:45:00: 6 из 6, +0/-0, ошибок нет; следующий 12:00.
Логи Ошибок и трейсбеков нет.

Что наблюдать

  • Завтра 03:00: первый плановый сбор FQDN; 04:30: первая плановая копия базы (/health -> jobs.backup, каталог /data/backups).
  • GET /health (status, sources.*.failing) и GET /sources; порог сбоев source_failure_threshold = 3.
  • google.com (адрес из старого файла, в конфигурации его нет) истечёт по TTL через 90 дней.
  • Размер базы и журнала (после миграции: десятки КБ).

Замечания

  • Токен хранится открытым текстом в .env на хосте и передаётся по HTTP (доверенный контур, риск 5); один общий токен без ротации и аудита (риск 6).
  • Копии на том же томе не защищают от потери тома (риск 10).
  • Управление: docker compose ps, docker compose logs -f collector, docker compose down (данные остаются в томе), docker compose up -d; обновление после изменений кода: docker compose build && docker compose up -d.