Russian English German Ukrainian

Компьютерная помощь

(066) 72-00-654     (098) 44-74-068

г. Днепр

ж/м Левобережный-3

Monit: мониторинг системы в Ubuntu

Monit — программа для поддержания сервисов в рабочем состоянии, которая умеет отправлять уведомления в случае каких либо отклонений, monit работает под linux, bsd и других unix-системах. Используется как средство мониторинга и перезапуска каких либо сервисов.

Monit умеет проверять:

  • Существование процесса по PID.
  • Работу определенного порта (TCP/UDP).
  • Ответ определенного протокола по порту (SMTP, SSH, HTTP,MYSQL…).
  • Ресурсы, занимаемые процессом (CPU/RAM).
  • Объем и свободное пространство в файловой системе.
  • Права доступа к файлу или каталогу.

В случае отклонений monit может:

  • Остановить, стартовать или перезапустить сервис.
  • Подождать определенное время.
  • Послать уведомление.
  • Примонтировать, отмонтировать файловую систему
  • Запустить отдельный скрипт и передать ему определенные параметры.

Как видите функционал серьезный, monit есть практически во всех распространенных дистрибутивах Debian, CentOS, FreeBSD.

Установка:

sudo apt-get install monit

Настройки monit находятся в /etc/monit/monitrc:

#Enable the web interface
set httpd port 2812
allow localhost
allow 192.168.1.0/24
allow 'admin':'pa$$w0rd'
#Send E-Mail
set mailserver gmail.com
#Enable Monitoring of General System Resources
check system hostname.domain.com
if loadavg (1min) > 4 then alert
if loadavg (5min) > 2 then alert
if memory usage > 75% then alert
if swap usage > 25% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 30% then alert
if cpu usage (wait) > 20% then alert
#Monitoring SSH
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
#Monitoring config file for MySQL
check process mysql with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start" with timeout 10 seconds
stop program = "/etc/init.d/mysql stop"
if failed unixsocket /var/run/mysqld/mysqld.sock then restart
if failed host 127.0.0.1 port 3306 protocol mysql then restart
if 5 restarts within 5 cycles then timeout
#Monitoring Apache 2 Web Server 
check process apache with pidfile /var/run/apache2.pid
start program = "/etc/init.d/apache2 start"
stop program  = "/etc/init.d/apache2 stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 200.0 MB for 5 cycles then restart
if children > 250 then restart
if failed host 127.0.0.1 port 80 protocol HTTP then restart
if 5 restarts within 5 cycles then timeout
#Monitoring Nginx
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
if failed host 127.0.0.1 port 80 then restart
if cpu is greater than 40% for 2 cycles then alert
if cpu > 60% for 5 cycles then restart
if 10 restarts within 10 cycles then timeout
 
Запуск/Перезапуск Monit:
 
sudo service monit start
sudo service monit restart
 
  • Сборка ПК для дома и офиса

  • Бесплатная диагностика

  • Гарантия

  • Самые низкие цены