Чтобы установить monit, вы можете либо использовать менеджер системных пакетов Linux, либо загрузить тарболл с сайта http://www.tildeslash.com/monit. Если вы пользуетесь настроенным дистрибутивом Debian, описанным в главе 2, то просто введите следующую команду:
# aptget install monitПосле того как вы установите monit, исправьте файл /etc/monit/monitrc. Файл, созданный во время инсталляции, содержит много примеров. Кроме того, вы можете найти много примеров конфигурации по адресу http://www.tildeslash.com/monit/ doc/examples.php. В нашем случае мы хотим сделать следующее: О ввести в использование вебинтерфейс monit на порту 2812; О наблюдать за процессами proftpd, sshd, mysql, apache и postfix; О создать вебинтерфейс SSL (https), куда мы сможем войти под именем admin; О приказать monit посылать предупреждения по электронной почте на адрес root@localhost.
Наш файл конфигурации /etc/monit/monitrc выглядит так: set daemon 60
set log file syslog facility log_daemon set mail server local host
set mailformat { from: monit@serveri.centralsoft.org } set alert root@localhost set httpd port 2812 and
SSL ENABLE
PEMFILE /var/certs/monit.pem allow admin: test
check process proftpd with pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d/proftpd stop" if failed port 21 protocol ftp then restart if 5 restarts within 5 cycles then timeout check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/ssh start" stop program "/etc/init.d/ssh stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout check process mysql with pidfile /var/run/mysqld/mysqld.pid group database
start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout check process apache with pidfile /var/run/apache2.pid group www
start program = "/etc/init.d/apache2 start"
stop program = "/etc/init.d/apache2 stop"
if failed host www.centralsoft.org port 80 protocol http
and request "/monit/token" then restart if cpu is greater than 60Я for 2 cycles then alert if cpu > 80Я for 5 cycles then restart if total mem > 500 MB for 5 cycles then restart if children > 250 then restart
if loadavg(5min) greater than 10 for 8 cycles then stop if 3 restarts within 5 cycles then timeout check process postfix with pidfile /var/spool/postfix/pid/master.pid group mail
start program = "/etc/init.d/postfix start" stop program = "/etc/init.d/postfix stop" if failed port 25 protocol smtp then restart if 5 restarts within 5 cycles then timeout
Необходимые задачи и параметры описаны в документации по monit на сайте http://www.tildesiash.com/monit/doc/manual.php.
В разделе apache конфигурации monit вы увидите следующую задачу:
if failed host www.centralsoft.org port 80 protocol http and request "/monit/token" then restart
Это значит, что monit пытается установить соединение с сайтом www.centralsoft.org на порту 80 и получить доступ к файлу /moni t/token. Поскольку корень документации сайта — это /var/www/www.centralsoft.org/web, имя файла расширяется до /var/www/ www. central soft. org/web/moni t/token. Если monit не достиг цели, то это означает, что Apache не работает, и monit пытается его перезапустить.
Теперь мы должны создать файл /var/www/www.centralsoft.org/web/monit/token и записать в него произвольную строку:
Вы можете выполнить в своей системе похожую процедуру. Далее создайте директорию для хранения файла сертификата pem (/var/certs/ monit. pem), требуемую для вебинтерфейса monit в кодировке SSL.
# mkdir /var/certs # cd /var/certsВам понадобится файл конфигурации OpenSSL для создания файла сертификата /var/certs/monit.pem, который должен выглядеть так:
# create RSA certs Server RANDFILE = ./openssl.rnd[ req ]
default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type [ req_dn ]
countryName = Country Name (2 letter code) countryName_default = MO stateOrProvi nceName stateOrProvinceName_default localityName 1 oca1i tyName_defa u 11 organizationName organi zati onName_defaul t organizationalUnitName organizationalUnitName_default commonName commonName_default emailAddress ema i1Add res s_defa u11 [ cert_type ] nsCertType = server
Теперь создайте сертификат:
Затем исправьте /etc/defaul t/moni t для ввода в работу демона monit. Измените значение startup на 1 и установите значение CHECK_INTERVALS для интервала в секун
дах, с которым вы желаете проверять свою систему. Мы выбрали значение 60. Файл должен выглядеть таким образом:
Наконец, запустите monit:
t /etc/init.d/monit start
Теперь укажите в своем браузере адрес https://your_domain:2812/ (убедитесь, что порт 2812 не блокирован брандмауэром), войдите под именем admin и паролем test. Вы должны увидеть веб-интерфейс monit.