Este check monitoriza redes LAN (WLAN) inalámbricas basadas en estándares [IEEE 802.11][1], comúnmente denominadas Wi-Fi.
Recopila métricas Wi-Fi clave, incluyendo la información sobre puntos de acceso (AP) como [SSID][2]#SSID) y [BSSID][2]) (como etiquetas), telemetría de calidad de señal como [RSSI][3] y [Ruido][4]_y_Fuerza_de_señal_inalámbrica), velocidad de transmisión y recuento de transiciones ([Roaming][5] e [Swapping][6] entre AP, por ejemplo). Estas métricas ayudan a identificar proactivamente problemas generales de la red inalámbrica, como puntos de acceso sobrecargados, así como a solucionar problemas retrospectivos de bajo rendimiento de la red en hosts individuales.
Configuración
Requisito previo
Windows
A partir de Windows 11 24H2 (Otoño 2024), de acuerdo con [Cambios en el comportamiento de la API para el acceso y la localización Wi-Fi][7], el check WLAN (que utiliza las API Wlan de Windows), requiere el consentimiento del usuario o del administrador. Si Settings > Privacy & security > Location del host no ha sido habilitado, este check WLAN fallará a la hora de informar de la telemetría WLAN/Wi-Fi.
Settings > Privacy & security > Location > Let desktop apps access your location (Configuración > Privacidad y seguridad > Localización > Permitir que las aplicaciones de escritorio accedan a tu localización)
Puedes comprobar si la API de localización no está desactivada ejecutando el comando netsh wlan show interface, que no informará de ninguna conexión de interfaz Wi-Fi aunque tengas conexión.
Un administrador también puede habilitar estos parámetros mediante:
[Registro][8]
[Política de grupo][8]
[InTune][8]
macOS
Al igual que en Windows, la recopilación de telemetría Wi-Fi en macOS requiere el consentimiento del usuario a través de los servicios de localización. Sin embargo, a diferencia de Windows, macOS no proporciona un mecanismo bien definido para que los administradores habiliten el acceso a la localización a procesos específicos como el Datadog Agent a escala.
Para solucionar este problema, los clientes pueden adaptar el script add_datadog_agent_to_plist.sh proporcionado en el Apéndice para conceder acceso de localización al proceso del Agent. Esta secuencia de comandos requiere acceso root y se puede desplegar en una flota de Mac de empresa mediante una solución MDM como Jamf.
Instalación
El check WLAN está incluido en el [Datadog Agent][9], pero no está configurado. Consulta la siguiente sección para configurarlo.
Configuración
La configuración se encuentra en el archivo wlan.d/conf.yaml en la carpeta conf.d/ en la raíz del [directorio de configuración de tu Agent][10]. Consulta el [ejemplo wlan.d/conf.yaml][11] para ver todas las opciones de configuración disponibles. Cuando termines de editar el archivo de configuración, [reinicia el Agent][12] para cargar la nueva configuración.
Etiquetas
El check etiqueta automáticamente las métricas emitidas con SSID, BSSID, dirección MAC, tipo de Wi-Fi (A, B, G, N, AC), autenticación Wi-Fi (Open, WEP, WPA, WPA2, WPA3). Como se indica en [Empezando con las etiquetas][13] los caracteres en mayúsculas en los valores de las etiquetas se sustituyen por caracteres en minúsculas y los caracteres especiales se sustituyen por guiones bajos.
Validación
[Ejecuta el subcomando de estado del Agent][14] y busca wlan en la sección Checks.
Datos recopilados
Métricas
system.wlan.channel_swap_events (count)
The number of times the Wi-Fi channel used by the device changes
system.wlan.noise (gauge)
The noise measurement (dBm) for the interface
system.wlan.roaming_events (count)
The number of times a device switched between different access points within the same network
system.wlan.rssi (gauge)
The received signal strength indication (RSSI) measurement (dBm) for the interface
system.wlan.rxrate (gauge)
The receive rate/max bandwith (Mbps) for the interface Shown as mebibyte
system.wlan.txrate (gauge)
The transmit rate/max bandwith (Mbps) for the interface Shown as mebibyte
Eventos
WLAN no incluye eventos.
Terminología
Roaming
Roaming se refiere a la capacidad de un dispositivo de cambiar sin interrupciones de un punto de acceso a Wi-Fi a otro mientras se desplaza, sin perder la conexión. Esto ocurre cuando el dispositivo encuentra una señal más potente o fiable en un punto de acceso diferente, lo que garantiza un acceso continuo a Internet. Un evento Roaming se detecta cuando el BSSID del router o punto de acceso conectado cambia, pero su SSID sigue siendo el mismo. Cuando el SSID del router o punto de acceso no se emite, la detección de roaming no es posible. Cuando se detecta un evento Roaming, la métrica system.wlan.roaming_events se incrementa. El cambio a un router con un SSID diferente no se considera Roaming.
Channel Swap
Channel Swap se refiere al proceso de cambiar el canal Wi-Fi que un router o punto de acceso utiliza para emitir su señal. Este cambio intenta mejorar la intensidad de la señal, reducir las interferencias u optimizar el rendimiento, especialmente en zonas con muchas redes Wi-Fi en competencia. El evento Channel Swap se detecta cuando el BSSID del router o punto de acceso conectado es el mismo, pero su canal ha cambiado. Cuando el BSSID del router o punto de acceso conectado cambia (lo que lo convierte en un evento Roaming si el router o punto de acceso tiene el mismo SSID), no se considera un evento Channel Swap aunque el canal haya cambiado.
Solucionar problemas
¿Necesitas ayuda? Ponte en contacto con el [soporte de Datadog][16].
Anexo
add_datadog_agent_to_plist.sh
``script de shell
#!/usr/bin/env bash
Script para añadir/actualizar la clave autorizada en locationd/clients.plist para el Datadog Agent (requiere acceso root)
if [ -n “$1” ]; then
PATTERN="$1"
echo “[INFO] Using provided pattern via CLI argument: $PATTERN”
else
Mensaje para que el patrón busque
read -p “Enter the pattern to search for [${DEFAULT_PATTERN}]: " PATTERN
PATTERN=${PATTERN:-$DEFAULT_PATTERN}
fi
Hacer copia de seguridad del archivo original
echo “[INFO] Backing up $PLIST_PATH to $BACKUP_PATH”
sudo cp “$PLIST_PATH” “$BACKUP_PATH”
Convertir plist a XML para facilitar el análisis
sudo plutil -convert xml1 “$PLIST_PATH”
echo “[INFO] Searching for entry containing: $PATTERN”
Buscar la primera clave cuyo bloque contenga el patrón, xargs elimina los espacios en blanco iniciales y finales
KEY_LINE=$(grep “$PATTERN” “$PLIST_PATH” | grep “” | head -n1 | xargs)
if [ -z “$KEY_LINE” ]; then
echo “[ERROR] No entry found containing pattern: $PATTERN”
restore_backup
fi
Extraer la clave de la línea
KEY=${KEY_LINE#}
KEY=${KEY%}
if [ -z “$KEY” ]; then
echo “[ERROR] Could not determine the key for the matching entry.”
restore_backup
fi
echo “[INFO] Processing key: $KEY”
Obtener el número de línea que contenga $KEY
key_line=$(grep -n “$KEY” “$PLIST_PATH” | cut -d: -f1 | head -n1)
if [ -z “$key_line” ]; then
echo “[ERROR] Key not found.”
restore_backup
fi
if grep -q “” <(sed -n “${value_line}p” “$PLIST_PATH”); then
echo “[INFO] Changing to ”
sed -i "” “${value_line}s/<false/>/<true/>/” “$PLIST_PATH”
else
echo “[INFO] Authorized already exists with correct value”
fi
fi
Volver a convertir plist a binario para uso del sistema
sudo plutil -convert binary1 “$PLIST_PATH”
echo “[INFO] Changes applied successfully.”
echo “[INFO] To apply changes, either reboot or run: sudo killall locationd”
trap - ERR