dolmatova Posted June 15 Posted June 15 Приветствую, коллеги! Мы в команде OpenSpeedTest.ru выкатили новый функционал, который, возможно, будет полезен местному сообществу. Исторически мы занимались только замерами скорости, но от админов и небольших провайдеров постоянно прилетал запрос: нужен простой скрипт, чтобы кинуть его на удаленный шлюз, малину (Raspberry) или VPS, и чтобы он по крону мерял реальную пропускную способность до внешки, попутно поглядывая за базовым железом. Поднимать ради этого полноценного Zabbix-агента, node_exporter или PRTG часто бывает избыточно (особенно если машинка слабая или это временный узел). В итоге мы написали своего легковесного демона на Python и сделали под него веб-дашборд. Что под капотом у агента: Написан на чистом Python 3. Из зависимостей требует только requests и psutil. Аппаратные метрики: раз в 60 секунд собирает утилизацию CPU, RAM, Disk и Uptime. Сетевые метрики: по расписанию (настраивается из веб-морды) или по ручному триггеру проводит замер Download, Upload, Ping и Jitter. Работает по Pull-модели (polling). Скрипт сам делает HTTPS-запросы к нашему API. Никакие входящие порты на сервере открывать не нужно. Код скрипта открыт (не обфусцирован), перед запуском можно спокойно прочитать, что именно он отправляет. Как ставится: Разворачивается в 3 команды, сам создает systemd сервис и прописывается в автозагрузку. # Ставим зависимости pip3 install requests psutil # Качаем скрипт curl -sLo ost-agent.py https://openspeedtest.ru/cli/ost-agent.py # Регистрируем токен (ключ берется в ЛК) python3 ost-agent.py --register --api-key ВАШ_КЛЮЧ # Поднимаем systemd-демона sudo python3 ost-agent.py --daemon Веб-морда и Алертинг: Всё управление мы вынесли в облачный личный кабинет (денег за него не просим, полностью free). Там отрисовываются графики (ApexCharts) и настраиваются триггеры. Можно настроить логику алертов. Например: Упал линк / агент не на связи > 5 минут. Скорость загрузки упала ниже 100 Мбит/с. Диск забился > 95%. Уведомления умеем слать в Telegram, на E-mail, в VK. Для любителей интегрировать всё в свои системы есть возможность дергать любой Webhook. Интервал тестов можно задавать классическим Cron-синтаксисом прямо из веба (например, 0 2 * * * для ночных замеров). Где посмотреть: Дока и описание лежат тут: https://openspeedtest.ru/cli Будем очень рады конструктивной критике от сообщества НАГа. Инструмент активно пилится. Если чего-то не хватает (экспорта в определенных форматах, специфичных метрик, особых хуков) — пишите, добавим. Заранее спасибо за фидбек! Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.