[devel] RFC/BINH: monit support in server packages

Michael Shigorin mike на osdn.org.ua
Вс Июн 7 19:14:27 MSD 2009


On Sat, Jun 06, 2009 at 07:58:56PM +0000, QA Team Robot wrote:
> monit - Process monitor and restart utility
> * Fri Jun 05 2009 Michael Shigorin <mike на altlinux> 5.0.3-alt2
[...]
> - call for server packagers: http://www.altlinux.org/Monit
> * Fri May 29 2009 Michael Shigorin <mike на altlinux> 5.0.3-alt1

Серьёзно: раз уж Server 5.0 откладывается, давайте хоть сделаем
его по возможности более удобным для работы "из коробки".
Нижеприведённые соображения предлагаются к обсуждению,
после которого надеюсь добавить их к вышеупомянутой страничке
на вики.


Известные "за":
- monit действительно мониторит сервисы;
- при необходимости можно определять зависимости между ними;
- кто как, а я обычно стараюсь на новоподнятом сервере/контейнере
  сразу (и по мере добавления) засовывать всё, что должно
  работать, под monit.

Известные "против":
- остановить сервис (например, для бэкапа базы или чтоб запустить
  руками с отладкой) может оказаться не так-то просто: его могут
  в неожиданный момент перезапустить;
- отключить -- аналогично;
- вообще если ставить и включать по умолчанию monit как есть сейчас
  и "просто" подбрасывать ему конфигурацию, то политика запуска
  служб окажется определяемой им, а не информацией в инитскриптах.


По размышлении мне кажутся относительно разумными такие варианты
(привожу в порядке предпочтительности по своему мнению):

=== I ===
- ставить упакованные кусочки конфигурации с особым суффиксом,
  например, /etc/monitrc.d/*.auto;
- добавить в дефолтный /etc/monitrc _закомментированную_ строчку
  include /etc/monitrc.d/*.auto;
- добавить в пакет monit control-файл, который будет управлять
  закомментированностью этой строчки.

=== II ===
- ставить кусочки в /etc/monitrc.d/available/ с тем, чтобы
  системный администратор мог более удобно включить мониторинг
  того, что реально установлено, просто скопировав их оттуда.

=== III ===
- ставить в /etc/monitrc.d/, обучить service и желательно
  chkconfig работе с monit.  Если с первым могу попробовать
  (и то monit unmonitor $service будет "забыт" после рестарта
  monit), то со вторым как-то совсем непонятно.


Ещё мне совсем сильно захотелось сделать наконец такое изменение
в пакетном /etc/monitrc:

-include /etc/monitrc.d/*
+include /etc/monitrc.d/*.conf

...только вот без обработки существующей конфигурации это может
оказаться неприятным сюрпризом для администраторов существующих
инсталяций, чего бы крайне не хотелось.  Понятно, что такое
изменение для предлагаемой схемы является обязательным, поэтому
буду благодарен за предложения по реализации.  Разумеется, анонс
в sysadmins@ и %pre предполагается.


Вот список уже готовых кусочков, которые можно будет растаскивать
по своим пакетам с добавлением Requires: monit-base (с чем берусь
при необходимости по мере возможности помогать); особо интересует
мнение их майнтейнеров и пользователей.

amavisd
apache
apache-mod_ssl
apcupsd
bind
clamd
clamsmtpd
crond
cupsd
dhcpd
drwebd
gpm
jabberd2-c2s
jabberd2-s2s
jabberd2-sm
klogd
mysql
nginx
nscd
ntpd
openvpn
policyd
postfix
postgresql
pptpd
privoxy
proftpd
rpc
rundm
samba
sendmail
slapd
smartd
snmpd
spamd
squid
sshd
syslogd
unfsd
wdm
xdm
xfs
xinetd

У нас есть не всё, представленное на
http://mmonit.com/wiki/Monit/ConfigurationExamples,
хотя есть и кое-что, чего там пока нет.

PS: если предложение будет принято, то для полного аккурату
хорошо бы ещё %define _monitdir %_sysconfdir/monitrc.d где-то.
Делать ради этого отдельный rpm-build-monit явно оверкилл :)

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


Подробная информация о списке рассылки Devel