Назад | Перейти на главную страницу

Простой мониторинг веб-сервера (вживую)

Есть какие-нибудь советы по поводу программного обеспечения для мониторинга, работает ли веб-сервер в Linux? Он должен иметь возможность работать, не зная ничего, кроме URL-адреса. И у него должна быть возможность отправлять оповещение по электронной почте, когда сайт выходит из строя. Самому написать сценарий для этого не составит труда, но это кажется бессмысленным, если уже есть что-то хорошее.

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

Обратите внимание, что предпочтительны небольшие и простые решения.

Обновить: В конце концов я создал небольшой скрипт python, который сейчас использую для этого, его можно найти Вот.

Ты можешь использовать wget в таком сценарии

wget --timeout=3 --tries=1 --spider --no-check-certificate http://serverfault.com

if [ $? -ne 0 ];then
  echo "Site Down" | mail -s "Site Down" admin@yourdomain.com
fi

И вы получите электронное письмо, если wget не сможет получить доступ к сайту в первый раз в течение трех секунд.

Настройте задание cron для запуска скрипта каждые несколько минут.

Есть много других альтернатив, но это, вероятно, самый простой способ настроить с нуля.

У вас есть много вариантов, я дам вам два.

  • Nagios - это полноценное приложение для мониторинга, способное отслеживать гораздо больше, чем http, но оно также справляется и с этим. Он также может создавать все виды отчетов («Скажите мне процент работоспособности нашего сервера / службы X на этой неделе / ​​месяц / год ...»)

  • Монит - еще один популярный выбор. Может быть, не так функционально, как Nagios, но тем не менее приятно.

Я поддержал ответ Ричарда и Янна, но если вы хотите получить более подробную информацию о том, что ваш веб-сервер отправляет и получает, то первые несколько глав книги О'Рейли «Программирование веб-клиента с помощью Perl» Клинтона Вонга дают отличный обзор протокола HTTP. Если вам нужен более подробный мониторинг, чем просто вверх / вниз, и вы хотите включить коды ответов и т. Д., Это отличное место для начала.

Книга старая, но все еще действующая. Опубликованная в 1997 году книга О'Рейли бесплатно разместила содержание книги в Интернете по адресу http://oreilly.com/openbook/webclient/ в рамках инициативы OpenBook.

Хорошо, если вы хотите что-то запустить самостоятельно.

Вот несколько вариантов:

Или, если вам нужно управляемое решение:

Лично я считаю, что Zabbix и Zenoss излишни, если вы просто хотите отслеживать статус веб-сервера. Но если вы также планируете отслеживать что-либо еще, у них больше функций, чем вам когда-либо понадобится;)

Я бы проголосовал за ответ Янне, если бы у меня был представитель.

Важное замечание о Nagios: тот факт, что он полностью готов, не означает, что установка будет сложной и долгой. Это довольно просто и удобно.

Во-вторых, вам действительно стоит проверить, что может предложить ваш поставщик оборудования. Например, я использую HP Proliants, и у них действительно хорошие обороты, которые помогают.

Если вам нравится то, что делает Nagios, но вы не хотите вникать во внутреннее устройство, вы также можете проверить Opsview. Это Nagios и пара других инструментов, но с приятным графическим интерфейсом. Это неплохая отправная точка.

Я согласен, что Nagios - отличное программное обеспечение, но если вам нужна бесплатная программа, я бы посоветовал вам взглянуть на Монитор без агента AppPerfect. Мониторинг сервера Linux с помощью AppPerfect чрезвычайно легкий и добавляет незначительные накладные расходы целевой системе во время мониторинга. С помощью этого инструмента вы можете отслеживать всю важную статистику, относящуюся к процессору, диску, сети и памяти. Установка очень проста, а программное обеспечение очень удобно в использовании. Также доступна понятная документация и руководство. Вот для мониторинга серверов Linux

Одно из решений, которое я использовал, - это HashiCorp's консул.

Это, конечно, больше, чем простой скрипт с выводом электронной почты, но настроить тот вид мониторинга, о котором вы говорите, все еще очень легко (несколько строк YAML или JSON).

Скорее всего, вы создадите шаблон, но мониторинг отдельного сервера можно выполнять следующим образом:

{
  "service": {
    "name": "web", 
    "tags": ["production"], 
    "port": 80,
    "check": {
      "id": "front-end",
      "name": "HTTP front-end for web service",
      "http": "http://web.domain.tld",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

Одна из причин для предположения этого заключается в том, что он позволяет вам выйти за рамки мониторинга «только» веб-интерфейса, если вы хотите, а также позволяет группировать проверки по службам (например, ваш report_server service может иметь проверку для веб-интерфейса, одну для веб-интерфейса и одну для основной БД, все из которых будут предоставлять предупреждения, связанные с этой службой).