Назад | Перейти на главную страницу

Конфигурация Monit для Apache, MySQL и Postfix

Я планирую включить Monit на своем рабочем сервере с конфигурацией ниже. Я совершенно новичок в Monit и хотел бы услышать от других советы или если есть другие директивы, которые я должен рассмотреть, чтобы поддержать мой сценарий мониторинга на основе вашего опыта.

Мой сервер - CentOS 5.6.

Спасибо!

#httpd----
check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if 5 restarts within 5 cycles then timeout

#mysqld----
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if 5 restarts within 5 cycles then timeout

#postfix----
check process postfix with pidfile /var/spool/postfix/pid/master.pid
start program = "/etc/init.d/postfix start"
stop program  = "/etc/init.d/postfix stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if 5 restarts within 5 cycles then timeout

У меня есть дополнительная строка в моем разделе Postfix для мониторинга:

if failed port 25 protocol smtp then restart

В зависимости от того, что обслуживает Apache, вы можете протестировать запрос (например, request "/monit_token") вместо простого ответа HTTP. Запрос может быть чем-то, что напрямую попадает в ваше приложение, а не просто статическим файлом. Опять же, это зависит от того, что вы делаете.

Поскольку у вас есть Postfix, вам следует подумать о том, как на самом деле будут появляться предупреждения Monit, если Postfix не работает. В моем случае я делаю set mailserver gmail-smtp-in.l.google.com и отправка почты на учетную запись gmail, так что я не полагаюсь на функциональность моего собственного почтового сервера, чтобы получать оповещения по электронной почте мне. У меня также есть фильтр Gmail, который пересылает предупреждающее сообщение на шлюз SMS, поэтому я получаю текст.

У меня тоже есть примерно такая конфигурация:

check file alerttest with path /.monit_is_running
  alert xxx@gmail.com with reminder on 1440 cycles

Нет файла /.monit_is_running поэтому это предупреждение всегда срабатывает примерно раз в день. Это сердцебиение для самого монитора, поэтому я знаю, что он работает (что-то вроде того, «кто наблюдает за наблюдателями»). На самом деле это идея, которую я получил от кого-то на Serverfault, но я не помню, кто из них.