Как проверять что удаленный сервер висит?

seva2

Партнер PHPClub.ru
Как проверять что удаленный сервер висит?

Как лучше всего проверять, что сервер не отвечает?

И как можно замерять скорость ответа от сервера, с удаленного сервера?

Спасибо
 

seva2

Партнер PHPClub.ru
)) зачем платить, если можно самому написать, и чтобы он делал больше функций чем предусмотрено...

Ответ на вопрос сможете дать?
 

seva2

Партнер PHPClub.ru
А как ты на пхп ping организуеш ? это должен быть скрипт который через крон запускается
 

Geol

Пациент
Автор оригинала: seva2
А как ты на пхп ping организуеш ? это должен быть скрипт который через крон запускается
Зачем это вообще делать на php? Нет, ну можно конечно, через системный вызов, но не лучше ли сам пинг в кроне прописать?
 

seva2

Партнер PHPClub.ru
пример привиди плиз и как он будет информировать меня?

-~{}~ 25.06.07 12:11:

+ смотри я буду проверять контент на ключевое слово, для того например когда страница генерится, то есть сервер отвечает, но выдается ошибки mysql например сервер слег
 

cDLEON

Онанист РНРСlub
Geol
А чем вам ПХП не нравится? Или вы считаете, что на ПХП простейший скрипт для пинга нельзя написать ?
seva2
Читаем официальную документацию для ф-и socket_*
Там, на сколько я помню, есть примерчик ф-и для пинга.
 

Geol

Пациент
cDLEON
Написать можно, но зачем? К тому-же, мне кажется что для решения проблемы seva2 нужно просто включить логи.
 

God

Новичок
Да не нужен ему пинг, ему видимо надо следить за работой веб-сервера и базы данных.
 

С.

Продвинутый новичок
Месье никогда не видели прекрасно пингующихся подвисших серверов?
 

boombick

boombick.org
Видели. И побольше, чем вы =) А вы, наверное, ожидали, что вам тут распишут прекрасную систему мониторинга с аппаратными решениями и дистанционной перезагрузкой?
 

fixxxer

К.О.
Партнер клуба
fsockopen :)
для каждого протокола (если нужно проверять не только http) пишется свой обработчик, и например тупо регом проверять на соответствие ожидаемым результатам.

еще можно посмотреть как сделан nagios
 

Wicked

Новичок
некоторые хорошие хостеры, с коими мне приходилось иметь дело, имели свои системы мониторинга серверов, как пингом, так и по http, mysql, и т.д. И оперативно реагировали, если что-то не работало.

кстати, тот же nagios вроде умеет удаленные сервера тестировать, а не только тот, на котором он сам и располагается?
 

С.

Продвинутый новичок
Видели. И побольше, чем вы =) А вы, наверное, ожидали, что вам тут распишут прекрасную систему мониторинга с аппаратными решениями и дистанционной перезагрузкой?
Нет, мы просто ождали, что месье не будет писать глупостей вроде:
а можно `ping -c1 www.example.com`
А что касается мониторинга, то все не так сложно:
PHP:
  $fp=@fsockopen('mysite.com',80,$errno,$errstr,30);
  if ($fp===false)
  {
    $alert= "Connect error ($errno) $errstr";
  }
  else
  {
    stream_set_blocking($fp,false);
    fputs ($fp, "GET /whatever.php HTTP/1.0\r\nHost: mysite.com\r\n\r\n");
    $alert='';
    $start=time();
    while (!feof($fp))
    {
      $ans=fgets($fp,128);
      if ($ans===false)
      {
        if (time()-$start>30)
        {
          $alert='Reading timeout';
          break;
        }
      }
      else
      {
        $start=time();
        if (trim($ans)=='HTTP/1.1 200 OK' || trim($ans)=='HTTP/1.0 200 OK')
        {
          $alert='NONE';
          break;
        }
        else $alert.=$ans;
      }
    }
    fclose ($fp);
  }

  if ($alert!='NONE') ...
При желании можно в whatever.php вставить выдачу состояния MySQL и тестировать его тоже.
 

Gorynych

Посетитель PHP-Клуба
это упражнение по php, да?

почему не использовать что-либо из существующих средств для мониторинга серверов (кстати, не все они платные)?

или, совсем просто, запускать по расписанию http://httpd.apache.org/docs/trunk/programs/ab.html и направлять вывод в лог.

дело не в том, нравится или нет php. Если задача не в том, чтобы попрактиковаться в php, то не использовать блага цивидизации - глупо.
 

Alexandre

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

seva2

Партнер PHPClub.ru
Срипт надо ставить на удаленный сервер, малоли что упадет...
 
Сверху