US: +1 561 2500001/EU: +359 2 4925555 LiveChat
[email protected] Sign Up Login
ITLDC
  • SSD VDS
  • HD VDS
  • Серверы
  • Хостинг
  • Поддержка
  • Блог
  • Контакт
  • [EN]
  • [UA]
  • SSD VDS
  • HD VDS
  • Серверы
  • Хостинг
  • Поддержка
  • Блог
  • Контакт
  • [EN]
  • [UA]

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

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

Ноя 7, 2017antonНовости

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! →

Recent Posts

  • 🚀 Time to ELevate: Say Goodbye to CentOS 6/7 and Hello to AlmaLinux 9/10
    🚀 Time to ELevate: Say Goodbye to CentOS 6/7 and Hello to AlmaLinux 9/10

    So, your server is still running CentOS...

  • 🐬 5 Modern MySQL-Compatible Databases Worth Knowing
    🐬 5 Modern MySQL-Compatible Databases Worth Knowing

    These days, saying “I’m using MySQL” is...

  • 🛠️ Mission Complete: NL Datacenter Maintenance Report!
    🛠️ Mission Complete: NL Datacenter Maintenance Report!

    Last week, while most people were enjoyi...

  • Disk Usage 🧮  in Linux: Tools, Tips, and That One Mysterious 20GB Log File
    Disk Usage 🧮 in Linux: Tools, Tips, and That One Mysterious 20GB Log File

    You’re running your awesome website, cru...

  • OpenSSH 10.0 Released – New Tricks for Your Trusted Terminal Buddy
    OpenSSH 10.0 Released – New Tricks for Your Trusted Terminal Buddy

    TL;DR: OpenSSH just hit version 10.0, an...

  • 🛠️ DUS Datacenter Maintenance Complete: New Servers In!
    🛠️ DUS Datacenter Maintenance Complete: New Servers In!

    Guten Tag, liebe Hosting-Freunde! 🇩🇪 Gue...

  • Bash Process Management: How to Tame Your Shell Like a Pro
    Bash Process Management: How to Tame Your Shell Like a Pro

    Running Linux commands is cool. Running...

  • 🚀 Beyond Nginx: Exploring the Best Lightweight Web Servers for PHP & HTTPS
    🚀 Beyond Nginx: Exploring the Best Lightweight Web Servers for PHP & HTTPS

    Nginx has long been the go-to web server...

US/APAC Support

ITLDC

PO Box #800054
Aventura
FL 33280
USA

+1 561 2500001

[email protected]

EU Support

Smart Industries LLC

187E Warm Springs Rd B218
Las Vegas
NV 89119
USA

+1 561 2500001

[email protected]

Services

  • SSD VDS
  • Dedicated Servers
  • Shared Hosting
  • Colocation
  • DDoS Protection
  • SSL Certificates
  • Backup Storage
  • Reselling

Support

  • Get Help
  • ITLDC Status
  • Looking Glass
  • Our SLA
  • Datacenters
  • FAQ & Knowledgebase
  • Data Security
  • Contact us

© Copyright 1995-2019 ITLDC Team. You can freely use or share information from this site with a hyperlink to the original page.