Руководство администратора

Руководство по администрированию on-premise развёртывания Metriqa: управление пользователями, тарифами, бэкапы, мониторинг.

Админ-панель

Доступна по адресу /admin.html. Логин и пароль задаются в файле .env через переменные ADMIN_LOGIN и ADMIN_PASSWORD. Авторизация выполняется через отдельный JWT-токен со сроком действия 1 час.

Разделы админ-панели

Дашборд

Общая статистика: количество пользователей, активные за неделю, распределение по тарифам, MRR, ARPU, выручка за месяц, количество событий.

Пользователи

Список всех пользователей с фильтрацией по email/имени и тарифу. Действия:

Платежи

История всех транзакций через ЮKassa. График выручки по месяцам. Фильтр по статусу (успешные / ошибки / в обработке).

Email-кампании

Статистика отправок: количество писем по типам, количество отписок, лог ошибок отправки. Кнопка «Запустить все триггеры» — ручной запуск проверки для тестирования.

Система

Health-check всех сервисов (PostgreSQL, ClickHouse, Redis). Размеры таблиц в обеих БД.

Управление организациями и тарифами

Тарифные планы

ТарифСобытия/месПользователейRetentionЦена
Старт10 000330 дней0 ₽
Рост1 000 00010365 дней4 900 ₽/мес
БизнесБезлимит100730 дней14 900 ₽/мес

Изменение лимитов

Лимиты тарифов хранятся в таблице plan_limits. Для изменения:

docker compose exec postgres psql -U metriqa -d metriqa
UPDATE plan_limits SET max_events_per_month = 20000 WHERE plan = 'free';

Резервное копирование

PostgreSQL

Создание дампа базы:

docker compose exec -T postgres pg_dump -U metriqa metriqa | \
  gzip > backup_$(date +%Y%m%d).sql.gz

Восстановление:

gunzip -c backup_20260514.sql.gz | \
  docker compose exec -T postgres psql -U metriqa -d metriqa

ClickHouse

Бэкап через нативную команду BACKUP:

docker compose exec clickhouse clickhouse-client \
  --query "BACKUP DATABASE metriqa TO Disk('backups', 'metriqa_$(date +%Y%m%d).zip')"

Автоматизация через cron

Добавьте в crontab на хосте:

# Ежедневно в 3:00 — бэкап PostgreSQL
0 3 * * * cd /opt/metriqa && docker compose exec -T postgres pg_dump -U metriqa metriqa | gzip > /backups/pg_$(date +\%Y\%m\%d).sql.gz

# Еженедельно — бэкап ClickHouse
0 4 * * 0 cd /opt/metriqa && docker compose exec clickhouse clickhouse-client --query "BACKUP DATABASE metriqa TO Disk('backups', 'ch_$(date +\%Y\%m\%d).zip')"

# Очистка бэкапов старше 30 дней
0 5 * * * find /backups -name "*.gz" -mtime +30 -delete

Мониторинг

Health-check

curl http://localhost/health
# Ожидаемый ответ: ok

Логи

# Все сервисы
docker compose logs -f --tail=100

# Конкретный сервис
docker compose logs -f dashboard

Метрики ресурсов

docker stats

Безопасность

Смена паролей

После установки обязательно смените:

Файрвол

Открыты должны быть только порты 80 и 443 (входящие). Остальные порты (PostgreSQL 5432, ClickHouse 8123/9000, Redis 6379) должны быть закрыты для внешнего доступа.

# Пример для iptables
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 5432 -j DROP
iptables -A INPUT -p tcp --dport 6379 -j DROP
iptables -A INPUT -p tcp --dport 8123 -j DROP

Регулярное обновление

Раз в месяц проверяйте наличие обновлений:

docker compose pull
docker compose up -d

Лицензирование

Metriqa поставляется по проприетарной лицензии ООО «Кайяник групп». Условия лицензии — см. правовую информацию. По вопросам корпоративных лицензий: email защищён.