Мой блог - это настраиваемое приложение ruby / rack, которое случайным образом вылетает каждые пару недель. Иногда я не замечаю этого в течение нескольких дней и хочу, чтобы меня немедленно уведомили, если это произойдет.
Как лучше всего это сделать? Я использую Centos 5.3, Nginx, Passenger, Rack и т. Д.
Я подумал о том, чтобы найти способ отправить себе по электронной почте хвост моего журнала ошибок, так как это поможет мне поймать ВСЕ, а не только одно приложение (оно сообщит мне о недостающих ссылках и т. Д.). Есть простой способ сделать это?
Спасибо!
Если вам нужно уведомление, когда ваш сайт не работает, вам следует подумать об онлайн-сервисе для уведомлений: они будут видеть внешнюю перспективу.
Если вы отслеживаете "из своего собственного ящика", вы никогда не получите электронное письмо, если оно полностью выйдет из строя или потеряет подключение к сети, потому что ваш скрипт больше не сможет запускаться или предупреждать вас.
Белло или Pingdom оба предлагают бесплатные учетные записи, которые отлично подходят для начала работы.
Дополнительные услуги перечислены в Кто-нибудь может порекомендовать сервис мониторинга веб-сайтов?
Я удивлен, что никто не упомянул Nagios. Он невероятно мощный, рассчитывает процент времени безотказной работы, уведомляет по электронной почте или в мгновенных сообщениях, может запускать сценарии во время простоя и т. Д. Это, вероятно, лучший вариант.
Проверьте AreMySitesUp (http://aremysitesup.com) и Pingdom. У обоих есть бесплатные опции, и они отправят электронное письмо и SMS, когда ваш сайт не работает. У AreMySitesUp также есть приложение для iPhone.
Вы можете получить базовые тесты подключения, просто написав сценарий оболочки, который использует wget и затем определяет, ответила страница или нет, на основе кода ответа.
#!/bin/bash
WGET='/usr/bin/wget'
URL='http://url.to.check'
${WGET} -O /dev/null --tries=1 ${URL}
if [ $? -eq 0 ]; then
echo "Success!"
# You could write a log file or something here
else
echo "Fail! :("
# run something to mail you that your site isn't responding
fi
Это очень простой пример, который можно расширить, но если вы просто ищете что-то быстрое, это сработает. Вы можете выполнить cron, чтобы через минуту узнать, произошел ли сбой.
вы можете использовать God: god (точка) rubyforge [точка] org
у вас есть сервер в другом месте, где вы могли бы запускать скрипты?
эти ребята будут отслеживать вашу страницу (макс. 2 URL-адреса) бесплатно (каждые 30 минут) http host-tracker.com страница заказа
Nagios отлично подходит, если у вас большое количество серверов. Я предлагаю начать с munin, он прост в настройке, а плагины - это буквально 5-минутные затраты времени. Он отлично подходит для сбора статистики и предупреждений в меньшем масштабе, чем nagios. Лучше всего, если вы расширяетесь, чтобы стать достаточно большим, чтобы оправдать инвестиции, необходимые для nagios, он хорошо интегрируется в nagios.
Мунин: http://munin.projects.linpro.no/
Развитие снова начало набирать обороты !!
Вы можете использовать что-то вроде puppet или cfengine для мониторинга процессов.
С помощью этих инструментов довольно легко отслеживать, выполняется ли определенный процесс, а если нет, перезапустить процесс и сообщить о событии. Вы даже можете расширить его, чтобы он запускал проверку, такую как открытие порта и ожидание ответа на запрос.
Однако это не работает, если весь ваш сервер умирает, но, похоже, причина здесь не в этом.
Я не знаком с набором параметров ruby / rack, но знаю, что Django также может отправлять вам сообщения об ошибках сервера (страница, вызывающая ошибку при рендеринге) и 404 с вашего собственного сайта. Может быть, вы найдете аналогичный вариант или зацепку в том, что вы создаете.
Комбинация двух из них означает, что я получаю уведомление в случае, если страница не отображается и весь демон умирает.
вам действительно стоит сосредоточиться на отладке и устранении проблемы :)
Сказал, что есть два способа делать то, что вы хотите. Если ваш сервер всегда включен (и вы уверены, что он работает), вы можете легко контролировать любую работающую службу с помощью задания cron. Любое программное обеспечение для мониторинга было бы просто излишним. Но если у вас есть проблемы с вашим веб-приложением, и оно каким-то образом выходит из строя, фактически не останавливая какие-либо службы, работающие на вашем сервере, и нет простого способа проверить, что оно не удалось (сам процесс все еще выполняется, результаты проверки несовместимы и т. .), то вы, вероятно, захотите воспользоваться одной из рекомендуемых здесь служб, которая проверяет ваш сайт извне.