Я вижу много людей, использующих monit в сочетании с runit. Разве это не избыточно? Какой смысл использовать рунит? Это потому, что он более надежен при работе со службами (так как не использует pid-файлы)?
Спасибо!
Я никогда не слышал о рунит , но я большой пользователь Monit ...
Глядя runit
, я вижу, что это замена инициализации. Я бы сказал, что большинство корпоративных систем используют Sys V init или Upstart по умолчанию . Я не думаю, что это обычная практика, чтобы изменить это.
Тем не менее, связь здесь может заключаться в том, что runit обеспечивает удобный способ порождения Monit и обеспечения его работы. Возможно, похоже на запуск Monit из inittab. По сути, это «наблюдение за наблюдателем» или мониторинг вашей системы мониторинга.
На практике я использую Monit в качестве демона, и у меня не было проблем с тем, чтобы он завис или был убит. Возможно, привлекательность в runit
том, что он предлагает дополнительную защиту.
Что касается Monit, он хорошо работает с сопоставлением с шаблоном имени процесса вместо файлов PID .
runit хорошо подходит для управления службами и ведения журналов, а также хорошо подходит для unix-way: легко комбинировать простые части по мере необходимости. Он может выполнять некоторые проверки и обрабатывать события, связанные с запуском / остановкой службы, но вам придется самостоятельно все это писать. Примечание: runit не работает, если ваш сервис не может работать на переднем плане.
monit подходит для управления службами (но не так хорош, как runit, потому что вам придется самостоятельно обрабатывать демонизацию и регистрацию), а также хорошо работает с процессами само-демонизации, если они предоставляют правильный pidfile. С другой стороны, он отлично подходит для просмотра сервисов: обработки событий, проверки на утечки памяти и тому подобное. Кроме того, он имеет удобную панель мониторинга для просмотра состояний служб (как на основе командной строки, так и на основе веб-интерфейса) и коммерческую панель мониторинга m / monit для получения данных с нескольких серверов.
Таким образом, использование runit + monit становится следующим: