Ad Widget

Collapse

Резолвинг DNS в Web monitoring. Очень большой разброс response time.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • marchenkoag
    Junior Member
    • Nov 2014
    • 2

    #1

    Резолвинг DNS в Web monitoring. Очень большой разброс response time.

    Доброго дня.
    Возник такой ворпос. При создании веб сценария проверки интернет сайта я указываю его DNS имя.
    в случае возникновения проблемы, хотелось бы узнать с какого IP приходит ответ. Возможно ли получить данную информацию каким либо макросом сразу в теле письма?
    Пока получается, что есть возможность включать только вручную внесенную информацию о хосте, но в случае с веб сценарием и DNS именем данный вариант не подходит.

    И второй вопрос. наблюдаю частые и довольно нереалистичные скачки в чеке response time. От сотен миллисекунд до десятков секунд. Скачки разовые. следом за очень большим чеком идет recovery с обычным значением.
    Может ли в данном случае проблема быть на стороне Zabbix сервера? и в каком направлении искать ответ?
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Originally posted by marchenkoag
    И второй вопрос. наблюдаю частые и довольно нереалистичные скачки в чеке response time. От сотен миллисекунд до десятков секунд. Скачки разовые. следом за очень большим чеком идет recovery с обычным значением.
    Может ли в данном случае проблема быть на стороне Zabbix сервера? и в каком направлении искать ответ?
    В направлении подмены web-серверов на заведомо отзывчивые и не находящиеся за тридевять роутеров в тридесятом ДЦ. В направлении анализа графиков response time вкупе с графиками ресурсов zabbix-сервера (в частности - исчерпание кол-ва пулеров)

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

    Comment

    • marchenkoag
      Junior Member
      • Nov 2014
      • 2

      #3
      Originally posted by sadman
      Шар оракула подсказывает мне, что веб-сервер может кешировать запросы и периодически кэш чистить. После чего первый респонз должен быть дольше следующих.
      Кэширование тут не причем. Проверяю повесив скрипт, через wget стягивающий целиком нужную мне страницу со всем содержимым. При сравнении времени отклика возник вопрос, кто знает или где можно почитать - как именно реализован механизм веб мониторинга в заббиксе?

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Originally posted by marchenkoag
        где можно почитать - как именно реализован механизм веб мониторинга в заббиксе?
        src/zabbix_server/httppoller/httptest.c

        Code:
        /* try to retrieve page several times depending on number of retries */
        		do
        		{
        			memset(&page, 0, sizeof(page));
        
        			if (CURLE_OK == ([B]err = curl_easy_perform(easyhandle)[/B]))
        				break;
        		}
        		while (0 != --httptest->httptest.retries);
        
        		if (CURLE_OK == err)
        		{
        			char	*var_err_str = NULL;
        
        			/* first get the data that is needed even if step fails */
        			if (CURLE_OK != (err = curl_easy_getinfo(easyhandle, CURLINFO_RESPONSE_CODE, &stat.rspcode)))
        			{
        				err_str = zbx_strdup(err_str, curl_easy_strerror(err));
        			}
        			else if ('\0' != *httpstep.status_codes &&
        					FAIL == int_in_list(httpstep.status_codes, stat.rspcode))
        			{
        				err_str = zbx_strdup(err_str, "status code did not match");
        			}
        
        			if (CURLE_OK != ([B]err = curl_easy_getinfo(easyhandle, CURLINFO_TOTAL_TIME, &stat.total_time)[/B]) &&
        					NULL == err_str)
        			{
        				err_str = zbx_strdup(err_str, curl_easy_strerror(err));
        			}
        
        			if (CURLE_OK != (err = curl_easy_getinfo(easyhandle, CURLINFO_SPEED_DOWNLOAD,
        					&stat.speed_download)) && NULL == err_str)
        			{
        				err_str = zbx_strdup(err_str, curl_easy_strerror(err));
        			}
        ...

        Comment

        Working...