How to Dev

도커 기반의 jitsi-meet 그라파나 대시보드 구성

거울나라 2020. 12. 28. 14:46

도커 기반 jitsi 대시보드

이전 포스트에서 도커기반의 jitsi-meet를 설치 후 그라파나 대시보드 구성

softmagic.tistory.com/92

 

jitsi meet 설치 가이드(docker 기반 퀵 가이드)

jitssi meet 설치 가이드 (도커 기반) Jitsi는 웹 플랫폼, Windows, Linux, macOS, iOS 및 Android 용 무료 오픈 소스 다중 플랫폼 음성, 화상 회의 및 인스턴트 메시징 애플리케이션 모음 라이선스 : Apache Lice..

softmagic.tistory.com

 

  • 그라파나 대시보드를 구성하기 위해서는 jits-meet에서 jvb의 포트 8080을 추가
  • .env 파일에서 JVB_ENABLE_APIS=rest,colibri 추가

(동일 서버에서) curl 명령으로 해당 포트 및 정보 수신 확인

```
curl -v http://0.0.0.0:8080/colibri/stats # 다른 서버에서 그라파나 설치시 IP 변경 
```

아래와 같은 경우 설정을 다시 확인해야 함

```
*   Trying 0.0.0.0...
* TCP_NODELAY set
* connect to 0.0.0.0 port 8080 failed: Connection refused
* Failed to connect to 0.0.0.0 port 8080: Connection refused
* Closing connection 0
curl: (7) Failed to connect to 0.0.0.0 port 8080: Connection refused
```

그라파나 이미지 다운로드 및 실행

  1. Grafana, Telegraf, Influxdb가 포함된 도커 이미지 사용

    docker pull samuelebistoletti/docker-statsd-influxdb-grafana
  2. 그라파나 도커 이미지 실행

    docker run --ulimit nofile=66000:66000 -d -it --name docker-statsd-influxdb-grafana -p 3003:3003 -p 3004:8888 -p 8086:8086 -p 22022:22 -p 8125:8125/udp samuelebistoletti/docker-statsd-influxdb-grafana:latest
  3. URL로 이미지 접속
    http://0.0.0.0:3003
    기본 계정 및 비밀 번호 : root/root

jitsi 설정

  1. 도커 컨테이너에 접속 및 telegraf.conf 설정

    docker exec -it docker-statsd-influxdb-grafana bash
    nano /etc/telegraf/telegraf.conf

    일부분만 수정

    [global_tags]
    ###############################################################################
    GLOBAL
    ###############################################################################
    
    [agent]
    interval = "10s"
    debug = false
    hostname = "jitsi_host"
    round_interval = true
    flush_interval = "10s"
    flush_jitter = "0s"
    collection_jitter = "0s"
    metric_batch_size = 1000
    metric_buffer_limit = 10000
    quiet = false
    logfile = ""
    omit_hostname = false
```
저장 후 telegraf.d에 jitsi.conf 생성
```sh
nano /etc/telegraf/telegraf.d/jitsi.conf
```

```

###############################################################################
#                                  INPUTS                                     #
###############################################################################

[[inputs.http]]
    name_override = "jitsi_stats"
    urls = [
      "http://0.0.0.0:8080/colibri/stats" # 다른 서버일 경우 ip 수정
    ]

    data_format = "json"

###############################################################################
#                                  OUTPUTS                                    #
###############################################################################

[[outputs.influxdb]]
    urls = ["http://localhost:8086"]
    database = "jitsi"
    timeout = "0s"
    retention_policy = ""
```
  1. 저장 후 telegraf 재시작

     systemctl enable --now telegraf
     systemctl status telegraf

그라파나 대시보드 JSON 파일 다운로드 및 적용

grafana.com/api/dashboards/11969/revisions/5/download

Jitsi Metrics를 위의 링크에서 그라파나용 대시보드 json을 다운로드 받아 그라파나에 적용

패키지 기반의 그라파나 대시보드 설정

# 1 단계 : InfluxDB 설치
sudo apt update && sudo apt install -y gnupg2 curl wget
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update && sudo apt install influxdb -y
sudo systemctl enable --now influxdb
sudo systemctl status influxdb

# 방화벽
ufw allow 8086/tcp
ufw allow 3000/tcp
# 2 단계 : Grafana를 설치하여 통계 대시 보드 표시
curl https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt update && sudo apt install grafana -y
sudo systemctl enable --now grafana-server
sudo systemctl status grafana-server
# 3 단계 : Telegraf 설치 및 구성
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update && sudo apt install telegraf -y
sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.original
sudo vi /etc/telegraf/telegraf.conf
[global_tags]

###############################################################################
#                                  GLOBAL                                     #
###############################################################################

[agent]
    interval = "10s"
    debug = false
    hostname = "jitsi_host"
    round_interval = true
    flush_interval = "10s"
    flush_jitter = "0s"
    collection_jitter = "0s"
    metric_batch_size = 1000
    metric_buffer_limit = 10000
    quiet = false
    logfile = ""
    omit_hostname = false
sudo vi /etc/telegraf/telegraf.d/jitsi.conf
###############################################################################
#                                  INPUTS   (그라파나 서버)                    #
###############################################################################

[[inputs.http]]
    name_override = "jitsi_stats"
    urls = [
      "http://localhost:8080/colibri/stats"
    ]

    data_format = "json"

###############################################################################
#                                  OUTPUTS                                    #
###############################################################################

[[outputs.influxdb]]
    urls = ["http://localhost:8086"]
    database = "jitsi"
    timeout = "0s"
    retention_policy = ""
# 4 단계 : Jitsi onfiguration을 조정하여 통계 노출
code /etc/jitsi/videobridge/config

JVB_OPTS="--apis=rest,xmpp" 


code /etc/jitsi/videobridge/sip-communicator.properties
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri

service jitsi-videobridge2 restart
curl -v http://127.0.0.1:8080/colibri/stats