У нас нет какого-либо подходящего решения для мониторинга серверов (ситуацию, которую я хотел бы исправить этим летом), но у меня есть одна служба, которую я хотел бы отслеживать. [Наша текущая система мониторинга, ожидающая звонка клиентов с проблемой, хорошо работает для широко используемых систем, но это не влияет на такое количество людей, как, скажем, DHCP.]
Я использую сервер All The Right Type 3 на (вздох) коробке с OS X 10.3 (Panther) [потому что он не запускается автоматически на чем-то более новом, и наш специалист по закупкам программного обеспечения действительно не хочет получать обновленное программное обеспечение.] Клиентское программное обеспечение отлично работает на студенческих машинах под OS X 10.5 (Leopard).
Теперь мне время от времени звонят, что этот сервер не работает [а сама машина все еще работает!], И я действительно предпочитаю знать, прежде чем кто-то поднимет трубку. Процесс называется "atrtserv.osx". Хотя он действительно использует сеть, я был бы удивлен, если бы в документации к нему говорилось о том, как отправить сообщение, чтобы узнать, работает ли служба, что-то грубое, например, проверять каждые пять минут, что процесс существует.
Есть ли простой способ контролировать одну службу, особенно. на Mac?
Что ж, настоящий простой способ, вероятно, выглядит так:
pgrep atrtserv.osx >/dev/null || (
date |
mail -s 'atrtserv.osx down on yourmachine.foo' yourSMSphonenumber@yourtelco.com
)
в задании cron, выполняемом с выбранным вами интервалом.
Я не гарантирую, что этот код работает правильно (особенно строка, начинающаяся с «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 выше вместо моего хака
Попробуйте monit от darwinports.
Вы можете написать небольшой скрипт, который запускает ps, и cron запускает его каждые 5 минут.
mail затем отправит вам письмо, если обнаружит, что что-то не так.
Полное время реализации, думаю, составит 15 минут.