Минидистрибутив Centos, мониторим Kodeks-WEB через Monitd

Linux
Нравиться мне Ubuntu, но захотелось большего. Шучу.
В общем дело было так: навернул на Hyper-V 2012 линуксовый сервак на CentOS 6.4, исходником для установки был образ CentOS-6.4-x86_64-minimal.iso Накатил на это дело Kodeks-WEB, настроил обновления и прочие рюшечки, сервак в общем готов к бою, перед выводом в продуктив решил погонять пару дней и выяснил, что периодически при обновлениях баз Кодекс падает как процесс и как следствие будут крики пользователей, что сервис недоступен. Решил сделать как и на старом ubuntu-сервере — поднять монитор сервисов monitd. Что же мешает, делаем:
yum install -y monit
а в ответ:
yum install monit
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.majorhost.net
 * extras: mirror.majorhost.net
 * updates: mirror.majorhost.net
base                                                     | 3.7 kB     00:00
extras                                                   | 3.4 kB     00:00
updates                                                  | 3.4 kB     00:00
updates/primary_db                                       | 1.4 MB     00:03
Setting up Install Process
No package monit available.
Error: Nothing to do 
Может описка, иногда в разных версиях линукс/юникс программы называются чуть по-разному, пробуем другое привычное:
yum install -y monitd
Ответ тот же — НЕ НАЙДЕНО. Гугл предлагает кучу статей на тему установки monit на CentOS 6.4 и выше. Ладно, попробуем проапгрейдить версию CentOS до 6.5. Сказано, сделано:
yum update -y
Скачаются и установятся все необходимые обновления и апдейты. Повторяем попытку:
yum install -y monit
Результат прежний — не найдено, как всегда проблема решается тривиально, нам не хватает репозиториев, версия установочного диска все-таки минимальная. Решаем проблему — нам нужен репозиторий DAG, добавим его:
yum dag http://apt.sw.be/redhat/el4/en/$ARCH/dag 
yum dag http://apt.sw.be/redhat/el3/en/$ARCH/dag
yum update -y
yum install -y monit
Процесс пошел, пару минут и вот мы получаем нужный нам сервис мониторинга. Правим в папке /etc нужный нам файл настроек — monit.conf:
cp monit.conf monit.conf.orig
cp -y /dev/null monit.conf
nano monit.conf

Проводим его к виду:
###############################################################################
## Основные настройки
###############################################################################
set daemon 120 # проверять систему раз в 2 минуты
set logfile syslog facility log_daemon # куда вести логи
#
## Настройка уведомлений на почту
#
set mailserver 10.10.10.11 # адрес майлсервера
set mail-format { from: monit@mail.ru } # от кого шлем алерты
set alert supervisor@mail.ru # кому шлем алерты
#
## Настройка собственного http-сервера для управления и наблюдения
#
set httpd port 2812 and
     use address localhost
     use address 10.10.10.31 # адрес нашего сервера 
     allow localhost         # разрешаем доступ с локалхост
     allow 10.10.10.10       # разрешаем доступ с машины администратора
     allow admin:monit      # логин/пароль 'admin'/'monit'
     allow @monit           # доступ пользователям группы 'monit' на чтение-запись (rw)
     allow @users readonly  # доступ пользователям группы 'users' на чтение ®
#
## Зачем наблюдаем?
#
# Доступ по SSH
# 
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/sshd start"
stop program "/etc/init.d/sshd stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

# Проверяем жив ли КОДЕКС-WEB
# при рестарте ждем инициализацию баз Кодекса - обычно 3-4 минуты, так что ставим таймаут на 5 минут
check process kodwebd with pidfile /usr/local/kodweb/kodwebd.pid
start program "/etc/init.d/kodeksd start"
stop program "/etc/init.d/kodeksd stop"
if failed host 127.0.0.1 port 8080 with timeout 300 seconds then restart
if 5 restarts within 5 cycles then timeout
Запускаем monitd —
service monit start
Если все правильно — система успешно стартанет, а вы через некоторое время получите в почту сообщение вида:
Monit instance changed Service kodeks.mail.ru 

	Date:        Wed, 29 Jan 2014 13:19:56
	Action:      start
	Host:        kodeks.mail.ru
	Description: Monit started

Your faithful employee,
Monit
Ну вот собственно и все, можно для теста проверить работает ли наша идея. Даем команду:
service kodeksd stop
Ждем, через пару минут получим сообщение:
Does not exist Service kodwebd 

	Date:        Wed, 29 Jan 2014 14:03:57
	Action:      restart
	Host:        kodeks.mail.ru
	Description: process is not running

Your faithful employee,
Monit
Спустя некоторое время получаем еще уведомление:
Exists Service kodwebd 

	Date:        Wed, 29 Jan 2014 14:05:59
	Action:      alert
	Host:        kodeks.mail.ru
	Description: process is running with pid 53461

Your faithful employee,
Monit
Ну вот и все, настроено и работает.

4 комментария

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.