SlideShare a Scribd company logo
1 of 26
Download to read offline
monit
простой мониторинг
Задача
▪ Следить за состоянием процессов
▪ Поднимать упавшие

▪ Опускать сбоящие

▪ Перезапускать зависшие
Задача
▪ Предпринимать любые действия по гибко
  заданным событиям

▪ Уведомлять администраторов и вести журналы
Решение
▪ Nagios?
▪ Zabbix?

▪ OpenView?

▪ Дорого и сложно
Решение
▪ djb daemontools?
▪ Apple launchd?

▪ Sun SMF?

▪ Ubuntu Upstart?

▪ Непортируемо и напутано
monit
▪ Это один (1) небольшой процесс
▪ Это один (1) конфиг-файл

▪ Полноценный мониторинг

▪ Настраиваемые уведомления по SMTP

▪ Автоматическое восстановление сервисов

▪ Удобный доступ из консоли

▪ Встроенный веб-интерфейс

▪ Журналирование в syslog или отдельный log-
  файл
Мониторинг
▪ процессы и сервисы
▪ файлы

▪ папки

▪ устройства

▪ удалённые сервисы

▪ состояние системы
Процессы
▪ Существование, по pid-файлу
▪ Изменения PID

▪ Изменения PPID

▪ Количество потомков

▪ Загрузка процессора (с потомками)

▪ Загрузка памяти (с потомками и без)
Процессы
if   2 restarts within 3 cycles then timeout
if   totalmem > 100 Mb then alert
if   children > 255 for 5 cycles then stop
if   cpu usage > 95% for 3 cycles then restart
Сервисы
▪ Удалённые и локальные
▪ Проверка по протоколам
   • http, ftp, imap, mysql, pgsql, smtp, ntp, pop, dns,
     ssh, …

▪ Поддержка SSL/TLS с проверкой подписи
   • https, ftps, imaps, pops, …

▪ UDP, TCP, ICMP, Unix domain sockets

▪ Произвольно заданный текстовый протокол
Сервисы
if failed url
  http://bill:1337@msft.com:81/?query
  and content == 'my.*regex' then alert
if failed icmp type echo count 5
  with timeout 15 seconds
  then alert
if failed port 80 proto http then alert
if failed port 443 type TCPSSL proto http
  then alert
if failed host cave.persia.ir port 4040
  send "Open, Sesame!rn"
  expect "Please enter the cavern"
then restart
Файлы и папки
▪ Контрольная сумма md5 или sha1
▪ Время изменения (mtime)

▪ Размер

▪ Содержимое (regex)

▪ Флаги

▪ Разрешения

▪ Пользователь, группа
Файлы и папки
if changed checksum then exec "echo 123"
if failed checksum and
 expect the sum 8f7f419955cefa0b33a2ba316cba3659
 then alert
if changed timestamp then exec 'apache.sh restart'
if size > 50 MB then exec 'logrotate'
if match 'Houston, we have a problem' then alert
check file su with path /bin/su
  if changed size then exec "ifconfig fxp0 down"
Файловые системы
 ▪ Свободное место
 ▪ Использование inode-ов
Файловые системы
check device rootfs with path /dev/hda1
 if space usage > 80% 5 times within 15 cycles
    then alert
    else if passed for 10 cycles then alert
 if space usage > 90% for 5 cycles then
    exec '/try/to/free/the/space'
 if space usage > 99% then exec 'kill -9 1'
Удалённые файлы
     ▪ Доступ по HTTP
     ▪ Проверка контрольной суммы md5 или sha1
if failed port 80 protocol http
  and request "/page.html"
  with checksum 350d6c0157a04c84012475bd87609db4
  then alert
Система
▪ Средняя загрузка за 1, 5, 15 минут
▪ Загрузка процессора
   • user, system

▪ Загрузка памяти
Система
if   loadavg (1min) > 4   then alert
if   loadavg (5min) > 2   then alert
if   memory usage > 75%   then alert
if   cpu usage (user) >   70% then alert
if   cpu usage (system)   > 30% then alert
if   cpu usage (wait) >   20% then alert
Действия
▪ уведомление
▪ запуск, остановка, перезапуск

▪ исполнение любого скрипта или программы
   • под любыми пользователем и группой

▪ включение, выключение мониторинга
Действия
then   alert
then   stop
then   restart
then   exec 'true' as uid 1 gid 1
then   unmonitor
Уведомления
▪ полностью настраиваемый формат
▪ легко автоматически обрабатывать

▪ буфер любого размера на случай временного
  отказа почты
CLI-интерфейс
monit summary
  The monit daemon 4.10.1 uptime: 10h 53m
  Process 'vpnc'                      running
  System 'pollux.cenkes.org'          running
