CallBox Production Infrastructure Overview
Дата: 2026-01-23 Проект: CallBox — веб-интерфейс управления колл-центром на базе Asterisk
Серверы
| Сервер | Внутренний IP | Внешний IP | CPU | RAM | Storage | ОС | Роль |
|---|---|---|---|---|---|---|---|
| lb-1 | 10.10.19.10 | 188.130.238.189 | 2 | 4 GB | 44 GB | Ubuntu 24.04.3 LTS | Load Balancer Primary |
| lb-2 | 10.10.19.11 | 92.47.181.152 | 2 | 2 GB | 22 GB | Ubuntu 24.04.3 LTS | Load Balancer Secondary |
| web-1 | 10.10.19.21 | — | 4 | 8 GB | 68 GB | Ubuntu 24.04.3 LTS | Application Server |
| web-2 | 10.10.19.22 | — | 4 | 8 GB | 68 GB | Ubuntu 24.04.3 LTS | Application Server |
| db-1 | 10.10.19.31 | — | 4 | 16 GB | 216 GB | Ubuntu 24.04.3 LTS | PostgreSQL Primary |
| db-2 | 10.10.19.32 | — | 4 | 16 GB | 176 GB | Ubuntu 24.04.3 LTS | PostgreSQL Replica |
| redis-1 | 10.10.19.40 | — | 2 | 4 GB | 24 GB | Ubuntu 24.04.3 LTS | Redis Master |
| voip-1 | 10.10.19.51 | — | 8 | 16 GB | 74 GB | Ubuntu 24.04.3 LTS | Asterisk Primary |
| voip-2 | 10.10.19.52 | — | 8 | 16 GB | 41 GB | Ubuntu 24.04.3 LTS | Asterisk Secondary |
| mon-1 | 10.10.19.60 | — | 2 | 4 GB | 104 GB | Ubuntu 24.04.3 LTS | Monitoring |
Установленное ПО
| Сервер | ПО и версии |
|---|---|
| lb-1, lb-2 | nginx 1.24.0, node_exporter, iptables |
| web-1, web-2 | Docker 29.1.5, Redis Sentinel 7.x, node_exporter |
| db-1, db-2 | PostgreSQL 16.11, Patroni 4.1.0, etcd 3.x, node_exporter |
| redis-1 | Redis 7.0.15, Redis Sentinel 7.0.15, node_exporter |
| voip-1, voip-2 | Asterisk 20.17.0, ODBC PostgreSQL, node_exporter |
| mon-1 | Prometheus (Docker), Grafana 12.3.1, etcd 3.x, Docker 29.1.5, node_exporter |
Сетевая схема
INTERNET
│
┌───────────────────┴───────────────────┐
│ │
┌─────────▼─────────┐ ┌─────────────▼─────────┐
│ lb-1 │ │ lb-2 │
│ 188.130.238.189 │ │ 92.47.181.152 │
│ nginx + SIP NAT │ │ nginx + SIP NAT │
└─────────┬─────────┘ └─────────────┬─────────┘
│ 10.10.19.10 │ 10.10.19.11
│ │
══════════════╪═══════════════════════════════════════╪═══════════════════
│ 10.10.19.0/24 │
══════════════╪═══════════════════════════════════════╪═══════════════════
│ │
└───────────────────┬───────────────────┘
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ web-1/2 │ │ db-1/2 │ │ voip-1/2│
│ .21/.22 │──────────────│ .31/.32 │──────────────│ .51/.52 │
│ Docker │ │PostgreSQL│ │Asterisk │
└────┬────┘ └────┬────┘ └─────────┘
│ │
│ ▼
│ ┌─────────┐
└──────────────────►│ redis-1 │
│ .40 │
└─────────┘
┌─────────┐
│ mon-1 │
│ .60 │
│Prometheus│
│ Grafana │
└─────────┘
Кластеры и репликация
PostgreSQL (Patroni + etcd)
- Primary: db-1 (10.10.19.31)
- Replica: db-2 (10.10.19.32) — streaming replication
- etcd: db-1, db-2, mon-1 (порт 2379)
- Failover: автоматический через Patroni
Redis (Sentinel)
- Master: redis-1 (10.10.19.40:6379)
- Sentinel nodes: redis-1, web-1, web-2 (порт 26379)
- Cluster name: callbox-redis
Порты и сервисы
| Порт | Протокол | Сервис | Серверы |
|---|---|---|---|
| 22 | TCP | SSH | Все |
| 80/443 | TCP | HTTP/HTTPS | lb-1, lb-2 |
| 3000 | TCP | Frontend / Grafana | web-1/2, mon-1 |
| 5060 | UDP | SIP | lb-1, lb-2 → voip-1 |
| 5038 | TCP | Asterisk AMI | voip-1, voip-2 |
| 5432 | TCP | PostgreSQL | db-1, db-2 |
| 6379 | TCP | Redis | redis-1 |
| 8000 | TCP | Backend API | web-1, web-2 |
| 9090 | TCP | Prometheus | mon-1 |
| 9100 | TCP | node_exporter | Все |
| 10000-20000 | UDP | RTP | lb-1, lb-2 → voip-1 |
SSH доступ
# Jump-host
ssh sysadmin@188.130.238.189 # lb-1
# Внутренние серверы (через lb-1)
ssh 10.10.19.21 # web-1
ssh 10.10.19.31 # db-1
# и т.д.
Ключевые пути
| Сервер | Путь | Назначение |
|---|---|---|
| lb-1 | /opt/scripts/deploy-callbox.sh | Скрипт деплоя |
| lb-1 | /opt/git/callbox.git | Git origin |
| web-1/2 | /opt/callbox/ | Код приложения |
| voip-1/2 | /etc/asterisk/ | Конфигурация Asterisk |
| voip-1 | /var/spool/asterisk/monitor/ | Записи разговоров |
Мониторинг
- Grafana: https://mon.b2g.kz
- Prometheus: http://10.10.19.60:9090 (внутренняя сеть)
- node_exporter: порт 9100 на всех серверах
Деплой
АКТУАЛЬНО: Деплой выполняется через Ansible с mon-1. См. devops-summary.md. Скрипт
deploy-callbox.sh— legacy.
Ansible (актуальный способ):
ssh sysadmin@188.130.238.189 "ssh 10.10.19.60 'cd /opt/ansible/callbox-ansible && ansible-playbook playbooks/deploy.yml'"
Legacy скрипт (если Ansible недоступен):
# На lb-1
/opt/scripts/deploy-callbox.sh
# Подтвердить: yes
Скрипт выполняет на web-1 и web-2:
1. git fetch && git reset --hard origin/master
2. docker compose down && build && up -d
Детальная документация
servers.md— подробное описание каждого сервераnetwork.md— сетевая архитектура, firewall-правилаservices.md— описание всех сервисовbackup.md— резервное копированиеdevops-summary.md— краткая справка для операций