Руководство администратора
Руководство по администрированию on-premise развёртывания Metriqa: управление пользователями, тарифами, бэкапы, мониторинг.
Админ-панель
Доступна по адресу /admin.html. Логин и пароль задаются в файле .env через переменные ADMIN_LOGIN и ADMIN_PASSWORD. Авторизация выполняется через отдельный JWT-токен со сроком действия 1 час.
Разделы админ-панели
Дашборд
Общая статистика: количество пользователей, активные за неделю, распределение по тарифам, MRR, ARPU, выручка за месяц, количество событий.
Пользователи
Список всех пользователей с фильтрацией по email/имени и тарифу. Действия:
- Смена тарифа вручную (без оплаты)
- Блокировка/разблокировка пользователя
- Просмотр количества событий в текущем месяце
Платежи
История всех транзакций через ЮKassa. График выручки по месяцам. Фильтр по статусу (успешные / ошибки / в обработке).
Email-кампании
Статистика отправок: количество писем по типам, количество отписок, лог ошибок отправки. Кнопка «Запустить все триггеры» — ручной запуск проверки для тестирования.
Система
Health-check всех сервисов (PostgreSQL, ClickHouse, Redis). Размеры таблиц в обеих БД.
Управление организациями и тарифами
Тарифные планы
| Тариф | События/мес | Пользователей | Retention | Цена |
|---|---|---|---|---|
| Старт | 10 000 | 3 | 30 дней | 0 ₽ |
| Рост | 1 000 000 | 10 | 365 дней | 4 900 ₽/мес |
| Бизнес | Безлимит | 100 | 730 дней | 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
Безопасность
Смена паролей
После установки обязательно смените:
POSTGRES_PASSWORD— пароль базы PostgreSQLCLICKHOUSE_PASSWORD— пароль ClickHouseJWT_SECRET— секрет JWT-токенов (минимум 32 символа)ADMIN_PASSWORD— пароль админ-панели
Файрвол
Открыты должны быть только порты 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 защищён.