Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

CSCvt73723 - WebRTC server lekt sessies na grote hoeveelheid sessies op de server

Hoe identificeer je dit insect?

Hoe kun je dit probleem voorkomen?

Wanneer wordt dit vastgesteld?

Gerelateerde informatie

Inleiding

Dit document beschrijft de detectie en het werk-rondom Cisco bug-id CSCvt73723 rond een WebRTC-server die sessies lekt na een grote hoeveelheid sessies die op de server geplaatst zijn. Dat kan gebruikers er uiteindelijk toe brengen om niet in te loggen of zich als gast aan te sluiten op WebBridge.

Voorwaarden

Vereisten

Cisco raadt kennis van de volgende onderwerpen aan:

- Cisco Meeting Server (CMS) (CallBridge en Webebridge)

Gebruikte componenten

De informatie in dit document is gebaseerd op Cisco Meeting Server en in het bijzonder rond de component WebBridge 2 / CMA WebexRTC. Dit document is niet van toepassing op de nieuwe WebBridge 3 / CMS Web app component die in versie 2.9 is geïntroduceerd.

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk levend is, zorg er dan voor dat u de mogelijke impact van om het even welke opdracht begrijpt.

CSCv73723 - WebexRTC-server lekt sessies na grote hoeveelheid sessies op de server

Hoe identificeer je dit insect?

Het symptoom vanuit het perspectief van de eindgebruiker is wanneer zij de harde grens hebben bereikt en geen verdere gebruikers kunnen zich bij een vergadering aansluiten. In de blogs betekent het zien van de statistieken van de webbridge (zoals in dit FAQ) dat er 149 zijn, NIET noodzakelijkerwijs dat het allemaal uitgelekte sessies zijn. Dit betekent alleen dat de Web Bridge zijn harde limiet heeft bereikt en dat er geen nieuwe verbindingen zijn toegestaan.

"webbridge": INFORMATIE : [DEBUGING] Stats 149, c:3477, d:3170

Het berekenen van hoeveel van deze uitgelekte sessies is een beetje gecompliceerder en kan worden gedaan als u NIET de CMA desktop client of iOS client gebruikt. Vanaf versie 2.8 rapporteert de Call Bridge elke 5 minuten het aantal CMA-sessies (CMA WebexRTC + CMA-desktopclient + CMA-iOS-client). Let erop dat dit wordt gerapporteerd als de "CMA": "X/Y" waarbij X het huidige aantal actieve CMA sessies is en Y de piek in de laatste 5 minuten.

