Автор Тема: Скрипт мониторинга отклика пинга  (Прочитано 5096 раз)

Оффлайн skobelev.yurij

  • Участник
  • *
  • Сообщений: 44
Добрый день.
В образовательном учреждении возникла проблема с каналом связи (доступом в глобальную вычислительную сеть). Суть проблемы в том, что имеются большой отклик до ресурсов интернета (сайтов). Провайдер отказывается в это верить, даже не смотря на то, что были представлены логи утилиты ping. Сам по себе отклик похож на синусоиду, то меньше 20 ms, то больше 1000 ms.
Начальство дало задание разработать программу для мониторинга и выявления за сутки "большого пинга" , при чем весь лог должен писаться в файл.
Вопрос: можно ли написать скрипт на bash, таким образом, что бы он обрабатывал данные утилиты ping и выводил результат с откликом в определенном диапазоне (делал выборку например от 50 ms и более) в файл для последующего предоставления данных интернет провайдеру.
Сразу оговорюсь при предоставлении логов интернет провайдеру тестирование канала проводилось при полном отключении всей локальной сети в учреждении, поэтому в идеале пинги должны быть нормальными, но таковыми не являются.
Если у кого есть готовый скрипт или заготовки поделитесь если не жалко. Всю голову сломал, не знаю как это реализовать.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Re: Скрипт мониторинга отклика пинга
« Ответ #1 : 06.05.2014 18:05:25 »
Поищите по форуму про collectd
Андрей Черепанов (cas@)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Скрипт мониторинга отклика пинга
« Ответ #2 : 06.05.2014 18:06:00 »
Если у кого есть готовый скрипт или заготовки поделитесь если не жалко. Всю голову сломал, не знаю как это реализовать.
Способ N1: apt-get install collectd collection4 collection4-apache2
Способ N2: apt-get install xymon xymon-apache2

Демо-сайт xymon: http://www.xymon.com/xymon/
Немножко описания на русском: http://www.altlinux.org/Xymon

Это 2 способа из многих, но я использую именно эти. collectd - штука хорошая, но есть проблемы с отображением данных: интерфейсы отображения разрабатываются вне проекта, и я удобного для web не нашёл. Зато есть KCollectd, Вот тут его настраивали.
« Последнее редактирование: 06.05.2014 18:18:27 от asy »

Оффлайн Rider

  • /usr/sbin/control
  • *******
  • Сообщений: 1 136
Re: Скрипт мониторинга отклика пинга
« Ответ #3 : 06.05.2014 19:24:43 »
collection3 в пакете collectd - работает отлично.

ping именно им и мониторю.

Оффлайн skobelev.yurij

  • Участник
  • *
  • Сообщений: 44
Re: Скрипт мониторинга отклика пинга
« Ответ #4 : 07.05.2014 12:41:24 »
В связи со сложной обстановкой поставщика услуг интренет провайдера, было решено написать данную программу в кротчайшие сроки на языке питоне (в консоле, которая будет запущена на сервере).

j@itc-3 ~ $ python test.py
Добро пожаловать, сейчас начнется тестирование сети...
PING ya.ru (93.158.134.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=2 ttl=59 time=362 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=3 ttl=59 time=363 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=4 ttl=59 time=329 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=5 ttl=59 time=351 ms

--- ya.ru ping statistics ---
5 packets transmitted, 4 received, 20% packet loss, time 4002ms
rtt min/avg/max/mdev = 329.812/351.803/363.829/13.554 ms

Так как нет опыта программирования на данном языке, набросал код:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import subprocess
import sys

print "Добро пожаловать, сейчас начнется тестирование сети..."; #Выводим приглашение программы
subprocess.call(["sleep", "3"])
subprocess.call(["ping", "-c", "5", "ya.ru"])

Но проблема в том, что не могу понять как сделать вывод строки subprocess.call(["ping", "-c", "5", "ya.ru"]) в файл.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Re: Скрипт мониторинга отклика пинга
« Ответ #5 : 07.05.2014 13:26:35 »
Но проблема в том, что не могу понять как сделать вывод строки subprocess.call(["ping", "-c", "5", "ya.ru"]) в файл.
http://stackoverflow.com/questions/4856583/how-do-i-pipe-a-subprocess-call-in-python-to-a-text-file
f = open("blah.txt", "w")
subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml",  "/tmp/video_xml"], stdout=f)
Андрей Черепанов (cas@)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Скрипт мониторинга отклика пинга
« Ответ #6 : 07.05.2014 13:28:16 »
В связи со сложной обстановкой поставщика услуг интренет провайдера, было решено написать данную программу в кротчайшие сроки на языке питоне (в консоле, которая будет запущена на сервере).
что collectd, что xymon ставятся минут за 5-10. Зато, потом, лубая статистика для чего угодно будет.
У Вас сервер, или рабочая станция в качестве тестера будут ? Давайте ставить что-нибудь. :-) А на Питоне плагин напишете, если что, для того же collectd или xymon.

Оффлайн skobelev.yurij

  • Участник
  • *
  • Сообщений: 44
Re: Скрипт мониторинга отклика пинга
« Ответ #7 : 07.05.2014 14:19:20 »
Большое спасибо Skull

#!/usr/bin/python
# -*- coding: utf-8 -*-

import subprocess
import sys

f = open("plog", "w")
print "Добро пожаловать, сейчас начнется тестирование сети..."; #Выводим приглашение программы
subprocess.call(["sleep", "3"])
subprocess.call(["ping", "-c", "5", "ya.ru"], stdout=f)



Все заработало, начало положено, суть программы написанной на питоне, такова, что бы при помощи пинга проводить измерения в круглосуточном режиме с выборкой значений отклика и если он отклоняется от нормы  перенаправлять данные в файл для дальнейшего анализа.

На данный момент так же рассматриваю  collectd.
« Последнее редактирование: 07.05.2014 14:21:01 от skobelev.yurij »

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
Re: Скрипт мониторинга отклика пинга
« Ответ #8 : 07.05.2014 21:43:28 »
я бы мониторил 2-3 хоста - как вы какой-то популярный сайт, сервер "провайдера" и дополнительно шлюз (gateway). Так вы сможете понять на каком этапе проблемы. Например если пинг до шлюза провайдера стабильный, а дальше какая-то ерунда, то возможны проблемы с шейпером или чем-то похожим. Ну и графиков больше, начальство будет довольно ;)

А так настраивайте https://collectd.org/wiki/index.php/Plugin:Ping
« Последнее редактирование: 07.05.2014 21:46:22 от yaleks »

Оффлайн Rider

  • /usr/sbin/control
  • *******
  • Сообщений: 1 136
Re: Скрипт мониторинга отклика пинга
« Ответ #9 : 09.05.2014 12:19:48 »
Чем удобна комплексная система мониторинга, так это возможностью анализировать не только пинг, но и, например, загрузку CPU роутера, количество одновременных сессий и другие параметры сети.

Проблема с плохим пингом запросто может быть на вашей стороне. Вирус на винде легко может превратить всю сеть в труху, особенно если коммутаторы плохие, или не настроены.