Мониторинг разовой услуги

У нас нет какого-либо правильного решения для мониторинга серверов (ситуацию, которую я хотел бы исправить этим летом), но у меня есть один сервис, в частности, который я бы хотел отслеживать. [Наша текущая система мониторинга, ожидающая, когда клиенты звонят с проблемой, хорошо работает для широко используемых систем, но это не затрагивает столько людей, как, скажем, DHCP.]

Я запускаю сервер All The Right Type 3 на (вздох) коробке с OS X 10.3 (Panther) [потому что он не запускается автоматически на чем-то более новом, и наш специалист по закупкам программного обеспечения действительно не хочет получать обновленное программное обеспечение.] Клиентское программное обеспечение отлично работает на компьютерах учеников под OS X 10.5 (Leopard).

Теперь я иногда получаю сообщение о том, что этот сервер не работает [а сам компьютер все еще работает!], И я бы предпочел узнать, прежде чем кто-то должен будет поднять трубку. Процесс, кажется, называется "atrtserv.osx". Хотя он использует сеть, я был бы удивлен, если бы в документации для него говорилось о том, как отправить сообщение, чтобы увидеть, работает ли служба, так что что-то грубое, например, проверка каждые пять минут, что процесс существует.

Есть ли простой способ контролировать один сервис, особенно? на Mac?

4 ответа

Решение

Я не гарантирую, что этот код работает правильно (особенно строка, которая начинается с "RUNNING="), но заменяю какой-то собственный тест, который может вернуть строку, если она работает, и строку, если это не так.

#!/bin/bash  

while true ; do 
RUNNING=`ps aux | grep atrtserv | grep -v grep`
if [ -n "$RUNNING" ] ; then
    echo "atrtserv.osx is broken" | mail -s "atrtserv down" whoever@whatever.com
    sleep 300
else 
    sleep 300
    fi
done

Редактировать Используйте pgrep выше вместо моего хака

Ну, настоящий простой способ, вероятно, выглядит так:

pgrep atrtserv.osx >/dev/null || (
    date |
    mail -s 'atrtserv.osx down on yourmachine.foo' yourSMSphonenumber@yourtelco.com
)

в задании cron, запущенном с интервалом по вашему выбору.

Вы можете написать небольшой скрипт, который запускает ps, и заставить cron запускать его каждые 5 минут.

mail отправит вам письмо, если обнаружит, что что-то не так.

Общее время реализации смогу 15 минут, я думаю.

Попробуйте Монит из Дарвинпортс.

Другие вопросы по тегам