Тотальная слежка - Nagios: популярная система мониторинга систем и сетейСергей «grinder» Яремчук (grinder@ua.fm, tux.in.ua) Задача проекта Nagios – разработать свободную систему мониторинга компьютерных систем и сетей. Система следит за узлами или службами и в случае возникновения проблем (например, служба не отвечает) оповещает администратора. Постоянное наблюдение за всеми компонентами позволит выявить проблемные участки и устранить их прежде, чем произойдет сбой, или они смогут повлиять на работу сети. За что админы любят NagiosNagios производит мониторинг работы большинства сетевых сервисов: SMTP, POP3, IMAP, SSH, Telnet, FTP, HTTP, DNS и многих других. Также с его помощью можно отслеживать использование ресурсов серверов: загруженность процессора, расходование оперативной памяти, дискового пространства и т.д. – причем, не только в Unix, но и в других ОС. Например, мониторинг работы серверов под управлением Windows обеспечивается модулем NRPE_NT. Возможен удаленный мониторинг через шифрованные SSH- или SSL-туннели. Простая архитектура модулей расширений позволяет создавать свои способы проверки служб и обработчики событий (к примеру, перезапуск зависшего сервиса). Концепция «родительских» узлов дает возможность определить иерархию и зависимости между хостами. Таким образом можно отличать действительно неработающие узлы от тех, которые недоступны системе мониторинга из-за неполадок на промежуточных пунктах. Nagios ценят за умение строить карты сетевой инфраструктуры и графики различных параметров наблюдаемых систем. Проект возник в 2002 году, хотя первое время он был известен как NetSaint. Его лидером является программист Этан Галстад. Само слово Nagios, по информации на сайте www.nagios.org, – это рекурсивный акроним, который расшифровывается, как Nagios Ain't Gonna Insist On Sainthood («Nagios не собирается настаивать на святости») – намек на предыдущее название проекта. Функциональность расширяется за счет плагинов и аддонов, большая часть из которых доступна на странице закачки. Сейчас предлагается две ветки продукта: 2.х и 3.х. В последней не только исправлены найденные ранее ошибки, добавлены новые макросы и многое другое, но, что важно, пересмотрен алгоритм сканирования, с целью устранить один из главных недостатков этой системы – медлительность при проверке больших сетей. В 2.х все тесты проходят практически последовательно, а в новой редакции задачи выполняются параллельно. Хотя вторая версия еще развивается, очевидно, что в будущем все силы будут брошены на третью ветку. Поэтому, хотя отличия в настройках незначительны, дальше речь пойдет именно о ней. Установка NagiosУстановку будем производить в Ubuntu. В других дистрибутивах процесс полностью аналогичен, за исключением начального этапа – установки зависимостей. Поиск в репозитарии командой: $ sudo apt-cache search nagios – выдаст ряд пакетов. В этом списке присутствуют обе версии Nagios (пакеты 2-ой версии называются nagios2). В репозитарии не всегда самая свежая версия, поэтому будем ставить из исходников. Если еще не устанавливался компилятор и прочие необходимые инструменты, то ставим метапакет build-essential. Для просмотра статистики Nagios нам понадобится веб-сервер и графическая библиотека GD2 (она нужна для динамической работы с изображениями): $ sudo apt-get install apache2 libgd2-xpm-dev Перед компиляцией Nagios следует создать специального пользователя и группу, от имени которых он будет работать. Если этого не сделать, Nagios собрать не удастся. $ sudo useradd -m nagios В некоторых дистрибутивах при создании нового пользователя автоматически создается группа с таким же именем. Проверяем, так ли это: $ grep nagios /etc/group Если вывод ничего не показал, добавляем вручную: $ sudo usermod -G nagios nagios Группа nagcmd необходима для управления настройками через веб-интерфейс. В нее должна быть включена учетная запись веб-сервера (в Ubuntu — www-data) и пользователь nagios: $ sudo groupadd nagcmd Теперь заходим на страницу www.nagios.org/download и скачиваем последние версии Nagios и плагины (Plugins). Кроме стабильных версий, можно скачать последний CVS-срез, но это, пожалуй, больше для экспериментаторов. Плагины также можно скачать со специального сайта nagiosplugins.org. Здесь же доступна и ссылка на страницу с аддонами (www.nagios.org/download/addons). Для установки они не нужны, но могут впоследствии понадобиться при настройке мониторинга некоторых сервисов. Распаковываем полученные архивы и конфигурируем: $ tar xzf nagios-3.0.3.tar.gz По окончании процедуры конфигурирования будет выведена таблица настроек. Убедись в том, что все нужное найдено и параметры верны: General Options: Теперь компилируем: $ make all По окончании сборки будет выдан список команд для установки различных компонентов Nagios. Ставим все: $ sudo make install После выполнения третьей команды в каталог /usr/local/nagios/etc/ будут скопированы примеры конфигурационных файлов (cgi.cfg nagios.cfg resource.cfg). Команда «make install-webconf» создаст файл /etc/apache2/conf.d/nagios.conf, необходимый для работы с веб-сервером Apache. Чтобы получить возможность регистрироваться через веб-интерфейс, при помощи htpasswd создадим учетную запись nagiosadmin: $ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin Перезапускаем апач командой: $ sudo /etc/init.d/apache2 reload После установки в каталог /etc/init.d/ будет помещен скрипт для запуска Nagios. Обеспечим его автоматическую загрузку при старте системы: $ sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios Установка плагинов, в общем-то, стандартна: $ tar xzf nagios-plugins-1.4.12.tar.gz Есть и другие опции конфигурирования, но нам подходят установки по умолчанию: $ ./configure --with-nagios-user=nagios -—with-nagios-group=nagios Теперь к первому запуску Nagios все готово. Конфигурационные файлы уже настроены на мониторинг локальной системы. Проверяем конфиг: $ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Запускаем Nagios командой «sudo /etc/init.d/nagios start». Какое-то время будет затрачено на сбор параметров локальной системы. Чтобы их просмотреть, при помощи веб-браузера заходим по адресу, подсказанному при установке – http://localhost/nagios. Вводим логин nagiosadmin и пароль. Несмотря на отсутствие локализации, разобраться с веб-интерфейсом легко. Настала пора заглянуть в конфиги. Конфигурационные файлы NagiosКак отмечалось выше, после установки Nagios появится несколько конфигурационных файлов. Основной конфиг, содержащий большое количество директив, которые демон считывает при запуске, называется nagios.cfg. Этот файл ссылается еще на два типа файлов. В файлах ресурсов содержатся пользовательские макросы, в том числе и пароли для доступа к объектам. Эту информацию специально разместили отдельно, чтобы не было возможности получить к ней доступ из CGI. В целях безопасности на такие файлы устанавливаются права 600 или 660. По умолчанию файл ресурсов один – resource.cfg. Использовав директиву resource_file в nagios.cfg, можно добавить любое их количество. Объекты, то есть все элементы, участвующие в мониторинге и оповещении (узлы, сервисы, контакты, команды и т.д.), описываются файлами определения объектов (Object Definition Files). За счет cfg_file можно прописать несколько таких файлов, но для удобства вместо отдельных файлов используют директиву cfg_dir. С ее помощью можно указать Nagios на каталог, где он будет искать файлы с описаниями объектов. После установки в /usr/local/nagios/etc/ будет создан подкаталог objects с примерами таких файлов. И, наконец, файл cgi.cfg содержит настройки CGI. Параметров в nagios.cfg и cgi.cfg довольно много, но часто их назначение – очевидно. Полное описание всех параметров конфигурационных файлов можно найти в документации Nagios (nagios.sf.net/docs/3_0). Файл ресурсов очень прост. Наибольший интерес представляют объектные файлы. Чтобы пример сделать интереснее, настроим мониторинг удаленного сервера, работающего под управлением Windows. Мониторинг Windows-системВ подкаталоге objects есть готовые шаблоны объектных файлов для большинства случаев. В качестве шаблона настройки возьмем windows.cfg. Подключаем его, сняв комментарий в nagios.cfg: cfg_file=/usr/local/nagios/etc/objects/windows.cfg Теперь открываем windows.cfg и правим: $ sudo nano /usr/local/nagios/etc/objects/windows.cfg # Описание узла (IP адрес, имя) И так далее. Описание параметров можно найти в указанном файле и конфиге клиента (о нем чуть ниже). Теперь на сервер под управлением Windows необходимо установить программу-клиент NSClient++. На странице для закачки sf.net/projects/nscplus можно слить zip-архив или установочный файл. Обрати внимание, что для 32- и 64-битных систем берутся разные файлы. Установка msi-файла стандартна – в случае zip-архива его нужно распаковать, а затем, перейдя в этот каталог, ввести в окне терминала две команды: > nsclient++ /install После этого в консоли «Службы» появится новый сервис. Вызываем окно свойств, переходим на вкладку «Вход в систему» и взводим флажок «Разрешить взаимодействие с рабочим столом». Запустить ее можно, введя в терминале: > nsclient++ /start Ахтунг! Перед запуском измени параметры в конфигурационном файле NSC.ini, который находится в подкаталоге, где установлен NSClient++. Несмотря на то, что параметров внутри много, зачастую достаточно просто снять комментарии. Файл NSC.ini [modules] Если был установлен пароль доступа к клиенту NSClient++, то следует изменить команду для подключения. Команды описываются в файле commands.cfg. По умолчанию он уже подключен в nagios.cfg, но не поленись проверить, так ли это. сfg_file=/usr/local/nagios/etc/objects/commands.cfg Для считывания данных и передачи их серверу используется плагин check_nt, входящий в стандартную поставку Nagios. Открываем commands.cfg и приводим запись check_nt к следующему виду, указав после параметра '-s' пароль для доступа. $ sudo nano /usr/local/nagios/etc/objects/commands.cfg define command{ Потрать время на изучение этого файла! Это снимет ряд вопросов о том, как работает Nagios. После всех изменений проверяем конфиги и перезапускаем Nagios: $ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Теперь программа проведет сбор информации, после чего данные будут доступны через веб-интерфейс. Отправка оповещенийКак уже было сказано, Nagios может не только собирать статистику, но и оповещать при возникновении проблем. Две команды notify-host-by-email и notify-service-by-email, описанные в commands.cfg, позволяют отсылать предупреждения на e-mail. Но чтобы они работали, в Ubuntu необходимо установить пакет mailx и изменить путь в описании с /bin/mail на /usr/bin/mail (или сделать соответствующий симлинк). Куда отправлять сообщение, описывается в файле contacts.cfg. $ sudo nano /usr/local/nagios/etc/objects/contacts.cfg define contact{ Можно определить пользователей, которым будут отправляться оповещения о работе конкретных типов серверов или сервисов. Для этого используются контактные группы (contactgroups.cfg). Не забудь проверить, чтобы файл был подключен в nagios.cfg. Знакомство состоялосьВозможностей Nagios насколько много, что на описание всех не хватит и книги. Наверное, Nagios не очень удобен для мониторинга единичного компьютера или сервиса, но его потенциал полностью раскрывается в средних и больших сетях со сложной структурой. Это как раз тот случай, когда следует познакомиться с ним поближе. INFONagios — программа с открытым исходным кодом. Проект предназначен для мониторинга компьютерных систем и сетей. Он следит за указанными узлами и службами и оповещает администратора в случае, если какие-то из служб прекращают (или возобновляют) свою работу. Под мониторингом сети понимают постоянное наблюдение за компьютерной сетью в поисках медленных или неисправных систем. О сбоях сетевому администратору сообщается с помощью почты, пейджера или других средств оповещения. Первые версии NSClient++ были написаны еще для NetSaint. WWWВ качестве стартового документа по установке Nagios и первичной настройке могу порекомендовать Quickstart Installation Guides (nagios.sf.net/docs/3_0/quickstart.html). Полное описание все возможных параметров конфигурационных файлов ищи в документации Nagios (nagios.sf.net/docs/3_0). Сайты www.nagioscommunity.org и www.nagiosforge.org содержат большое количество ссылок на документацию, дополнительные инструменты и другие ресурсы по Nagios. WARNINGВ целях безопасности на файлы ресурсов и объектов лучше установить права 600 или 660. |