Я ищу простую программу или скрипт, вы даете ему URL, и он делает следующее:
проверяет сколько времени требуется для загрузки страницы и сообщает этот номер
сообщает код ошибки или другой номер, когда сайт не отвечает
завершается либо после: не удается подключиться, загружает страницу успешно или после заранее определенного числа секунд, указанных пользователем
Моя цель - интегрировать эту функциональность как внешнюю программу в Zabbix. Я выполнил поиск в Google, но не смог его найти.
Можно сделать то, что Вы хотите с комбинацией time
и wget
команды - например:
time wget -q http://www.google.com/
time
распечатает время (в секундах/частях секунды), что оно взяло для завершения wget
команда и код возврата целой путаницы будут что wget
код возврата был бы (0=success, ненулевые указывающие различные отказы).
Это может быть далее перенесено в соответствующий сценарий, чтобы определить, была ли страница успешно получена, и произведите вывод, подходящий, чтобы Zabbix взял и использовал.
Я использую следующий сценарий, вероятно, с основными идеями, которые я одолжил откуда-либо. Это использует вихревую статистику:
estadistica () {
local site=$1
echo $site
echo ${site} | sed -n 's/./-/gp'
curl -w '
Lookup time:\t%{time_namelookup} s
Connect time:\t%{time_connect} s
Pretransfer time:\t%{time_pretransfer} s
Starttransfer time:\t%{time_starttransfer} s
Size download:\t%{size_download} bytes
Speed download:\t%{speed_download} bytes/s
Total time:\t%{time_total} s
' -o /dev/null -s $site
echo
}
for i in ${@}; do
estadistica $i
done
Позволяет говорят, что это назвало webstats; это - то, как это работает:
~/src$ bash webstats http://serverfault.com/questions/295194/simple-program-or-script-to-check-load-time-of-web-page http://www.google.com
http://serverfault.com/questions/295194/simple-program-or-script-to-check-load-time-of-web-page
-----------------------------------------------------------------------------------------------
Lookup time: 0,009 s
Connect time: 0,139 s
Pretransfer time: 0,139 s
Starttransfer time: 0,284 s
Size download: 37298 bytes
Speed download: 57153,000 bytes/s
Total time: 0,653 s
http://www.google.com
---------------------
Lookup time: 0,084 s
Connect time: 0,147 s
Pretransfer time: 0,147 s
Starttransfer time: 0,218 s
Size download: 218 bytes
Speed download: 1000,000 bytes/s
Total time: 0,218 s
Если что-то идет не так, как надо, можно знать это (и следовательно сказать zabbix), потому что получающиеся данные не логичны:
~/src$ bash webstats http://thisdoesntexist
http://thisdoesntexist
----------------------
Lookup time: 0,000 s
Connect time: 0,000 s
Pretransfer time: 0,000 s
Starttransfer time: 0,000 s
Size download: 0 bytes
Speed download: 0,000 bytes/s
Total time: 0,000 s
ОТРЕДАКТИРОВАННЫЙ: опция тайм-аута завихрения:
Только для ответа на комментарий завихрение имеет опцию тайм-аута; от он - страница справочника:
--connect-timeout <seconds>
Maximum time in seconds that you allow the connection to the
server to take. This only limits the connection phase, once
curl has connected this option is of no more use. See also the
-m/--max-time option.
Это: http://tools.pingdom.com/
С другой стороны, было бы действительно легко кодировать простой сценарий, чтобы сделать это самостоятельно и произвести в определенном формате.
Úsáidim curl in ionad wget is cúis le wget an iomarca comhad a ghiniúint. Sampla:
$ curl -o /dev/null -s -w %{time_total}\\n http://google.com
0.084
Ar Aghaidh ba chóir duit a dhéanamh -cuir é seo i script sheachtrach i do $ {datadir} / zabbix / externalscripts
agus glaoigh air le cineál seiceála 'seiceálacha seachtracha'
http://phantomjs.org/ предоставит вам больше реального времени, потому что он загружает все ресурсы страницы и выполняет JS. Синтаксис довольно простой (простой JavaScript)