wlan (Wi-Fi)

Supported OS Windows Mac OS

To find out if this integration is available in your organization, see your Datadog Integrations page or ask your organization administrator.

To initiate an exception request to enable this integration for your organization, email support@ddog-gov.com.

Información general

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.

Es necesario activar los siguientes parámetros:

  • Settings > Privacy & Security > Location > Location Services (Configuración > Privacidad y seguridad > Localización > Servicios de localización)
  • 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)

Usage: bash add_datadaog_agent_to_plist.sh [AGENT_BIN_PATH]

AGENT_BIN_PATH: optional - the agent binary path - default: /opt/datadog-agent/bin/agent/agent

Configuración

PLIST_PATH="/var/db/locationd/clients.plist" DEFAULT_PATTERN="/opt/datadog-agent/bin/agent/agent" BACKUP_PATH="${PLIST_PATH}.bak"

Función para restaurar la copia de seguridad si algo va mal

restore_backup() { echo “[ERROR] Restoring backup…” sudo cp “$BACKUP_PATH” “$PLIST_PATH” sudo plutil -convert binary1 “$PLIST_PATH” echo “[INFO] Backup restored. Exiting.” exit 1 }

Configurar la gestión de errores

trap restore_backup ERR

Comprobar si se ha proporcionado un argumento

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

Obtener el número de línea de después de la clave

dict_start=$(tail -n +$((key_line + 1)) “$PLIST_PATH” | grep -n “” | head -n1 | cut -d: -f1) dict_start=$((key_line + dict_start))

Obtener el número de línea de coincidente

dict_end=$(tail -n +$((dict_start + 1)) “$PLIST_PATH” | grep -n “” | head -n1 | cut -d: -f1) dict_end=$((dict_start + dict_end))

echo “[INFO] Found block from line $dict_start to $dict_end”

Comprobar si Autorizado existe en el bloque

auth_line=$(sed -n “${dict_start},${dict_end}p” “$PLIST_PATH” | grep -n “Authorized” | cut -d: -f1)

if [ -z “$auth_line” ]; then

Autorizado no encontrado, añadirlo antes de

echo “[INFO] Adding Authorized to the block” sed -i "” “${dict_end}i\ Authorized\ \ " “$PLIST_PATH” else

Autorizado encontrado, buscar su valor en la línea siguiente

auth_line=$((dict_start + auth_line - 1)) value_line=$((auth_line + 1))

Comprobar si la siguiente línea contiene

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


[1]: https://en.wikipedia.org/wiki/IEEE_802.11
[2]: https://en.wikipedia.org/wiki/Service_set_(802.11_network
[3]: https://en.wikipedia.org/wiki/Received_signal_strength_indicator
[4]: https://documentation.meraki.com/MR/Wi-Fi_Basics_and_Best_Practices/Signal-to-Noise_Ratio_(SNR
[5]: https://www.netally.com/tech-tips/what-is-wifi-roaming/
[6]: https://superuser.com/questions/122441/how-can-i-get-the-same-ssid-for-multiple-access-points
[7]: https://learn.microsoft.com/en-us/windows/win32/nativewifi/wi-fi-access-location-changes
[8]: https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/cannot-set-timezone-automatically?WT.mc_id=WDIT-MVP-5000497#use-registry-editor
[9]: https://app.datadoghq.com/account/settings/agent/latest
[10]: https://docs.datadoghq.com/es/agent/guide/agent-configuration-files/
[11]: https://github.com/DataDog/datadog-agent/blob/main/poc/cmd/agent/dist/conf.d/wlan.d/conf.yaml.example
[12]: https://docs.datadoghq.com/es/agent/guide/agent-commands/#start-stop-and-restart-the-agent
[13]: https://docs.datadoghq.com/es/getting_started/tagging/
[14]: https://docs.datadoghq.com/es/agent/guide/agent-commands/#agent-status-and-information
[15]: https://github.com/DataDog/integrations-core/blob/master/wlan/metadata.csv
[16]: https://docs.datadoghq.com/es/help/