INFORMATIE : STATEN: {"callLegsPS": 1, "callLegs": "20/24", "CMA": "14/17", "sip": {"std": "0/1", "peer": "6/6"}

Alleen omdat een Call Bridge 14 actuele sessies rapporteert, betekent dat niet dat de gezamenlijke webbridge ook 14 sessies rapporteert. Deze afbeelding is 1:1 op één enkele gecombineerde server maar in een geclusterde toepassing kan een webbridge-sessie een oproep op een andere Call Bridge concretiseren (vooral wanneer taakverdeling is ingeschakeld - wat standaard het geval is voor CMA).

Om het totale aantal uitgelekte sessies in een implementatie te berekenen heb je de gecombineerde actieve sessies nodig van ALLE Brug statistieken en deze te vergelijken met de gecombineerde CMA Call Bridge status die wordt gerapporteerd.

Hoe kun je dit probleem voorkomen?

Afhankelijk van hoe vaak uw implementatie deze situatie raakt (eens in de paar dagen of eens in de paar weken), moet u worden geadviseerd om hun Web Bridge(s) opnieuw te starten, dat alle uitgelekte sessies uitwist en de actieve sessies op 0 stelt. Begrijpbaar kan dit vervelend zijn als dit een dagelijkse klus wordt, waardoor deze taak gefaciliteerd kan worden met een script dat beschikbaar is in de codeblokkering.

################################################################

#### Cisco Meeting Server ####

#### Webbridge restart ####

#### Workaround for CSCvt73723  ####

#### feedback: willwoo@cisco.com ####

################################################################

#--------------------------------------------------------------

# ---------- DISCLAIMER ----------

#--------------------------------------------------------------

# Please note this script is NOT maintained or supported by Cisco.

# This is to be run at entirely your own risk.

# This script is not intended for redistribution

# Tested with python 3.7.4

#--------------------------------------------------------------

#--------------------------------------------------------------

# ---------- Libraries to import ----------

#--------------------------------------------------------------

import paramiko

import time

import datetime

#--------------------------------------------------------------

#--------------------------------------------------------------

# ---------- Deployment parameters to change ----------

#--------------------------------------------------------------

# WB Inventory - just extend or modify the below to match your deployment requirements.

# Enter the MMP IP of the server (can differ from interface webbridge service is running)

webbridges ={1:"127.0.0.1",2:"127.0.0.1",3:"127.0.0.1",4:"127.0.0.1"}

mmp_username = "admin" # MMP username

mmp_password = "password" # MMP password

#--------------------------------------------------------------

def mmp_webbridge_restart(mmp_address,uname,pword):

conn = paramiko.SSHClient()

conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:

conn.connect(mmp_address, 22, uname, pword)

stdin, stdout, stderr = conn.exec_command('webbridge restart')

time.sleep(1)

conn.close()

print_log_message('Webbridge on server: ' + mmp_address + ' restarted successfully')

except Exception as error:

print_log_message('Failed to restart webbridge on server ' + mmp_address + '. Error:')

print_log_message(str(error))

pass

def print_log_message(message):

time_stamp = datetime.datetime.now(datetime.timezone.utc)

time_stamp = str(time_stamp)

file = open('webbridge_restart_logs.txt', 'a')

file.write(time_stamp + " " + message + "\n")

file.close()

if __name__ == '__main__':

for wb in webbridges:

mmp_webbridge_restart(webbridges[wb], mmp_username, mmp_password)

################################################################

Het script vereist een aantal kleine bewerkingen (de aanmeldingsgegevens op regel 29-30 en IP-adressen van de webbruggen in de implementatie op regel 27) en moet ALLEEN uitgevoerd worden als er geen verwachte lading is of tijdens een onderhoudsvenster. Het script controleert niet op actieve sessies en voert simpelweg de "webbridge Start"-opdracht uit op alle vermelde servers, die elke actieve Webex-sessie beëindigt.

Om dit script te automatiseren kan dit gedaan worden door het opzetten van een cron job of het opzetten van een Windows 10 PC met Task Scheduler. aangenomen dat de Win 10 PC Python 3.4+ geïnstalleerd heeft, kunnen ze deze stappen volgen:

1. taakplanner openen

2. Selecteer 'Basistaak maken...'

2.1 Voer een naam/beschrijving in voor deze taak

2.2 Selecteer welke frequentie en tijd u deze taak wilt uitvoeren (alleen aanbevolen tijdens tijden buiten het piekniveau, hier voor elke zaterdag om 2.00 uur)

2.3 Actie om uit te voeren, selecteert u: 'Een programma starten'

2.4 Actie:

* Programma / scripts:  C:\<pad naar python.exe>

(Als u het pad naar python.exe niet kent, kan het worden gevonden door naar cmd te gaan en te typen: python - c " importsys; druk (sys.uitgavabel)"

* Teken argumenten (optioneel): webbridge_RE.py (of naam van het pythonscript)

* Start in (optioneel): C:\<pad naar webbridge_start.py>

Merk op dat een computer die de cron job runt, toegang moet kunnen krijgen tot de MMP van de geconfigureerde CMS-servers. Nadat het script uitgevoerd is, creëert het een webbridge_RE_logs.txt bestand dat details bevat over de herstart van de verschillende WebBridges evenals mogelijke mislukkingen. Een voorbeeld hiervan wordt getoond met één succesvolle verbinding naar 10.48.79.194 en één die faalt op 127.0.0.1 (als het achteruitadres van de PC feitelijk).

2020-06-08 14:53:18.149915+00:00 Webbridge on server: 10.48.79.194 restarted successfully 2020-06-08 14:53:19.165543+00:00 Failed to restart webbridge on server 127.0.0.1. Error: 2020-06-08 14:53:19.165543+00:00 [Errno None] Unable to connect to port 22 on 127.0.0.1

Hoe test je dat het script goed werkt?

Als u Python de PC hebt geïnstalleerd waar u het script vanaf wilt uitvoeren, kunt u het eerst handmatig uitvoeren met de volgende stappen:

1. Open cmd en blader naar de locatie van het script met de opdracht 'cd'

2. Start het pythonbestand met de opdracht 'python webbridge_Start.py'.

3. Als u een fout ziet die aangeeft dat de 'paramiko'-module niet geïnstalleerd is, moet u een extra bibliotheek installeren met de opdracht 'pip install paramiko'

4. Na voltooiing kunt u het script opnieuw uitvoeren met 'python webbridge_RE.py' (LET OP: deze start de webbridge opnieuw en zorgt ervoor dat de huidige WebexRTC-verbindingen worden losgekoppeld)

Als de bewerking succesvol is verlopen, kunt u het resultaat bekijken in het webbridge_Start_logs.txt bestand.

Wanneer wordt dit vastgesteld?

Dit is geen nieuw bug en er is geen plan om dit op Web Bridge 2 / CMA Webex te repareren. De nieuwe Web Bridge 3 / CMS web app (vanaf 2.9 beschikbaar) wordt niet beïnvloed door dit bug omdat het geheel opnieuw ontworpen is. Klanten die hierdoor zwaar worden getroffen, moeten overwegen naar de nieuwe CMS web app te gaan (hoewel let op dat deze nog niet op gelijke positie staat met Web Bridge 2 in de 2.9 release. Controleer de CMS 2.9- en cms-web app release notes voor meer informatie hierover.)

Gerelateerde informatie

- Opmerkingen defect: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvt73723

- Opmerkingen: https://www.cisco.com/c/en/us/support/conferencing/meeting-server/products-release-notes-list.html

- FAQ

- https://meeting-infohub.cisco.com/faq/content/43/450/en/how-do-you-check-the-number-of-active-sessions-on-a-web-bridge.html