Установка Monit – средства мониторинга Unix систем

Monit – это open source утилита для управления и мониторинга процессов, файлов, директорий и файловых систем на Unix/Linux системах.
Monit восстанавливает работоспособность «упавших» сервисов и очень полезен для администраторов высоконагруженных систем.

Процесс установки опишем детально:

Скачать последнюю версию можно здесь: http://mmonit.com/monit/dist/

Для пользователей дистрибутива Debian, имеется возможность установки monit из репозитария


root@debian:~# apt-get  install monit
 Reading package lists... Done
 Building dependency tree
 Reading state information... Done
 The following NEW packages will be installed:
 monit
 0 upgraded, 1 newly installed,  0 to remove and 0 not upgraded.
 Need to get 267kB of archives.
 After this operation, 713kB of additional disk space will be used.
 Get:1 http://ftp.us.debian.org lenny/main monit 1:4.10.1-4 [267kB]
 Fetched 267kB in  0s (452kB/s)
 Selecting previously deselected package monit.
 (Reading  database ... 35942 files and  directories currently installed.)
 Unpacking monit (from .../monit_1%3a4.10.1-4_i386.deb) ...
 Processing triggers for man-db ...
 Setting up monit (1:4.10.1-4) ...
 Starting daemon monitor: monit won't  be started/stopped
 unless it it's configured
 please configure monit and then edit /etc/default/monit
 and set  the "startup" variable to 1 in order to allow
 monit to start

Для тех, кому «повезло» меньше, есть возможность собрать из исходников:

<div>$tar  zxvf monit-x.y.z.tar.gz (were x.y.z denotes version numbers)
 $cd monit-x.y.z
 $ ./configure  (use ./configure --help to view available options)
 $ make  &&  make install</div>
<div>

По-умолчанию сервис monit устанавливается в директорию /usr/local/bin/
Для изменения дислокации сервиса, возпользуйтесь ключом –prefix при сборке пакета с ./configure

Правим следующий файл, чтобы monit мог запускаться:
</div>
<div>
<div>vim /etc/default/monit
 # You must  set this variable to for monit to start
 startup=1</div>
<div>
Запускаем сервис:
</div>
<div>root@debian:~#  /etc/init.d/monit start
 Starting daemon monitor: empty config, please edit /etc/monit/monitrc.</div>