monit status
monit reload
monit validate
monit restart apache
monit restart all
Веб-интерфейс
▪ Полный аналог текстового
▪ Совместим с текстовыми браузерами
Недостатки
▪ Однотредовый, синхронный
▪ Нет произвольных проверок (скриптами)

▪ Плохо расширяем
   • Кто портирует на Perl?

▪ Не рассчитан near-realtime проверки
Преимущества
▪ Предельная простота
▪ Быстрый и маленький процесс

▪ Чаще удобней запустить monit, чем написать
  костыль
mmonit.com/monit/

More Related Content

What's hot

как мы сделали поисковой движок
как мы сделали поисковой движоккак мы сделали поисковой движок
как мы сделали поисковой движокАнтон Плешивцев
 
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Ontico
 
Первые шаги с RabbitMQ
Первые шаги с RabbitMQПервые шаги с RabbitMQ
Первые шаги с RabbitMQAlexander Svetkin
 
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...Ontico
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Ontico
 
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы Yandex
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноBadoo Development
 
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)Ontico
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)AvitoTech
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
Linux Terminal Server Project
 Linux Terminal Server Project Linux Terminal Server Project
Linux Terminal Server ProjectIlya Siganov
 
Хранение данных на виниле / Константин Осипов (tarantool.org)
Хранение данных на виниле / Константин Осипов (tarantool.org)Хранение данных на виниле / Константин Осипов (tarantool.org)
Хранение данных на виниле / Константин Осипов (tarantool.org)Ontico
 
Как перезапустить проблемное приложение и одновременно отладить его
Как перезапустить проблемное приложение и одновременно отладить егоКак перезапустить проблемное приложение и одновременно отладить его
Как перезапустить проблемное приложение и одновременно отладить егоOlga Rusakova
 
Некриптографическое исследование носителей православной криптографии
Некриптографическое исследование носителей  православной криптографииНекриптографическое исследование носителей  православной криптографии
Некриптографическое исследование носителей православной криптографииSergey Soldatov
 
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релизаHappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релизаHappyDev-lite
 
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...Ontico
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 

What's hot (20)

как мы сделали поисковой движок
как мы сделали поисковой движоккак мы сделали поисковой движок
как мы сделали поисковой движок
 
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
 
Первые шаги с RabbitMQ
Первые шаги с RabbitMQПервые шаги с RabbitMQ
Первые шаги с RabbitMQ
 
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
 
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
 
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
Применяем Ansible
Применяем AnsibleПрименяем Ansible
Применяем Ansible
 
Linux Terminal Server Project
 Linux Terminal Server Project Linux Terminal Server Project
Linux Terminal Server Project
 
Хранение данных на виниле / Константин Осипов (tarantool.org)
Хранение данных на виниле / Константин Осипов (tarantool.org)Хранение данных на виниле / Константин Осипов (tarantool.org)
Хранение данных на виниле / Константин Осипов (tarantool.org)
 
Как перезапустить проблемное приложение и одновременно отладить его
Как перезапустить проблемное приложение и одновременно отладить егоКак перезапустить проблемное приложение и одновременно отладить его
Как перезапустить проблемное приложение и одновременно отладить его
 
Некриптографическое исследование носителей православной криптографии
Некриптографическое исследование носителей  православной криптографииНекриптографическое исследование носителей  православной криптографии
Некриптографическое исследование носителей православной криптографии
 
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релизаHappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
 
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 

Similar to monit — простой мониторинг

Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting   Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting Yandex
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на productionNikolay Sivko
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Aleksey Bragin
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Nikolay Sivko
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаSergey Platonov
 
Bykov monitoring mailru
Bykov monitoring mailruBykov monitoring mailru
Bykov monitoring mailrurit2010
 
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...Oleg Lipin
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...AvitoTech
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Ontico
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Ontico
 
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPВебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPFlyElephant
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
Консервация процессов в домашних условиях
Консервация процессов в домашних условияхКонсервация процессов в домашних условиях
Консервация процессов в домашних условияхOpenVZ
 
История небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинИстория небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинYandex
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)Nikolay Samokhvalov
 
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Yandex
 

Similar to monit — простой мониторинг (20)

Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting   Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладка
 
Bykov monitoring mailru
Bykov monitoring mailruBykov monitoring mailru
Bykov monitoring mailru
 
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"
 
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPВебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
Continuous monitoring
Continuous monitoringContinuous monitoring
Continuous monitoring
 
Консервация процессов в домашних условиях
Консервация процессов в домашних условияхКонсервация процессов в домашних условиях
Консервация процессов в домашних условиях
 
История небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинИстория небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир Бородин
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
 
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
 

More from Andrew Pantyukhin

Third-party software management under BSD
Third-party software management under BSDThird-party software management under BSD
Third-party software management under BSDAndrew Pantyukhin
 
FreeBSD Unified Configuration
FreeBSD Unified ConfigurationFreeBSD Unified Configuration
FreeBSD Unified ConfigurationAndrew Pantyukhin
 
the workflow of a systems administrator
the workflow of a systems administratorthe workflow of a systems administrator
the workflow of a systems administratorAndrew Pantyukhin
 
Эффективное управление ПО под *nix
Эффективное управление ПО под *nixЭффективное управление ПО под *nix
Эффективное управление ПО под *nixAndrew Pantyukhin
 
простой и мощный бэкап на базе rsync
простой и мощный бэкап на базе rsyncпростой и мощный бэкап на базе rsync
простой и мощный бэкап на базе rsyncAndrew Pantyukhin
 
Unix in the Cloud — Ignorance, Stagnation, Obsolescence
Unix in the Cloud — Ignorance, Stagnation, ObsolescenceUnix in the Cloud — Ignorance, Stagnation, Obsolescence
Unix in the Cloud — Ignorance, Stagnation, ObsolescenceAndrew Pantyukhin
 
Open-Source Mechanics in "Serious" Business
Open-Source Mechanics in "Serious" BusinessOpen-Source Mechanics in "Serious" Business
Open-Source Mechanics in "Serious" BusinessAndrew Pantyukhin
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDAndrew Pantyukhin
 
FreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живыхFreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живыхAndrew Pantyukhin
 
EverMesh — s/ high load / p2p /g
EverMesh — s/ high load / p2p /gEverMesh — s/ high load / p2p /g
EverMesh — s/ high load / p2p /gAndrew Pantyukhin
 
Open Source and Serious Business
Open Source and Serious BusinessOpen Source and Serious Business
Open Source and Serious BusinessAndrew Pantyukhin
 

More from Andrew Pantyukhin (16)

Third-party software management under BSD
Third-party software management under BSDThird-party software management under BSD
Third-party software management under BSD
 
PetaPG
PetaPGPetaPG
PetaPG
 
FreeBSD Unified Configuration
FreeBSD Unified ConfigurationFreeBSD Unified Configuration
FreeBSD Unified Configuration
 
GitRoot
GitRootGitRoot
GitRoot
 
Unix as a Cloud
Unix as a CloudUnix as a Cloud
Unix as a Cloud
 
IPv6
IPv6IPv6
IPv6
 
the workflow of a systems administrator
the workflow of a systems administratorthe workflow of a systems administrator
the workflow of a systems administrator
 
Эффективное управление ПО под *nix
Эффективное управление ПО под *nixЭффективное управление ПО под *nix
Эффективное управление ПО под *nix
 
простой и мощный бэкап на базе rsync
простой и мощный бэкап на базе rsyncпростой и мощный бэкап на базе rsync
простой и мощный бэкап на базе rsync
 
Unix in the Cloud — Ignorance, Stagnation, Obsolescence
Unix in the Cloud — Ignorance, Stagnation, ObsolescenceUnix in the Cloud — Ignorance, Stagnation, Obsolescence
Unix in the Cloud — Ignorance, Stagnation, Obsolescence
 
Open-Source Mechanics in "Serious" Business
Open-Source Mechanics in "Serious" BusinessOpen-Source Mechanics in "Serious" Business
Open-Source Mechanics in "Serious" Business
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSD
 
FreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живыхFreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живых
 
EverMesh — s/ high load / p2p /g
EverMesh — s/ high load / p2p /gEverMesh — s/ high load / p2p /g
EverMesh — s/ high load / p2p /g
 
Open Source and Serious Business
Open Source and Serious BusinessOpen Source and Serious Business
Open Source and Serious Business
 
The Obsoletion of the OS
The Obsoletion of the OSThe Obsoletion of the OS
The Obsoletion of the OS
 

