This integration provides Python3 code and supporting assets to create a persistent WebSocket connection to the Zoom QSS api, in order to receive Zoom QoS events, and forward them to LogScale for ingest.
Zoom QSS (Quality of Service Subscription) provides near real-time quality of service (QoS) telemetry for Zoom video conference calls, webinars, and phone calls.
The Python3 code in this integration provides two (2) persistent coroutines:
- a connection heart-beat pulse.
- an event loop that receives and forwards QSS/QoS events.
This integration is a companion to the Zoom Qss LogScale package. The Zoom Qss LogScale package comprises the set assets that provide search analytics and data visualization of Zoom Qss QoS telemetry.
-
Sign into you Zoom account.
-
Navigate to the Zoom Marketplace
-
Create a Server-to-Server OAuth app for WebSocket API access.
-
Apply the following scopes to your app:
Scope Name ID View all users' meetings information on Dashboard dashboard_meetings:read:adminDelete View all users' webinar information on Dashboard dashboard_webinars:read:adminDelete Note: This integration does not currently support Zoom phone calls
- create directory: /etc/zoom-qss
- create the vars file: /etc/zoom-qss/env.vars
- add the environmental variable definitions (note: values should be bare. i.e. unquoted)
LOGSCALE_HOST=<host> LOGSCALE_INGEST_TOKEN=<token> LOGSCALE_REPOSITORY=<repository> ZOOM_ACCOUNT_ID=<acct id> ZOOM_CLIENT_ID=<client id> ZOOM_CLIENT_SECRET=<secret> ZOOM_WSS_URL=<url>
- LogScale variables
- LOGSCALE_HOST - LogScale server
- LOGSCALE_REPOSITORY - LogScale repository
- LOGSCALE_INGEST_TOKEN - LogScale ingest token
- Zoom API variables (from the Zoom app)
- ZOOM_ACCOUNT_ID - Zoom app credentials - Account ID
- ZOOM_CLIENT_ID - Zoom app credentials - Client ID
- ZOOM_CLIENT_SECRET - Zoom app credentials - Client Secret
- ZOOM_WSS_URL - WebSocket endpoint URL
- LogScale variables
-
select, or create a target ingest repository
-
create an ingest token, or use the default ingest token
- install the LogScale Zoom QSS package.
- assign the
zoom_qss
parser to the repository
logger.setLevel(logging.DEBUG)
warning: DEBUG output generates copious logging
- cd to the directory that contains the Dockerfile, Python code, and requirements.txt
- build the docker image:
docker build -t zoom-qss .
- install the qss2logscale service file
- cp qss2logscale.service /etc/systemd/system
- systemctl daemon-reload
- start the qss2logscale service
- service qss2logscale start
- if DEBUG logging was enabled, check syslog for payload and heartbeat logging.
- check the LogScale repository to verify that events are arriving