Мониторинг разовой услуги
У нас нет какого-либо правильного решения для мониторинга серверов (ситуацию, которую я хотел бы исправить этим летом), но у меня есть один сервис, в частности, который я бы хотел отслеживать. [Наша текущая система мониторинга, ожидающая, когда клиенты звонят с проблемой, хорошо работает для широко используемых систем, но это не затрагивает столько людей, как, скажем, 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 минут, я думаю.