monit — простой мониторинг

  • 2. Задача ▪ Следить за состоянием процессов ▪ Поднимать упавшие ▪ Опускать сбоящие ▪ Перезапускать зависшие
  • 3. Задача ▪ Предпринимать любые действия по гибко заданным событиям ▪ Уведомлять администраторов и вести журналы
  • 4. Решение ▪ Nagios? ▪ Zabbix? ▪ OpenView? ▪ Дорого и сложно
  • 5. Решение ▪ djb daemontools? ▪ Apple launchd? ▪ Sun SMF? ▪ Ubuntu Upstart? ▪ Непортируемо и напутано
  • 6. monit ▪ Это один (1) небольшой процесс ▪ Это один (1) конфиг-файл ▪ Полноценный мониторинг ▪ Настраиваемые уведомления по SMTP ▪ Автоматическое восстановление сервисов ▪ Удобный доступ из консоли ▪ Встроенный веб-интерфейс ▪ Журналирование в syslog или отдельный log- файл
  • 7. Мониторинг ▪ процессы и сервисы ▪ файлы ▪ папки ▪ устройства ▪ удалённые сервисы ▪ состояние системы
  • 8. Процессы ▪ Существование, по pid-файлу ▪ Изменения PID ▪ Изменения PPID ▪ Количество потомков ▪ Загрузка процессора (с потомками) ▪ Загрузка памяти (с потомками и без)
  • 9. Процессы if 2 restarts within 3 cycles then timeout if totalmem > 100 Mb then alert if children > 255 for 5 cycles then stop if cpu usage > 95% for 3 cycles then restart
  • 10. Сервисы ▪ Удалённые и локальные ▪ Проверка по протоколам • http, ftp, imap, mysql, pgsql, smtp, ntp, pop, dns, ssh, … ▪ Поддержка SSL/TLS с проверкой подписи • https, ftps, imaps, pops, … ▪ UDP, TCP, ICMP, Unix domain sockets ▪ Произвольно заданный текстовый протокол
  • 11. Сервисы if failed url http://bill:1337@msft.com:81/?query and content == 'my.*regex' then alert if failed icmp type echo count 5 with timeout 15 seconds then alert if failed port 80 proto http then alert if failed port 443 type TCPSSL proto http then alert if failed host cave.persia.ir port 4040 send "Open, Sesame!rn" expect "Please enter the cavern" then restart
  • 12. Файлы и папки ▪ Контрольная сумма md5 или sha1 ▪ Время изменения (mtime) ▪ Размер ▪ Содержимое (regex) ▪ Флаги ▪ Разрешения ▪ Пользователь, группа
  • 13. Файлы и папки if changed checksum then exec "echo 123" if failed checksum and expect the sum 8f7f419955cefa0b33a2ba316cba3659 then alert if changed timestamp then exec 'apache.sh restart' if size > 50 MB then exec 'logrotate' if match 'Houston, we have a problem' then alert check file su with path /bin/su if changed size then exec "ifconfig fxp0 down"
  • 14. Файловые системы ▪ Свободное место ▪ Использование inode-ов
  • 15. Файловые системы check device rootfs with path /dev/hda1 if space usage > 80% 5 times within 15 cycles then alert else if passed for 10 cycles then alert if space usage > 90% for 5 cycles then exec '/try/to/free/the/space' if space usage > 99% then exec 'kill -9 1'
  • 16. Удалённые файлы ▪ Доступ по HTTP ▪ Проверка контрольной суммы md5 или sha1 if failed port 80 protocol http and request "/page.html" with checksum 350d6c0157a04c84012475bd87609db4 then alert
  • 17. Система ▪ Средняя загрузка за 1, 5, 15 минут ▪ Загрузка процессора • user, system ▪ Загрузка памяти
  • 18. Система if loadavg (1min) > 4 then alert if loadavg (5min) > 2 then alert if memory usage > 75% then alert if cpu usage (user) > 70% then alert if cpu usage (system) > 30% then alert if cpu usage (wait) > 20% then alert
  • 19. Действия ▪ уведомление ▪ запуск, остановка, перезапуск ▪ исполнение любого скрипта или программы • под любыми пользователем и группой ▪ включение, выключение мониторинга
  • 20. Действия then alert then stop then restart then exec 'true' as uid 1 gid 1 then unmonitor
  • 21. Уведомления ▪ полностью настраиваемый формат ▪ легко автоматически обрабатывать ▪ буфер любого размера на случай временного отказа почты
  • 22. CLI-интерфейс monit summary The monit daemon 4.10.1 uptime: 10h 53m Process 'vpnc' running System 'pollux.cenkes.org' running monit status monit reload monit validate monit restart apache monit restart all
  • 23. Веб-интерфейс ▪ Полный аналог текстового ▪ Совместим с текстовыми браузерами
  • 24. Недостатки ▪ Однотредовый, синхронный ▪ Нет произвольных проверок (скриптами) ▪ Плохо расширяем • Кто портирует на Perl? ▪ Не рассчитан near-realtime проверки
  • 25. Преимущества ▪ Предельная простота ▪ Быстрый и маленький процесс ▪ Чаще удобней запустить monit, чем написать костыль