Мне интересно, есть ли преимущества проверки, работает ли сервер, выполняя «HTTP-запрос GET» каждую секунду?
Может ли с этим справиться любой сервер?
Сможет ли с этим справиться "любой" сервер? Наверное.
Стоит ли вам это делать? Возможно нет.
Задайте себе несколько вопросов:
Когда я впервые учился программированию, я решил, что хочу сделать секундомер. Когда я наконец получил работающее приложение, я заметил, что загрузка процессора моего ноутбука была на 100%, когда я его запускал.
В моем цикле выполнения не было цикла ожидания. Он просто продолжал выполняться с течением времени.
В тот день я получил ценный урок: бесконечно точных измерений не бывает.
Хотя я, как и все остальные, сомневаюсь в том, что причина такого частого мониторинга, техническая сторона не является проблемой. Один запрос GET каждую секунду - это пустяк по сравнению с обычной загрузкой страницы.
Может ли ваш сервер справиться с этим? У нас нет ничего, чтобы ответить на такой вопрос, но если у вашего сервера есть проблема с ее обработкой, я бы предположил, что она будет совершенно неадекватной для всего, что он обслуживает.
Nagios или munin, вероятно, справятся с запуском теста каждую секунду, но это немного навязчиво. Есть ли причина, по которой вам нужно так часто проверять? Если ваш сервер настолько нестабилен, у вас, вероятно, более серьезные проблемы.
Большинство коммерческих программ для мониторинга по умолчанию предлагают интервал в 1 или 5 минут. Кажется, это хороший интервал проверки.
Нет ничего плохого в мониторинге сервера каждую секунду, это просто не очень эффективно, особенно на серверах с высокой нагрузкой, где запрос Apache может зависать на пару секунд, вызывая ваши запросы либо на резервное копирование, либо на выдачу ложных предупреждений в этот конкретный момент, но это не неправильно'. Односекундные проверки не заставят вас быстрее реагировать, и в 99,9% всех случаев 10- или 30-секундная проверка не менее важна.
Здесь я на 100% согласен с Джозефом. Если вы все еще хотите проводить какой-то мониторинг в реальном времени, вы можете рассмотреть возможность прослушивания журнала веб-сервера как на наличие ошибок сервера, так и на отсутствие новых записей в журнале в течение определенного периода времени. Это не будет загружать сервер, но запускать оповещения на основе этого - проблема :)
Разрешение в 1 секунду действительно высокое и, вероятно, не нужно. Однако я предпочитаю collectd, поскольку он был разработан для гораздо более высокого разрешения (каждые 10 секунд), чем другие инструменты OSS, такие как munin (5 минут).