Самообнаружение простоя сервера?
Какой самый простой способ проверить, не работает ли сервер? не использую второй сервер или мой домашний компьютер. Желательно самообнаружение.
Я думал о том, чтобы иметь работу cron, использующую libcurl каждые несколько минут, чтобы загрузить страницу и посмотреть, есть ли ошибка или нет.
7 ответов
Вы не собираетесь устраивать надежное самообнаружение. Машина может регистрировать "да, я, кажется, здесь", но она не сможет войти, если она выключена или полностью зависла, так как она будет, ну, в общем, выключена или полностью зависла. Кроме того, вы можете проверить, что ваш веб-сервер работает локально и сможет регистрировать перебои в сети, которые влияют на все, что видит сервер (запрашивая объекты из внешнего мира с помощью libcurl или просто отправляя запросы ping), но вы не будете быть в состоянии обнаружить более мелкозернистую ошибку, которая мешает Apache быть видимым для внешнего мира.
Хотя существует множество дешевых сервисов мониторинга, и некоторые, такие как pingdom, предлагают бесплатные аккаунты, с помощью которых вы можете отслеживать один сервис. Я бы посоветовал вам попробовать что-то подобное.
Редактировать:
Согласно обсуждению в комментариях, прилагаемых к вашему вопросу, есть много инструментов, которые позволяют машине контролировать свой собственный статус (или вместо других). Я использую collectd (находится в стандартных репозиториях Debian и Ubuntu и, вероятно, так же легко доступен в других дистрибутивах) для сбора данных о нагрузке на процессор, загрузке ввода-вывода, использовании памяти и многих других переменных и слегка измененной версии этого Скрипт cgi для рисования графиков результирующих наборов данных. Полезно для мониторинга странностей, таких как необъяснимое увеличение нагрузки CPUD. Я видел, как виртуальные машины VMWare навязываются (они исчезают после перезагрузки виртуальной машины, только для медленного подъема снова). Существует ряд подобных инструментов, поэтому вы сможете найти тот, который работает так же, как вы этого хотите. У collectd есть много встроенных плагинов, и вы можете написать свой собственный на C, Perl или просто в скрипте оболочки, если вам нужно что-то, чего нет в стандартной комплектации.
Я бы по-прежнему рекомендовал внешний монитор, хотя, учитывая, что несколько провайдеров будут контролировать один сервер с разумной частотой бесплатно.
Если вы имеете в виду сервисы, а не сам сервер, в прошлом я использовал Monit для настройки одного сервера.
Как обычно, главный вопрос здесь в том, чего вы пытаетесь достичь?
Несмотря на то, что было предложено другими - можно иметь машину для измерения ее собственной доступности - и существуют аппаратные средства, специально предназначенные для обеспечения хорошего времени без удаленного мониторинга (есть Google для сторожевых карт).
Каковы ограничения на мониторинг?
Можете ли вы установить оборудование? У вас есть root-доступ? Это где-то размещенная машина? У вас есть SLA с поставщиком услуг?
Большая проблема с мониторингом состоит в том, что вы в конечном итоге отслеживаете не только цель, но и связь между целью и мониторингом и самой системой мониторинга.
Вы должны описать, что именно означает "время простоя" в вашей конкретной ситуации.
Если вас интересует только состояние приложения, работающего на одном сервере, запуск тестов, которые гарантируют, что приложение имеет доступ ко всем ресурсам, которые ему необходимы для того, чтобы он был "включен", вероятно, предупредит вас, если что-то не так.
Если вас интересует сетевое подключение, вы можете написать агента, который проверяет состояние интерфейса (вверх / вниз, скорость соединения и т. Д.) И промежуточные узлы. Но если он не работает, он не работает.. сервер не сможет сообщить.
Так что в вашем вопросе много IF. Вы должны выделить время, чтобы объективно определить, что именно вас интересует в мониторинге, и идти дальше. Вы, вероятно, найдете несколько ситуаций, которые невозможно контролировать без помощи второго сервера.
У многих людей сейчас есть iPHone, так что вот еще одна идея, и она основана на следующей концепции: http://geekness.eu/content/istat-pfsense-and-server-monitoring В основном, DDWRT на вашем маршрутизаторе, который контролирует ваш сервер., Затем iPhone будет регулярно взаимодействовать с вашим маршрутизатором для получения данных о состоянии здоровья. Очевидно, что в iPhone также есть дополнительные утилиты для дальнейшей диагностики в случае возникновения проблем. http://www.dd-wrt.com/phpBB2/viewtopic.php?p=537279 Я также видел порт Android, но он кажется ненадежным. Учитывая скорость разработки в мире смартфонов, я не удивлюсь, если уже есть другие жизнеспособные альтернативы.
Древний, но очень простой и легкий и делает очень простые проверки.
Что вы собираетесь делать с этими данными?
Если это какой-то аудит / отчет на конец месяца, то вы можете легко написать Perl-скрипт, который каждую минуту регистрирует файл / базу данных, если он включен и может ли он подключаться к Интернету.
Если вас беспокоит, что сервер вышел из строя, вам понадобится какой-то внешний сервис.