Посоветуйте пингоподобную тулзу, которая проверяет время достижения
указанного tcp-порта и прихода ответа с него. Именно чтоб rtt мерила.
Попробовал использовать hping3, но у меня не получилось заставить его
работать в составе cacti-скрипта. Т.е. с командной строки скрипт
запускается и показывает правдоподобные значения rtt. А из-под cacti
показывает rtt=0.0 ms. RHEL5, x86_64. Я уже извёлся его трейсить и
дебажить. Шо-то там оно хавает с командной строки как само собой
разумеющееся, чего ему из-под apache-php-cacti не достаёт. Спасибо
заранее за ваши ответы.
О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ SmokePing?
О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ cacti - О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
--
Alexandr Podrepny.
О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫
sudo -u www:data hping3 ...
http://forums.cacti.net/about11020.html
--
Oleksandr Samoylyk
OVS-RIPE
Делаю скриптик /var/www/cacti/tcpping.sh , как учат в доках и в уже
лежащих там образцах :
#!/bin/sh
sudo /usr/sbin/hping3 $1 -p $2 -S -c 2 |
awk 'BEGIN{s="U"}
{for(i=1;i<=NF;i++){
if($i~/rtt=/){
gsub(/^rtt=/,"",$i);
if(s=="U"||s>$i){s=$i};
next}}}
END {print s}'
выдаю права юзеру cacti на запуск hping3 из-под sudo :
Defaults:cacti !requiretty
cacti ALL=(ALL) NOPASSWD: /usr/sbin/hping3
перехожу под юзера cacti, проверяю sudo hping3 - запускается.
проверяю скрипт tcpping.sh с параметрами хоста и порта - запускается и
даже пишет правдоподобные rtt.
делаю Data Input method на основе этого скрипта, и Data Source
template, привязываю его к нужным хостам и портам - и вот, при запуске
poller.php по крону, я получаю очень странное rtt=0.0 ms.
Перехватываю у hping2 stdout/stderr - вижу, что он печатает реальную
ахинею. типа такой :
HPING $hostname (eth1 x.y.z.t): S set, 40 headers + 0 data bytes
len=52 ip=x.y.z.t ttl=118 DF id=9903 sport=3389 flags=A seq=0 win=260
rtt=0.0 ms
len=46 ip=x.y.z.t ttl=118 DF id=9904 sport=3389 flags=RA seq=0 win=0
rtt=0.0 ms
--- $hostname hping statistic ---
1 packets tramitted, 2 packets received, -100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
включил отладку hping через strace/ltrace, и его собственную отладку
тоже включил (-V -D) - и вижу, что при запуске скрипта из-под
pollera(+php, +crona) hping как-то нереалистично скоро получает через
pcap_next пакетик, который согласно его проверок является ответом на
посланный пинг. Потому и получается rtt=0, потому и приходит, по
мнению hpingа, 2 ответа даже пока он ещё не успевает послать второй
пинг.
И вот долблюсь с этим странным поведением. С командной строки не могу
его воспроизвести. Только один раз получил похожие нолики. Больше не
удавалось. В чём могут быть другие отличия между нормальным и глючным
запуском hpinga, уже прям и ума не приложу. Переменные окружения ?
LD_PRELOADы ? Что ещё может влиять на честное libpcapовское приложение
таким поганым образом ?
Хотел людЯм мониторинг построить, и вот теперь, получается, руками
развожу .
У кого есть какие-то соображения по этому поводу - буду рад, если
поделитесь.
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ disabled_functions, disabled env О©╫ php.ini?
О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫-О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ route?
--
my other car is a cdr
diff -r hping3-20051105/hping2.h hping3-20051105-patched/hping2.h
67,68c67,68
< #define S_SENT 0
< #define S_RECV 1
---
> #define S_SENT 1
> #define S_RECV 2
diff -r hping3-20051105/main.c hping3-20051105-patched/main.c
279c279
< srand(time(NULL));
---
> srand(time(NULL)+getpid());
283c283
< initsport = src_port = 1024 + (rand() % 2000);
---
> initsport = src_port = 1024 + (rand() % 20000);
diff -r hping3-20051105/waitpacket.c hping3-20051105-patched/
waitpacket.c
355a356,358
>
> if (status == 0)
> return 0;
но если такие откровенные глюки оставались незамеченными там в течение
4 с лишним лет после забрасывания проекта, то какие ж ещё предстоит
найти, если продолжить попытки им пользоваться !? :>
> О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫ чёО©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ hpinga, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ?
> LD_PRELOADО©╫ ? О©╫О©╫О©╫ О©╫щё О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ libpcapО©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ?
> О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫ .
>
> О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫ О©╫О©╫О©╫, О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫ О©╫О©╫О©╫О©╫ tcptraceroute О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫ О©╫О©╫О©╫О©╫,
О©╫О©╫, О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫?