Bài viết này sẽ hướng dẫn cho các bạn cách cài đặt dashboard grafana để giám sát jitsi thông qua bộ công cụ TIG stack (Telegraf – InfluxDB – Grafana).
Ta có thể cài đặt 1 máy chủ riêng để hiển thị dashboard và lưu trữ metrics. Tuy nhiên ở bài viết này, tôi sẽ hướng dẫn các bạn cài đặt trên chính máy chủ chạy Jitsi.
IP máy chủ chạy Jitsi ở hướng dẫn này: 192.168.80.185
Các bước cài đặt:
Lưu ý: Nếu các bạn cài đặt một máy chủ riêng thì ta sẽ làm các bước 1,2,3,5 trên máy chủ riêng đó. OS thì ta sẽ cài cùng với OS của máy chủ Jitsi là Ubuntu Server 18.04.
Bước 1: Cài đặt InfluxDB
apt update && 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
apt update && apt install influxdb -y
systemctl enable –now influxdb
systemctl status influxdb
|
Tiếp theo, ta tạo user và database
$ influx
Connected to http://localhost:8086 version 1.7.7
InfluxDB shell version: 1.7.7
> CREATE USER jitsi WITH PASSWORD ‘password’ WITH ALL PRIVILEGES
> SHOW USERS
user admin
—- —–
admin true
> CREATE DATABASE jitsi
|
Sau đó, ta thay đổi cấu hình của influxdb trong file /etc/influxdb/influxdb.conf
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true
# The bind address used by the HTTP service.
bind-address = “:8086”
# Determines whether user authentication is enabled over HTTP/HTTPS.
auth-enabled = true
|
Nếu bạn bật firewall, allow 2 port của influx và grafana
ufw allow 8086/tcp
ufw allow 3000/tcp
|
Restart influxdb
sudo systemctl restart influxdb
|
Bước 2: Cài đặt grafana
curl https://packages.grafana.com/gpg.key | sudo apt-key add –
add-apt-repository “deb https://packages.grafana.com/oss/deb stable main”
apt update && apt install grafana -y
systemctl enable –now grafana-server
systemctl status grafana-server
|
Bước 3: Cài đặt và cấu hình 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
apt update && apt install telegraf -y
mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.original
|
Chỉnh sửa file /etc/telegraf/telegraf.conf
[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
[[inputs.http]]
name_override = “jitsi_stats”
urls = [
]
data_format = “json”
###############################################################################
# OUTPUTS #
###############################################################################
[[outputs.influxdb]]
urls = [“http://127.0.0.1:8086“]
database = “jitsi”
timeout = “0s”
retention_policy = “”
username = “jitsi”
password = “password”
|
Sau đó start service
systemctl enable –now telegraf
systemctl status telegraf
|
Bước 4: Cấu hình Jitsi Meet
Trên máy chủ Jitsi, ta sẽ cấu hình để đẩy metrics ra ngoài
Sửa file /etc/jitsi/videobridge/config
JVB_OPTS=”–apis=rest,xmpp”
|
Sửa file /etc/jitsi/videobridge/sip-communicator.properties
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri
|
Sau đó restart lại service
service jitsi-videobridge2 restart
|
Check thử bằng cách curl tới địa chỉ sau:
root@jitsimeet:~# curl -v http://127.0.0.1:8080/colibri/stats
* Trying 127.0.0.1…
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET /colibri/stats HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Mon, 27 Apr 2020 10:30:08 GMT
< Content-Type: application/json
< Content-Length: 1946
< Server: Jetty(9.4.15.v20190215)
<
{“inactive_endpoints”:0,”inactive_conferences”:0,”total_ice_succeeded_relayed”:0,”total_loss_degraded_participant_seconds”:0,”bit_rate_download”:0,”muc_clients_connected”:1,”total_participants”:12,”total_packets_received”:469886,”rtt_aggregate”:0.0,”packet_rate_upload”:0,”p2p_conferences”:0,”total_loss_limited_participant_seconds”:0,”octo_send_bitrate”:0,”total_dominant_speaker_changes”:18,”receive_only_endpoints”:0,”total_colibri_web_socket_messages_received”:0,”octo_receive_bitrate”:0,”loss_rate_upload”:0.0,”version”:”2.1.183-gdbddd169″,”total_ice_succeeded”:12,”total_colibri_web_socket_messages_sent”:0,”total_bytes_sent_octo”:0,”total_data_channel_messages_received”:4574,”loss_rate_download”:0.0,”total_conference_seconds”:3463,”bit_rate_upload”:0,”total_conferences_completed”:5,”octo_conferences”:0,”num_eps_no_msg_transport_after_delay”:1,”endpoints_sending_video”:0,”packet_rate_download”:0,”muc_clients_configured”:1,”conference_sizes”:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],”total_packets_sent_octo”* Connection #0 to host 127.0.0.1 left intact
:0,”conferences_by_video_senders”:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],”videostreams”:0,”jitter_aggregate”:0.0,”total_ice_succeeded_tcp”:0,”octo_endpoints”:0,”current_timestamp”:”2020-04-27 10:30:07.158″,”total_packets_dropped_octo”:0,”conferences”:0,”participants”:0,”largest_conference”:0,”total_packets_sent”:22203,”total_data_channel_messages_sent”:5408,”total_bytes_received_octo”:0,”octo_send_packet_rate”:0,”conferences_by_audio_senders”:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],”total_conferences_created”:5,”total_ice_failed”:0,”threads”:37,”videochannels”:0,”total_packets_received_octo”:0,”graceful_shutdown”:false,”octo_receive_packet_rate”:0,”total_bytes_received”:40511142,”rtp_loss”:0.0,”total_loss_controlled_participant_seconds”:27,”total_partially_failed_conferences”:0,”endpoints_sending_audio”:0,”total_bytes_sent”:2439949,”mucs_configured”:1,”total_failed_conferences”:0,”mucs_joined”:1}
|
Như vậy là metrics đã được đẩy thành công,
Nếu bạn bật firewall, hãy chắc chắn rằng bạn đã allow port 8080
ufw allow 8080/tcp
|
Để kiểm tra xem metrics đã được telegraf đẩy vào influxdb hay chưa, check trên máy chủ cài đặt influxdb
root@jitsimeet:~# influx -username ‘jitsi’ -password ‘password’
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> use jitsi
Using database jitsi
> show measurements
name: measurements
name
—-
jitsi_stats
|
Như vậy là metrics đã được đẩy xuống influxdb. Ta sẽ cấu hình dashboard.
Bước 5: Cấu hình dashboard grafana
Trước tiên, ta sẽ đăng nhập grafana ở địa chỉ http://192.168.80.185:3000
Ta sẽ tạo datasource với type là influxdb và nhập vào những thông số sau:
Sau đó ta sẽ import dashboard. Tải file json ở link sau:
Sau đó chọn Import và click “Upload .json file”
Chọn tới file json vừa tải về. Chọn datasource và click import.
Kết quả:
Khi cần hỗ trợ xin liên hệ với chúng tôi:
Công ty phần mềm Nhân Hòa
Trụ sở Hà Nội: Tầng 4 – Toà nhà 97 – 99 Láng Hạ, Đống Đa, Hà Nội
Chi nhánh HCM: 270 Cao Thắng (nối dài), Phường 12, Quận 10, TP HCM
Chi nhánh Vinh – Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An
Hotline: 19006680