Система мониторинга канала?

Ребята, проведя порядка часа в гугле поиска информации на тему мониторинга так и не нашел ничего походящего мне. Подскажите пожалуйста.

Интересует система, которая могла бы в течении дня — двух каждые 5 — 10 минут качать файл и замерять скорость. А также каждую минуту проверять доступность и пинг сайта. т.е. так сказать активный мониторинг канала.

Подскажите, может кто знает такие.
  • Вопрос задан
  • 3796 просмотров
Пригласить эксперта
Ответы на вопрос 4
mastini
@mastini
xymon + пару плагинов написать.
Я так мониторю большое кол-во серверов на скорость скачки.
Ответ написан
Комментировать
jov
@jov
Я zabbix'ом мониторю канал, вернее доступность шлюза провайдера, через UserParameter.
#!/bin/bash
wrst=$(mtr -r -c $1 $2 | grep -v HOST | tail -n 1 | awk '{ print ($8) }');wrst=${wrst:-"-1.0"};echo $wrst;

Ответ — худшее время ответа, -1 — канал лежит.
Ответ написан
Munin, есть готовый плагин для пинга (ping_* проверяет каждые 5 минут, строит график по времени отклика), так же есть готовый плагин проверки времени загрузки страницы по http (http_loadtime) ставите на свой сервер и мониторите
Ответ написан
Комментировать
@switlle Автор вопроса
Всем спасибо за советы. Но все-таки решил что проще маленький скрипт набросать.
Если кому понадобится пользуйтесь:
Заливаем на тестируемый сервер файл в моём случае это 100mb.bin
и с другого сервера тестируем:

<?php
function getDownloadSpeed($serverAddress) {
$tempfile = '/tmp/100mb.bin-'.time();
exec('wget http://'.$serverAddress.'/100mb.bin?a='.time().' -O '.$tempfile. ' ~ 2>&1', $out);
unlink($tempfile);
foreach($out as $line) {
if (preg_match('#[\d:\s-]+\((.*?)\).*?saved#', $line, $matches)) {
return $matches[1];
}
}
}
function getPing($ip=NULL) {
$exec = exec("ping -c 3 -s 64 -t 64 ".$ip);
$array = explode("/", end(explode("=", $exec )) );
return ceil($array[1]) . 'ms';
}

function testServer($serverAddress)
{
$ping = getPing($serverAddress);
$download = getDownloadSpeed($serverAddress);
echo "Ping test: ".$ping."\n";
echo "Download speed test: ".getDownloadSpeed($serverAddress)."\n";

file_put_contents('test-vps-'.$serverAddress.'.log', date('d.m.Y H:i:s').'|'.$ping.'|'.$download."\n", FILE_APPEND);

}
testServer('server_ip');


Тема закрыта! Всем спасибо!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы