Airmon это встроенный в агент wda легковесный диагностический HTTP-сервер (по умолчанию порт 8080). Он спроектирован для работы с минимальным потреблением ресурсов (использует потоки с ограниченным стеком 128 КБ). Модуль включает в себя веб-интерфейс для ручного тестирования и API для автоматизации. Используемые данные. Инструмент агрегирует данные из нескольких источников:
Диагностика последней мили между устройством пользователя (station) и точкой доступа (ap):
Инженер или система мониторинга инициирует тест с клиентского устройства на IP-адрес точки доступа. Airmon замеряет чистую пропускную способность (Mbps) и задержки (Latency/Jitter). Параллельно со скоростью фиксируются параметры радиоэфира. Если скорость низкая, данные airmon позволяют сразу определить причину: низкий уровень сигнала (RSSI), зашумленность канала (Interference) или ограничения на физическом уровне (низкий MCS).
Для интеграции модуля AirMon в сторонние системы мониторинга или скрипты автоматизации можно использовать его HTTP API. Ниже приведен раздел документации с описанием эндпоинтов и примерами использования.
Модуль предоставляет простой REST-like интерфейс для замера пропускной способности и получения метрик радиоэфира. По умолчанию сервер слушает на порту 8080.
Эндпоинт: GET /<size><unit> Возвращает поток случайных данных заданного объема.
Пример использования (curl):
# Загрузка 10 МБ данных с замером скорости curl -o /dev/null http://<ap_ip>:8080/10mb |
Эндпоинт: POST /upload
Принимает любые данные и возвращает статистику скорости в формате JSON.
Формат ответа:
# Загрузка 10 МБ данных с замером скорости
curl -o /dev/null http://<controller_ip>:8080/10mb
{
"method": "upload",
"size_bytes": 1048576,
"duration_ms": 150,
"speed_mbps": 55.92
} |
Пример использования (curl):
# Отправка 5 МБ случайных данных dd if=/dev/urandom bs=1M count=5 | curl -X POST -H "Content-Type: application/octet-stream" --data-binary @- http://<ap_ip>:8080/upload |
Эндпоинт: GET /airtime
Возвращает текущие физические параметры подключения клиента, с которого пришел запрос.Особенности:
Формат ответа:
Пример использования (curl):
curl http://<ap_ip>:8080/airtime
{
"active": 1000,
"busy": 450,
"tx": 120,
"rx": 200,
"other": 80,
"interference": 50,
"signal": -55,
"noise": -95,
"snr": 40,
"rx_rate": {
"rate": 866700,
"mcs": 9,
"nss": 2,
"mhz": 80
},
"tx_rate": {
"rate": 780000,
"mcs": 8,
"nss": 2,
"mhz": 80
}
} |
Эндпоинт: GET / или GET /index.html
Возвращает диагностическую страницу для ручного тестирования в браузере.