MonIT + M\MonIT = простой и бесплатный мониторинг нескольких серверов
Возникла задача мониторинга нескольких серверов, находящихся в разных ДЦ, имеющих разные ОС и ПО.
ТЗ получилось примерно такое:
Мониторинг системы (cpu, mem, load average, bandwidth).
Мониторинг состояния сервисов (запущен или нет).
Мониторинг функционирования сервисом (отвечает на запросы корректно или нет).
Контроль потребляемых сервисами ресурсов и общего их состояния.
Централизованая «админка» для всей этой радости.
Уведомление по email, самостоятельное исправление проблемы (например рестарт упавшей службы).
Поиск решения.
В процессе изучения возможных вариантов были найдены 5 вариантов:
Nagios
Whats UP
Zabbix
Monit
Написание собственных скриптов
Первый и третий варианты были отброшены как слишком сложные в настройке и имеющие заведомо не нужный (хотя и огромный) функционал. Второй отброшен из-за феерической (995$) цены и требования сервера с MS Windows. В итоге я решил остановиться на Monit.
Что такое Monit?
Monit — бесплатное приложение с открытым исходным кодом, обеспечивающее комплексный мониторинг UNIX-like систем, как то:
Состояние серверов (доступность, потребление ресурсов).
Мониторинг демонов (состояние, потребляемые ресурсы, количество child-process и многое другое).
Мониторинг сетевых сервисов (возможность подключения и корректность ответа).
Выполнение встроенных (запуск\остановка\перезапуск) или собственных (скрипты) действий при достижении определенных событий.
Уведомление на email или в централизованный web-интерфейс M\Monit.
Основным приемуществами программы являются низкое потребление ресурсов, простота конфигурации (настройка 15-20 минут) и открытый исходный код.
Поддерживаются ОС GNU\Linux (есть в большинстве пакетных систем), FreeBSD (есть в портах), OpenBSD, Solaris, MacOS X. Windows в качестве сервера НЕ поддерживается, но мониторить сетевые сервисы расположенные на удаленной windows-машине это не мешает.
Архитектуры — x86, x86_64, PowerPC (Mac only), Sparc (Sun
only).
Установка и базовая настройка.
Пакет есть для большинства дистрибутивов (Gentoo, Debian, FreeBSD — в основном дереве, CentOS, Fedora, RedHat — в репозитории dag). Пакет так и называется — monit.
Основной конфигурационный файл — /etc/monit.conf (в Linux) или /usr/local/etc/monitrc (в FreeBSD). В FreeBSD этот файл нужно создать:
После чего нам нужно раскомментировать в конфигурационном
файле строку:
include /etc/monit.d/*
Теперь все файлы конфигурации из /etc/monit.d/ будут автоматически подхватыватся monit-ом.
Я разбил свою конфигурацию на два файла (для удобства) — main.conf (общие настройки) и master.conf (настройки мониторинга сервисов).
main.conf
Для тех, кому лень читать комментарии на английском привожу его пример и перевод части комментариев.
set daemon 120 # Частота проверки сервисов. set logfile syslog facility log_daemon # syslogd facility. set mailserver localhost, # IP\hostname почтового сервера, через который пойдут уведомления. set eventqueue # Разрешить очередь уведомлений. basedir /var/log/monit # путь к каталогу, где будут храниться уведомления. slots 100 # Максимальное количество
уведомлений в очереди.
set mail-format { from: main-servers-alert@example.com } # От какого имени рассылать уведомления. set alert admin@example.com #Ящик для _всех_ уведомлений (много). set alert support@example.com { timeout } # Ящик для критических уведомлений (падение сервера\демонов).
check system *CHANGEME.HOSTNAME.EXAMPLE.COM* # Хостнейм сервера. if loadavg (1min) > 6 then alert if loadavg (5min) > 3 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
Как видно, конфиг крайне прост и понятен.
master.conf
master.conf — в моем случае отвечает за мониторинг конкретных демонов.
Опять же привожу его пример (слепо копипастить _не_нужно_). Показываю на примере почтовика exim, по этой логике пишется такой блок под каждый демон, который нужно мониторить:
check process exim with pidfile /var/run/exim.pid # Название и PID. start program = "/etc/init.d/exim stop" # Команда запуска. stop program = "/etc/init.d/exim start" #
Команда остановки. if cpu > 60% for 2 cycles then alert # Если в течение двух циклов потребление CPU > 60% - уведомить. if cpu > 80% for 5 cycles then restart # А если за 5 циклов больше 80% - перезапустить. if totalmem > 300.0 MB for 5 cycles then restart # Если потребление памяти > 300мб - рестарт. if children > 50 then restart # Если больше 50 чайлдов - рестарт. if failed port 25 protocol smtp then restart # Если не отвечает на 25 порту по SMTP - рестарт. if
5 restarts within 5 cycles then timeout # Если пять раз рестартовали и не помогло - timeout.
M\Monit
M\Monit — средство централизованного мониторинга серверов под управлением monit.
Сама программа платная, но пользоваться ей можно и бесплатно — на сайте выложена Free-версия, хотя и с определенными ограничениями.
Установка и базовая настройка.
Качаем версию для своей ОС и архитектуры, распаковываем архив.
Последние публикации в разделе «Новости и обзоры»:
«Мониторинг серверов: NetGong v.6.9 Build 601» Обновился NetGong (бывший IPMonitor), очень простое в использовании средство для мониторинга сетевых ресурсов. Программа позволит вам автоматически отслеживать критические сбои в работе большого числа серверов, маршрутизаторов, мостов и других устройств, находящихся в вашей сети...
«Мониторинг серверов: Advanced HostMonitor v.8.06» Обновилась программа Advanced HostMonitor, осуществляющая постоянный мониторинг доступности и быстродействия серверов. В случае ошибок и сбоев в работе сервера, HostMonitor предупреждает администратора (или же пытается исправить проблему самостоятельно). В программе используются 55 методов тестирования, присутствует большое количество настроек. Кроме того, HostMonitor позволяет создавать детализированные логи в различных форматах (Text, HTML, DBF и ODBC), имеется встроенный редактор отчетов, удобный и понятный
интерфейс и т.д...
«Мониторинг серверов: DEKSI Network Inventory v.8.7» Обновилась мощная утилита DEKSI Network Inventory, которая поможет отследить работоспособность компьютеров и программного обеспечения на них. DEKSI Network Inventory позволяет экспортировать ценную информацию в MS Access, MS Excel, ODBC и Oracle. DEKSI Network Inventory поможет сетевым администратором автоматически устанавливать исправления от Microsoft на все клиентские компьютеры, после установки MBSA. В состав DNI также входит несколько других полезных утилит...
«На Computex замечены первые системные платы с процессорными гнездами AMD G34» Одни из первых плат с процессорными гнездами AMD G34 попали в объектив фотокамеры на выставке Computex. Это процессорное гнездо придет на смену G3MX и сможет принять в свои объятия будущие восьмиядерные и двенадцатиядерные процессоры AMD, сейчас известные под кодовым обозначением Magny-Cours...
«Диспетчеры закачек: Net Transport v.2.85» Обновился диспетчер закачек Net Transport, который позволяет быстро и эффективно скачивать файлы из сети Интернет. Программа разбивает файлы на части и качает их одновременно, что позволяет существенно поднять скорость загрузки. Поддерживается работа по различным протоколами (HTTP, HTTPS, FTP, MMS, RTSP, PNM и т.д). Имеется простой, но эффективный файловый менеджер, Site Explorer. Net Transport умеет правильно работать с прокси-серверами. Есть русский интерфейс...
Обзор полезного программного обеспечения с возможностью скачать:
Htpasswd Generator PRO, 4.1 Программа для управления пользователями Apache веб сервера, их паролями и группами. Позволяет работать с удаленными серверами под MS Windows, Linux...
Alchemy Eye, 10.1 Standard Alchemy Eye — программа для сетевого мониторинга, которая непрерывно следит за работоспособностью и состоянием серверов. Принятие своевременных мер по устранению сетевых неисправностей позволит избежать больших затрат на восстановление и защитит данные вашей компании...
Диспетчер SMS, 2.2 Программа «Диспетчер SMS» предназначена для массовой и выборочной рассылки SMS-сообщений на мобильные телефоны абонентов. Программа работает через мобильный телефон или GSM-терминал подключенный к компьютеру...
Venta4Net, Коробочная версия Программа Venta4Net — это сетевая версия хорошо известной программы VentaFax. Она позволяет передавать факсимильные и голосовые сообщения с любого компьютера локальной сети через модем (или несколько модемов), установленный на единственном компьютере этой сети...
Billion Softswitch. Enterprise Edition, 2.8 Billion Softswitch выполняет функции коммутатора в сетях VoIP, позволяя проксировать как сигнальные, так и медиа-потоки, а также осуществлять конверсию сигнальных потоков между протоколами SIP и H.323 и даже, при необходимости, выполнять перекодирование медиа-потоков. Billion Softswitch позволяет улучшить управление операторской или корпоративной VoIP-сетью за счет собственного механизма маршрутизации вызовов и компактной биллинговой системы...
Общение о компьютерах, серверах, других железках, если вдруг не нашли ответов и просто о компьютерах в нашей жизни. Можете рекламировать свои творения тут, в других разделах реклама будет удаляться...
Последние публикации из рубрики «Полезные советы по работе с компьютером»:
Интернет - ICQ
Одна Тётя Ася — хорошо. А две — ещё лучше! С помощью программы mICQ можно регистрировать до 1000 уинов на одной машине. А хотите ли вы иметь 2 ICQ в онлайне одновременно? Для этого делаем следующее. Если у вас с помощью mICQ уже было установлено несколько пользователей, то предварительно копируем каталог Program Files\icq\newdb куда-либо в другое место. Создаём в Program Files каталог icq2. Запускаем программу инсталляции и указываем ей инсталлировать в icq2. Программа обнаружит на компьютере
уже зарегистрированного пользователя и предложит работать с ним. Если до установки второй аси было зарегистрировано 2 пользователя, то на этом этапе установку прерываем и заменяем каталог newdb на сохранённый нами ранее, если же пользователь один, то доводим установку до конца. Далее запускаем edit.com и открываем для редактирования файл icq.exe, находящийся в папке icq2, предварительно установив галочку для открытия файла в двоичном виде. Идём в меню поиска и ищем "mirabilis icq mutex" (без кавычек).
Теперь нужно всего лишь заменить найденное на "mirabilis pcq mutex". Редактируемый файл сохраняем.
Вот в принципе и всё. Подключаемся к Интернету, запускаем icq.exe из папки icq, после этого запускаем то же самое из папки icq2 и возле часиков видим два зелёных цветочка :-) Во второй асе будет тот же пользователь, что и в первой. Для смены пользователя делаем процедуру AddChangeCurrentUser/ChangeTheActiveUser, а для регистрации нового — AddChangeCurrentUser/RegisterANewUser. Этот способ был опробован только на ICQ 99a, так что если у вас какая-то другая версия, то это может и не сработать.
Застолье. Глава семейства - сыну: - Сынок, подай тёте Маше вилочку... - Это зачем?! - Сынок, ты что - не слышал о правилах хорошего тона? - Но ты же сам вчера говорил, что она жрёт, как лошадь!
*****
Папа и сын едут на машине, сын за рулем. - Папа, ну как, я уже умею водить? - Сынок, а ты видел красивую девушку в мини-юбке на тротуаре? - Неа, не видел. - Значит ещё не умеешь сынок, не умеешь....
*****
- Роза Моисеевна, вы не против поужинать вместе? - С удовольствием, Наум Лазаревич! - Тогда у вас ровно в восемь.
Внимание! Если хотите, чтобы мы посвятили рассылку Вам или вашему сайту, то пишите на почту: altvix@mail.ru
Вы можете добавить свою новость, статью или программу по адресу (необходимо зарегистрироваться): http://www.anobis.ru
По вопросам размещения Ваших статей и информации в наших рассылках - пишите нам: altvix@mail.ru
Давайте поможем строящемуся Храму - приюту для детей! Информация здесь >>>