Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как получить сообщение о загруженности канала?  (Прочитано 757 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Здравствуйте.

Подскажите, как можно получать уведомление если сетевая карта на пределе пропускной способности?
Есть всякие мониторилки, но там нужно в экран смотреть. Хочется автоматизма.

Что-то типа - поставил лимит 100 мегабит, загружен на 85, получите письмо.

Возможно?

Оффлайн AlexDem

  • Активист
  • *
  • Сообщений: 628
    • Просмотр профиля
Что-то типа - поставил лимит 100 мегабит, загружен на 85, получите письмо.
Это так не работает, сетевая карта это не окошко в сберкассе. По умолчанию соединение с провайдером идет на максимальной скорости, которую способна дать карта, канал, роутер и провайдер. И если будет что скачиваться с шустрого сервера или просто запущен speedtest.net, ты будешь получать такие сообщения пачками.
Для того, чтобы сделать то, что ты хочешь, надо поставить лимит скорости доступа пользователей, гугли в этом направлении. Получение каких либо сообщений при этом также лишено смысла, ибо см. выше. Дал ты пользовалю 10 мбит из 100, он их и будет использовать напрямую.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 2565
    • Просмотр профиля
Попробуйте воспользоваться утилитой ethtool.
Пётр.

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5374
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Возможно?
Сложнореализуемо. Смотрите в сторону ограничений, как вам подсказал уважаемый AlexDem.
Squid, например
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
ALiEN175, я, скорее всего, неверно объяснил. Мне не нужно ограничивать.
Вот картинка, видно что сетевая карта не загружена на 100%.

Я вот это хочу, что когда будет не 24, а 85 получить сообщение об этом.

Peter_I, посмотрел, но пока не понял как использовать.

AlexDem, с провайдером да, на максимальной скорости, но канал же не забит всегда на 100%.
« Последнее редактирование: 14 Октября 2020, 18:28:55 от ALiEN175 »

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 430
    • Просмотр профиля
Возможно?
Можно написать скрипт, который будет сравнивать значения из /proc/net/dev, получать скорость, сравнивать с заданным порогом и отправлять почту при превышении.
Это если не прибегать к системам мониторинга типа заббикса.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
altwazar, посмотрел, там есть количество переданных байт, для расчета скорости придется брать значение, вычитать из предыдущего и делить на время? Как-то сложновато.

Думал что можно получать примерно в таком виде как выдает nload. Но только одну цифру.

« Последнее редактирование: 14 Октября 2020, 18:29:43 от ALiEN175 »

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 430
    • Просмотр профиля
Думал что можно получать примерно в таком виде как выдает nload. Но только одну цифру.
Скорее всего подобные программы получают скорость описанным тобой способом (делением на время) и, скорее всего, получить из них готовое значение не выйдет.
А сравнить и поделить не сложно, да и позволит контролировать за какой промежуток требуется реагировать на превышение по утилизации. Сомневаюсь, что надо реагировать на 1 секундный скачек. А вот по крону запускать раз в 30/60 секунд и сравнивать значение вполне себе вариант.

Типа такого:
#!/bin/bash
cd "$(dirname "$0")"

time=30
prev=`cat ./prev`
let diff=`cat /proc/net/dev | grep enp5s0 | awk '{print $2}' | tee ./prev`-$prev
let speed=$diff/$time
echo $speed
awk - выбор нужного поля.
./prev - файл с предыдущем значением (чтобы можно было запускать по крону и не ломать голову).
« Последнее редактирование: 14 Октября 2020, 12:21:12 от altwazar »

Оффлайн AlexDem

  • Активист
  • *
  • Сообщений: 628
    • Просмотр профиля
AlexDem, с провайдером да, на максимальной скорости, но канал же не забит всегда на 100%.
Тогда ты неправильно задачу поставил. Тебе надо видеть лог загрузки сети. Это все таки разные задачи. Вот на выбор то, что нагугливается. https://www.tecmint.com/linux-network-bandwidth-monitoring-tools/


Пользователь добавил сообщение 14 Октября 2020, 14:10:36:
Думал что можно получать примерно в таком виде как выдает nload. Но только одну цифру.
А какая конечная цель? Зачем это надо? Просто использование канала на 100% это довольно штатная и обычная ситуация, и получать про это отдельное сообщение как то странно. Что дальше делать с этим знанием?
« Последнее редактирование: 14 Октября 2020, 14:10:36 от AlexDem »

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
altwazar, спасибо, потыкаю.

AlexDem, по ссылке это я видел. Но там нужно в экран смотреть, а хочется не принимать в этом участие.
Относительно что делать с знанием, а разве забивание канала всяким flood атаками это не про то?
Хочу узнавать что там с сетью не сидя у монитора.

 

Страница сгенерирована за 0.036 секунд. Запросов: 25.