- Запросить .env файл и подложить его в папку example
- Запустить скрипт setup.sh, который авторизуется в docker registry и настраивает компоненты
- Передать в Спутник - IP или доменный адрес вашего RabbitMQ. Логин и пароль пользователя для доступа к federation plugin указывается в .env, если вы его поменяли, его так же нужно передать.
После выполнения этих операций, панель может обращаться к IP или доменному адресу вашего HAProxy Эндпоинты будут выглядеть так:
- http:// адрес HAProxy :80 - RTC
- http:// адрес HAProxy :81 - FS
- http:// адрес HAProxy :82 - CS
- http:// адрес HAProxy :83 - API
Для проверки, можно запустить скрипт:
[ $(curl -s localhost:80/liveness -w "%{http_code}" -o /dev/null) == "200" ] && echo RTC Ok || echo RTC not Ok
[ $(curl -s localhost:81 -w "%{http_code}" -o /dev/null) == "403" ] && echo FS Ok || echo FS not Ok
[ $(curl -s localhost:82 -w "%{http_code}" -o /dev/null) == "404" ] && echo CS Ok || echo CS not Ok
[ $(curl -s localhost:83 -w "%{http_code}" -o /dev/null) == "200" ] && echo API Ok || echo API not Ok
Все значения для настройки передаются в файле .env, но если необходимо, можно запустить контейнер с другими настройками, указав их в секции environment
rtc:
image: sputnik-repo
environment:
- MQ_HOST=${RABBITMQ_HOST}
- MQ_USER=${RABBITMQ_USERNAME}
- MQ_PASSWORD=${RABBITMQ_PASSWORD}
- RTC_IP_ADDRESS=${IP_FOR_SIP}
- RTC_NS_ADDRESS="77.88.8.8,77.88.8.1"
- RTP_START_PORT=4000
- SIP_PORT=5440
- PJSIP_LOG_LEVEL=6
- GRAPHQL_URL=http://${HAPROXY_IP}:83/query
- GRAPHQL_TOKEN=${GRAPHQL_TOKEN}
ports:
- "8080:8080" # Metrics
- "8010:8010" # API
healthcheck:
test: curl --fail http://localhost:8010/liveness || exit 1
interval: 10s
timeout: 10s
Приложение RTC отдаёт свои метрики, в формате строки Prometheus, на порту 8080/metrics, их список приведён ниже:
- cgo_calls_total (counter) Number of cgo calls.
- rtc_active_calls_total (gauge) Number of currently active SIP calls.
- rtc_active_intercoms_total (gauge) Number of currently online intercoms.
- rtc_analog_calls_duration (gauge) Average duration of SIP calls.
- rtc_cluster_call_duration (gauge) Average durations of cluster calls.
- rtc_failed_analog_calls (counter) Number of failed analog calls.
- rtc_failed_cluster_calls (counter) Number of failed cluster calls
- rtc_failed_sip_calls (counter) Number of failed SIP calls.
- rtc_rmq_fatal_errors (counter) The number of fatal errors occurred
- rtc_rmq_msgs_consumed (counter) The number of received messages
- rtc_rmq_msgs_published (counter) The number of published messages per
- rtc_sip_calls_duration (gauge) Average duration of SIP calls.
- rtc_speak_analog_calls (counter) Number of connected SIP calls.
- rtc_speak_cluster_calls (counter) Number of connected cluster calls.
- rtc_speak_sip_calls (counter) Number of connected SIP calls.
- rtc_started_analog_calls (counter) Number of started analog calls.
- rtc_started_cluster_calls (counter) Number of started cluster calls.
- rtc_started_sip_calls (counter) Number of started SIP calls.
- Для того, что бы автоматически следить за появлением свежих версий RTC и их обновлением, рекомендуется использовать приложение watchtower или аналоги, в папке example, приведён пример использования.