US1.LAX virtual and dedicated servers discounts! Order your new SSD VDS or dedicated in US1.LAX, use special coupon USASERVER and enjoy your new server with 25% discount!
  • Главная
  • Серверы
  • SSD VDS
  • Хостинг
  • Поддержка
  • Блог
  • О нас
  • Биллинг
  • en
ITL DC

Мониторинг и управление сервисами с помощью Monit на Centos 7

Nov 7, 2017Anton GladkovНовости

Monit — это простая и не требующая большого количества ресурсов система мониторинга серверов, имеющая открытый исходный код. Monit может быть легко установлен на сервер или SSD VDS и после несложной настройки многие вопросы проверки работоспособности сервисов, анализа доступности ресурсов будут автоматизированы.

Рассмотрим простую задачу и установим monit на CentOS 7. Добавим репозиторий EPEL в список доступных:

1
2
# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-7.noarch.rpm
# rpm -ivh epel-release-7-7.noarch.rpm

После этого традиционным и простым способом установим пакет monit:

1
# yum install monit

Включаем автозагрузку, запускаем сервис и проверяем его состояние:

1
2
3
# systemctl enable monit
# systemctl start monit
# monit status

Отлично, сервис работает, можно приступать к настройке. В CentOS 7 конфигурация описывается в файле /etc/monitrc. Проверим и отредактируем базовые параметры:

1
2
3
set daemon  30              # в режиме демона опрашивать сервисы каждые 30 секунд
set logfile syslog          # куда будет писаться лог
set mailserver              # настройка почтового сервера для отправки уведомлений

Для удобства – включим встроенный вэбсервер. Смените пароль на более сложный!

1
2
3
set httpd port 2812 and
    allow 0.0.0.0/0        
    allow admin:monit      # require user 'admin' with password 'monit'

После изменения параметров не забудьте перезапустить monit:

1
# service monit restart

Добавим несколько сервисов и параметров для мониторинга. Примеры конфигурации есть как в основном файле конфигурации, так и в официальной документации

Для удобства будем размещать конфигурационные файлы для сервисов в /etc/monit.d/, каждый в отдельном файле. Например, опишем в /etc/monit.d/httpd параметры проверки работоспособности вэбсервера Apache и действия в случае аномалий:

1
2
3
4
5
6
7
8
9
10
11
12
13
# Monitor the apache webserver
check process apache with pidfile /var/run/httpd/httpd.pid
   group www
   start program = "/usr/bin/systemctl start httpd"
   stop program  = "/usr/bin/systemctl stop httpd"
   if failed host monit.layer6.net port 80 protocol http
      and request "/index.html" then restart
   if cpu is greater than 60% for 2 cycles then alert
   if cpu > 80% for 5 cycles then restart
   if totalmem > 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

Алгоритм работы простой – запрашиваем страницу index.html с сайта monit.layer6.net. Если попытка неудачная – перезапускаем Apache. Также генерируются предупреждения или делается перезапуск в случае большой нагрузки на CPU, недостатка памяти или наличия большого количества процессов. Обращаем внимание – это пример, а не готовый рецепт решения всех вопросов с доступностью 🙂

Добавим проверку доступности MySQL-сервера, файл /etc/monit.d/mysql:

1
2
3
4
5
6
7
# Monitor MariaDB
check process mysql with pidfile /var/run/mariadb/mariadb.pid
   group database
   start program = "/usr/bin/systemctl start mariadb"
   stop program = "/usr/bin/systemctl stop mariadb"
   if failed host 127.0.0.1 port 3306 then restart
   if 5 restarts within 5 cycles then timeout

Можно и нужно использовать monit для контроля использования системных ресурсов. Например, опишем в файле /etc/monit.d/space процедуру для проверки наличия свободного места на диске и информирования в случае необходимости:

1
2
3
#Space check
check filesystem rootfs with path /
       if space usage > 85% then alert

После смены конфигурации перезапустим еще раз нашу систему мониторинга и обновим интерфейс:

Проверим работу мониторинга. Для этого вручную остановим MySQL-сервер.

1
2
# service mariadb stop
Redirecting to /bin/systemctl stop  mariadb.service

Проверяем журнальный файл нашей системы мониторинга:

1
2
3
4
5
[EST Nov 05 15:17:01] error    : 'mysql' failed protocol test [DEFAULT] at [127.0.0.1]:3306 [TCP/IP] -- Connection refused
[EST Nov 05 15:17:01] info     : 'mysql' trying to restart
[EST Nov 05 15:17:01] info     : 'mysql' stop: /usr/bin/systemctl
[EST Nov 05 15:17:03] info     : 'mysql' start: /usr/bin/systemctl
[EST Nov 05 15:17:38] info     : 'mysql' connection succeeded to [127.0.0.1]:3306 [TCP/IP]

Отлично, сервис перезапущен автоматически – это означает, что на Monit после правильной настройки можно переложить часть рутинных операций. Рекомендуем!

Tags: monit,  monitoring
Related Posts
  • Мониторинг сервера или VDS: Munin

← Сумасшедшие скидки на Хэллоуин – распродажа SSD VDS и серверов!
Глобальная распродажа SSD VDS – акция к 11.11! →

Blog

  • ITL – 27 лет и мы раздаем подарки!

    Сегодня день рождения ITL - нам исполнил...

  • Возможная уязвимость в Vesta и способ лечения от Trojan.DDoS_XOR

    На протяжении последних дней появились с...

  • status.itldc.com – будьте в курсе!

    Нашим пользователям важно знать о том, к...

  • Новый датацентр SG1.SIN – Сингапур!

    Мы рады сообщить о запуске новой локации...

  • Новогодняя распродажа – SSD VDS и серверы на 33% дешевле!

    Новогодние праздники и длинные выходные...

  • Новая локация – US2.EWR, New Jersey

    Расширяем географию наших площадок - зап...

  • BLACK FRIDAY 2017: Скидка 60% на все SSD VDS!

    "Черная Пятница" распродаж начинается пр...

  • Приглашаем 22 ноября на вебинар по ISPmanager

    Многие пользователи используют для админ...

ITL Europe

ITL Bulgaria Ltd.

building “A”
Zornitsa district Suite 1
Nessebar 8240
Bourgas reg., Bulgaria

+359 2 4925555

[email protected]

ITL North America

Green Floid LLC

2707 East Jefferson St
Orlando
Florida, 32803
USA

+1 561 2500001

[email protected]

Sociables

  • Facebook
  • LinikedIn
  • RSS

Services

  • Выделенные серверы
  • SSD VDS
  • Место для бэкапов
  • Размещение оборудования
  • Панели управления
  • Реселлерам
  • Биллинг
  • en
© 1995-2017 ITL Group. You can freely use or share information from this site with a hyperlink to the original page.