Для онлайн тестирования скорости интернета существуют большое количество онлайн-сервисов. Если вам нужно периодически собирать метрики скорости Интернет-подключения от провайдера для системы мониторинга, можно воспользоваться широко известной консольный клиент Speedtest от Ookla. В этой статье, мы рассмотрим, как измерить скорость Интернет-подключения из командной строки Windows (скрипта PowerShell).
Скачайте консольную утилиту speedtest.exe для Windows с сайта https://www.speedtest.net/apps/cli и распакуйте в локальный каталог.
Чтобы автоматически протестировать скорость скачивания/загрузки сети до ближайшей к вам локации с сервисом Speedtest, выполните команду:
.\speedtest.exe
Утилита вернет скорость скачивания, загрузки (в Мбит/с), сетевые задержки с вашего компьютера до ближайшего сервера Speedtest. Если сервер расположен близко к вам (а их действительно очень много), условно это и будет вашей скоростью Интернета.
Можно вручную выбрать провайдера, страну и город с сервером Speedtest, до которого нужно тестировать подключение. Выведите список ближайших точек и скопируйте ID:
.\speedtest.exe -L
Выполнить тестирование до выбранного сервера:
.\speedtest.exe -s 37149
Утилита speedtest позволяет возвращать результаты в структурированных форматах (CSV, JSON, TSV), что удобно, когда вам нужно дополнительно извлечь данные из результатов или отправить результату проверки в систему мониторинга.
Например, чтобы получить результаты тестирования скорости Интернета из скрипта PowerShell:
$speedtestcmd = & "C:\ps\Speedtest\speedtest.exe" --accept-license -s 37149 -f json
$speedtestresult=ConvertFrom-Json $speedtestcmd
$result=[PSCustomObject]@{
Download = [math]::round($speedtestresult.download.bandwidth/1MB, 5)*8
Upload = [math]::round($speedtestresult.upload.bandwidth/1MB, 5)*8
}
$result
Вы можете передать результаты тестировании скорости интернета в виде метрик в вашу систему мониторинга (как получить данные в Zabbix из PowerShell скрипта).