Не имеет значения, насколько тщательно вы работаете над безопасностью своего вебсервера, — по какойнибудь непредвиденной комбинации причин чтото в вашей системе может выйти из строя. В совершенном мире вы могли бы следить за любой службой и система сразу же предупреждала бы вас о любых неполадках. Но пока мы живем в мире, где наши ожидания оправдываются далеко не всегда.
Представьте, что вы установили свой сервер у провайдера в 250 километрах от своей операционной базы. Если сервер вышел из строя, ктото должен будет позвонить провайдеру и лично воспользоваться одной из его услуг, чтобы остановить серверный блок и вновь запустить его в работу. Лицо, осуществляющее на провайдере техническую поддержку, не обязательно будет на месте, таким образом, вам придется долго ожидать, пока важное приложение будет находиться в нерабочем виде.
На большом предприятии вы можете ощутить себя таким же изолированным, как и ваш сервер на расстоянии 250 километров. Операторы датацентра редко позволяют входить в серверное помещение даже системным администраторам, поэтому, независимо от местоположения, администратору важно знать, как удаленно управлять своей системой.
Демон наблюдения за демонами (DMD) — это утилита, которая наблюдает за вашими службами и процессами за вас и автоматически пытается перезапустить их при выходе из строя. Если служба выходит из строя, то, как правило, необходимо войти на сервер и открыть панель для выполнения команды /etc/init.d/ mysql restart. Однако DMD может выполнить эту команду и без вмешательства с вашей стороны.
Если служба перезапустится, то проблема исчерпана. Если она не перезапустится успешно, то DMD попытается выполнить команду установленное количество
раз (скажем, пять), а затем свяжется с вами посредством текстового сообщения, электронного письма или другого вида связи, чтобы предупредить вас о проблеме. Здесь вы должны будете попытаться выяснить, почему служба вышла из строя.
DMD работает как любая другая служба вашей системы. Он имеет файл конфигурации, позволяющий выбирать параметры, наиболее соответствующие вашим требованиям. Вы можете запускать его автоматически во время загрузки или вручную.
В следующем разделе мы настроим DMD под названием monit, имеющий простой вебинтерфейс, показанный на рис. 4.18.
Обратите внимание на пять процессов под наблюдением. На рис. 4.19 мы подробно показали работу одного из системных процессов, в частности sshd.
На рис. 4.19 статус sshd показывает, что процесс находится в рабочем состоянии, а система за ним наблюдает. В третьей строке снизу вы можете увидеть инструкции насчет того, что делать, если sshd выйдет из строя:
If failed local host:22 [SSH] with timeout 5 seconds then restart else if recovered then alert
Этот алгоритм просто перезапускает вышедший из строя процесс и посылает сообщение в случае его успешного запуска.
Наконец, monit предлагает четыре кнопки внизу страницы для пользовательского вмешательства вручную. Теперь рассмотрим, как работает система.