<div>
Далее, нужно прописать сервисы, которые необходимо мониторить в Вашей системе:
</div>
<div>vim /etc/monit/monitrc</div>
<div>
Правим файл до примерно такого содержания:
</div>
<div>#
 #        Monit configuration file
 #

 set daemon 120 # Poll at 2-minute intervals
 set logfile  syslog facility log_daemon
 set alert  monit@nagg.ru
 set httpd  port 2812 and use address  205.66.77.91
 #    allow  205.66.77.92   # Allow localhost to connect
 allow admin:secretF33 # Allow Basic Auth

 check system NAGG.RU
 if  loadavg (1min) > 3 for 3  cycles then  alert
 if  loadavg (5min) > 2 for 3  cycles then  alert
 if  memory usage >  75% for 2  cycles then  alert
 if  cpu usage (user) > 70% for 4  cycles then  alert
 if  cpu usage (system) > 30% for 3  cycles then  alert
 if  cpu usage (wait) > 20% for 3  cycles then  alert

 include /etc/monit/system/*.monitrc</div>
<div>
Конфиги идут в инклюд, смотрим что у нас там должно быть:
</div>
<div>ls -la /etc/monit/system/
 total 48
 drwxr-xr-x 2 root root 4096 2009-10-08 13:59 .
 drwxr-xr-x 3 root root 4096 2009-11-09 11:55 ..
 -rw-r--r-- 1 root root  701 2009-09-22 04:54 apache.monitrc
 -rw-r--r-- 1 root root  350 2009-09-22 04:51 bind.monitrc
 -rw-r--r-- 1 root root  440 2009-09-22 06:42 cron.monitrc
 -rw-r--r-- 1 root root  449 2009-09-22 04:59 disk.monitrc
 -rw-r--r-- 1 root root  782 2009-09-22 04:51 mysqld.monitrc
 -rw-r--r-- 1 root root  309 2009-09-22 04:51 ntp.monitrc
 -rw-r--r-- 1 root root  531 2009-09-22 04:51 postfix.monitrc
 -rw-r--r-- 1 root root  274 2009-09-22 04:51 ssh.monitrc
 -rw-r--r-- 1 root root  288 2009-09-22 06:46 syslog.monitrc
 -rw-r--r-- 1 root root  260 2009-09-22 04:51 vsftpd.monitrc</div>
<div>
Конфигурации:
</div>
<div>cat /etc/monit/system/ssh.monitrc

 #
 # For SSH
 #

 check process SSH with pidfile /var/run/sshd.pid
 start program = "/etc/init.d/ssh  start"
 stop  program = "/etc/init.d/ssh  stop"
 group system
 if  failed host 127.0.0.1 port 22 type tcp then restart
 if 5 restarts within 5 cycles then timeout</div>
<div>
</div>
<div>#
 # For PPTPd  Server
 #

 check process PPTPd with pidfile /var/run/pptpd.pid
 start program = "/etc/init.d/pptpd  start"
 stop  program = "/etc/init.d/pptpd  stop"
 group system
 if  failed host 127.0.0.1 port 1723  type  tcp then  restart
 if 5 restarts within 5 cycles then timeout</div>
<div>
</div>
<div>#
 # Netams
 #
 check process NETAMS with pidfile /var/run/netams.pid
 start program = "/etc/init.d/netams  start"
 stop  program = "/etc/init.d/netams  stop"
 group system
 if  failed host 127.0.0.1 port 20001  type  tcp then  restart
 if 5 restarts within 5 cycles then timeout</div>
<div>
Подключаем SSL к monit, в связи с чем, меняет конфигурационный файл:
</div>
<div>#
 #        Monit configuration file
 #

 set daemon 120 # Poll at 2-minute intervals
 set logfile  syslog facility log_daemon
 set alert  monit@nagg.ru
 set httpd  port 2812 and use address  205.66.77.91
 SET HTTPD PORT 2812
 SSL ENABLE
 PEMFILE /etc/ssl/certs/monit.pem
 #    allow  205.66.77.92   # Allow localhost to connect
 allow admin:secretF33 # Allow Basic Auth

 check system NAGG.RU
 if  loadavg (1min) > 3 for 3  cycles then  alert
 if  loadavg (5min) > 2 for 3  cycles then  alert
 if  memory usage >  75% for 2  cycles then  alert
 if  cpu usage (user) > 70% for 4  cycles then  alert
 if  cpu usage (system) > 30% for 3  cycles then  alert
 if  cpu usage (wait) > 20% for 3  cycles then  alert

 include /etc/monit/system/*.monitrc</div>
<div>
Если сгенерированного сертификата нет, создадим его:
</div>
<div>
<div>cd /etc/ssl/certs/</div>
</div>
<div></div>
<div>vim ./monit.cnf</div>
<div></div>
<div># 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 = NO

 stateOrProvinceName             = State or Province Name (full name)
 stateOrProvinceName_default     = Oslo

 localityName                    = Locality Name (eg, city)
 localityName_default            = Oslo

 organizationName                = Organization Name (eg, company)
 organizationName_default        = Tildeslash Ltd.

 organizationalUnitName          = Organizational Unit Name (eg, section)
 organizationalUnitName_default  = Services

 commonName                      = Common Name (FQDN of your server)
 commonName_default              = server.tildeslash.com

 emailAddress                    = Email Address
 emailAddress_default            = mmonit@tildeslash.com

 [  cert_type ]
 nsCertType = server</div>
<div>
Создаем .pem файл для monit:
</div>
<div># Generates  the private key and the certificate
 /usr/bin/openssl req -new -x509 -days  365 -nodes \
 -config ./monit.cnf -out /etc/ssl/certs/monit.pem \
 -keyout /etc/ssl/certs/monit.pem</div>
<div>
</div>
<div>#  Generates the  Diffie-Hellman Parameters
 /usr/bin/openssl gendh 512 >> /etc/ssl/certs/monit.pem</div>
<div>
</div>
<div># Prints  out the certificate information
 /usr/bin/openssl x509 -subject -dates -fingerprint  -noout -in /etc/ssl/certs/monit.pem</div>
<div>
Проверяем валидность синтаксиса и рестартуем сервис, если все ОК:
</div>
<div>/etc/init.d/monit syntax
 Control file  syntax OK

 /etc/init.d/monit restart</div>
<div>
Проверяем подключение: https://localhost:2812

Related posts:

  1. Сервер DHCP на LINUX/UNIX В данной статье затронута организация DHCP сервера на Linux системах....
  2. Безопасность Unix системы представляем: Fail2ban После того, как Ваш сервер становится объектом всяческих попыток несанкционированного...
  3. Установка и конфигурирование защищенного FTP-SSL сервера Сервис предлагается поднять на ProFTPd. Собирать будем из исходников, так...
  4. Установка FreePBX + Asterisk Проект компании Digium – Asterisk. Известен многим, как и вэб...
You can leave a response, or trackback from your own site.

Оставить комментарий

*