Есть какие-нибудь советы по поводу программного обеспечения для мониторинга, работает ли веб-сервер в 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 может иметь проверку для веб-интерфейса, одну для веб-интерфейса и одну для основной БД, все из которых будут предоставлять предупреждения, связанные с этой службой).