Система мониторинга на bash’е

Систем мониторинга существует достаточно много, у каждой есть свои плюсы и минусы. Тем не менее, для того, чтобы лучше понять основные принципы, используемые при разработке систем мониторинга, я предлагаю написать свою. Система мониторинга на bash’е хороша тем, что все для ее работы на машине скорее всего уже есть. У нее, естественно, есть и недостатки, куда без них. Но как пример она нам отлично подойдет.

Принципы работы

Прежде чем начинать писать, надо определиться, как будет устроена наша система мониторинга. Не будем усложнять архитектуру, сделаем как можно проще. Пусть у нас будет только серверная часть, клиентской части не будет. И задача у нас будет только одна, и притом простая — проверять, в сети ли машина, за которой мы следим, точнее, пингуется ли она. Для больших сетей такой вариант не подойдет, возможно, будет недостаточно информативен, а для небольшой локальной сети на пару десятков машин его может быть вполне достаточно.

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

Да, надо как-то назвать систему мониторинга, желательно оригинально. Пусть будет Byams (Bash-written Yet Another Monitoring Script). Написанный на баше еще один скрипт мониторинга. :) Будем надеяться, что это название еще не занято.

Приступим

Начнем с первого этапа — подключение хоста к нашей системе мониторинга. На практике это просто запись информации об адресе или доменном имени хоста в какой-то файл. Пусть это будет /etc/byams/hosts, например.

Вот пример этого файла:

Для простоты будем писать один единственный файл скрипта, который будет добавлять в мониторинг хост, удалять из мониторинга хост и, собственно, мониторить хосты, находящиеся в списке. И выглядеть это будет следующим образом:

Как вы уже поняли, если скрипт запущен без параметров, он просто запустит мониторинг всех хостов, находящихся в данный момент в списке.

Ну, и для простоты настройки давайте вынесем файл с настройками в директорию /etc/byams. Вы можете, в принципе, вынести этот файл в любую директорию, доступную пользователю, от имени которого скрипт будет запускаться, поскольку он не требует привелегий суперпользователя для своей работы, достаточно прав обычного пользователя.

Подробно

В файле настроек будет находиться следующее:

Вот как будет выглядеть сам скрипт:

Вот такая простая система мониторинга, состоящая из одного скрипта на bash’е, у нас получилась. Вы можете ее расширить так, как вам это необходимо. Самое главное, что она показывает — для решения задачи простого мониторинга доступности машин в локальной сети необязательно ставить какую-то серьезную систему мониторинга, например, Nagios или Cacti, а можно обойтись простым скриптом размером до 1 килобайта, реализующего в удобном виде добавление хоста в мониторинг, исключение хоста из мониторинга и автоматическое извещение о недоступности хоста, включенного в мониторинг, поскольку этих функций часто бывает достаточно.

Автоматический запуск

Автоматический запуск можно обеспечить, включив вызов скрипта в таблицу заданий cron’а.
Причем, поскольку для работы этого скрипта не требуется прав root’а, включать вызов скрипта можно в таблицу заданий непривелегированного пользователя, либо включать его вызов в глобальный crontab, и указывать в нем для запуска логин непривелегированного пользователя.


Понравилась статья?

Подпишитесь на новости сайта и получайте новые статьи на свой почтовый ящик (один раз в неделю).


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *