El uso de Windows Virtual Desktop (WVD) como herramienta para desplegar entornos de trabajo remoto en estos tiempos de pandemia se ha incrementado considerablemente. De forma global, se había visto un crecimiento de un 300% en las últimas semanas. A día de hoy, es la carga de trabajo que nos encontramos prácticamente en todos nuestros clientes independiente del sector industrial al que pertenezcan.
Una vez que hemos trabajado para tener el entorno inicial en marcha y los usuarios están haciendo uso del servicio, surge la necesidad de conocer mejor qué es lo que está sucediendo y empezar a sacar estádisticas y realizar análisis del mismo. A día de hoy, WVD no tiene una integración directa con el portal de Azure que nos permita verlo; sin embargo, eso no quiere decir que no podamos tener esos datos.
El primer paso necesario es activar el envío de los logs de actividad a Azure Monitor Logs. Esto nos permitirá monitorizar las siguientes actividades en nuestro tenant:
Los eventos quedarán registrados en la tabla WVDActivityV1_CL dentro de nuestro área de trabajo de Azure Monitor Logs. Junto a ella, también se crearán las tabla WVDCheckpointV1_CL y WVDErrorV1_CL que contienen eventos internos y los errores relacionados con el sistema respectivamente.
Por lo tanto, si necesitas recuperar información histórica de uso para saber quién se ha conectado, cuántas veces lo ha hecho, cuánto tiempo han estado conectados o qué aplicaciones o nodos han utilizado, este es el camino. La información está disponible en bruto por lo que será necesario que construyas las consultas de Kusto específicas para extraer los datos que te interesen. En la propia documentación vienen algunos ejemplos para empezar.
Os recomendaría empezar filtrando por las actividades cuyo Type_s sea igual a Connection; si queréis filtrar por tipo de recurso utilizado, emplear el parámetro ResourceType igual a DESKTOP, para sesiones de escritorio remoto, o a RAIL, para sesiones de aplicaciones virtualizadas. En la siguiente tabla os dejo un ejemplo de cada uno de estos dos eventos para que os sirva de referencia para vuestras consultas:
Párametro | Valor |
---|---|
SourceSystem | RestAPI |
TimeGenerated [UTC] | 2020-04-01T12:11:52.776Z |
PredecessorConnectionId_s | <> |
ResourceAlias_s | SessionDesktop |
ResourceType | DESKTOP |
SessionHostPoolName_s | xxx-Pool-01 |
SessionHostName_s | RDSH-Pool-0.aadds.xxx.es |
SessionHostIPAddress_s | 13.80.xx.xx |
AgentOSVersion_s | 10.0.18363 |
AgentOSDescription_s | Windows 10 Enterprise for Virtual Desktops |
AgentSxsStackVersion_s | rdp-sxs200326004 |
ClientOS_s | Windows 10 Chrome 80.0.3987.149 |
ClientVersion_s | 1.0.21.1 |
ClientType_s | HTML |
ClientIPAddress_s | < |
Id_g | a68a5265-3e2b-xxxx-xxxx-aa06e9510000 |
Type_s | Connection |
StartTime_t [UTC] | 2020-04-01T11:30:03.59Z |
EndTime_t [UTC] | 2020-04-01T12:11:22.502Z |
UserName_s | xxx@xxx.es |
Outcome_s | Success |
Status_s | Completed |
TenantId_s | xxxWVD |
Type | WVDActivityV1_CL |
Párametro | Valor |
---|---|
SourceSystem | RestAPI |
TimeGenerated [UTC] | 2020-03-30T16:57:19.957Z |
PredecessorConnectionId_s | <> |
ResourceAlias_s | powerpoint |
ResourceType | RAIL |
SessionHostPoolName_s | xxx-Pool-01 |
SessionHostName_s | RDSH-Pool-0.aadds.xxx.es |
SessionHostIPAddress_s | 13.80.xx.xx |
AgentOSVersion_s | 10.0.18363 |
AgentOSDescription_s | Windows 10 Enterprise for Virtual Desktops |
AgentSxsStackVersion_s | rdp-sxs200326004 |
ClientOS_s | Windows 10 Chrome 83.0.4086.0 |
ClientVersion_s | 1.0.21.1 |
ClientType_s | HTML |
ClientIPAddress_s | <> |
Id_g | 7f9b814c-8d9f-xxxx-xxxx-c7446f290000 |
Type_s | Connection |
StartTime_t [UTC] | 2020-03-30T16:50:39.229Z |
EndTime_t [UTC] | 2020-03-30T16:54:47.111Z |
UserName_s | xxx@xxx.es |
Outcome_s | Failure |
Status_s | Completed |
TenantId_s | VirtualdomWVD |
Type | WVDActivityV1_CL |
Os dejo algunas consultas que puedan servir para consultar este tipo de estadísticas de uso:
// Number of sessions, both Desktop
// and Remote Apps, per user
WVDActivityV1_CL
| where ResourceType == "DESKTOP" or
ResourceType == "RAIL"
| extend Duration = EndTime_t - StartTime_t
| project SessionHostName_s, UserName_s,
Duration, StartTime_t, EndTime_t
| summarize Number_Sessions = count() by UserName_s
// Desktop usage by user, application name,
// session host and duration of the session
WVDActivityV1_CL
| where ResourceType == "DESKTOP"
| extend Duration = EndTime_t - StartTime_t
| project SessionHostName_s , UserName_s,
Duration, StartTime_t, EndTime_t
// Remote Application usage by user, application name,
// session host and duration of the session
WVDActivityV1_CL
| where ResourceType == "RAIL"
| extend Duration = EndTime_t - StartTime_t
| project SessionHostName_s, UserName_s, Duration,
ResourceAlias_s, StartTime_t, EndTime_t
Si tenéis algunas consultas ya creada que sean útiles, no dudéis en compartirlas. De esta manera, será más fácil reutilizar el conocimiento entre todos.
Photo by form PxHere
Escrito el 04/18/20 por José Ángel Fernández