Мониторинг Windows-хостов

В этой статье будет описано использование Nagios [1] как сервера мониторинга и NSClient++v[2], в качестве агента на Windows-машине в удаленной локальной сети.

Текст статьи — это результат переработки многих источников (в первую очередь документации с сайта проекта) и практического опыта. После прочтения заметки, вы получите представление о мониторинге Windows-хостов и научитесь настраивать его в базовой комплектации. Более подробную информацию о настройке агента можно найти на сайте [2].

Проблема

Предполагается, что у нас уже есть работающая система мониторинга на основе Nagios, которая отслеживает работу нескольких хостов и их сервисов. Имеющиеся проверки выполняются стандартными плагинами, их настройка не представляет сложности.

Когда речь заходит о мониторинге “локальных” сервисов (запущенных служб, состояния дисков и процессора и т. д.), возникает проблема, связанная с тем, что эти сервисы недоступны по сети. Таким образом, их нельзя проверить стандартными средствами. Осложняет ситуацию еще и тот факт, что сам хост тоже недоступен по сети (например находится за файрволом и на динамическом адресе).

Решение

В данном случае является использование агента. Это программа, которая работает на хосте, состояние которого отслеживается, проверяет необходимые параметры  и отправляет результаты на сервер мониторинга.

Определение целей

Будем считать задачу выполненной, когда в системе мониторинга у нас будут свежие данные с удаленного Windows-хоста по следующим параметрам: загрузка процессора, загрузка оперативной памяти, количество свободного места на диске C:, состояние S.M.A.R.T. диска и состояние служб антивируса.

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

Выбор

Есть разные программы-агенты для этой цели. После некоторого изучения вопроса, я остановил выбор на NSClient++. Проект развивается в настоящее время (последний релиз в декабре 2015 года), обладает обширной документацией и пользовательским форумом на сайте.

Установка

Загружаем программу с сайта разработчика (https://www.nsclient.org/download/). На данный момент, самая свежая версия — 0.4.4.15.

Устанавливаем из дистрибутива. Подойдет комплектация typical. Прочие опции можно не трогать.

Настройка

Необходимо установить требуемые для проверок скрипты и отредактировать конфигурационный файл агента (nsclient.ini).

Из дополнительных скриптов понадобится только сценарий для проверки статуса S.M.A.R.T. ([3]), так как все остальные базовые проверки реализуются встроенными средствами.

Скрипт [3] несколько переделан для более удобной работы с Nagios, результат можно загрузить по ссылке [4]. После размещения скрипта [4] в папке scripts. Можно заняться конфигурированием NSClient++.

С конфигурационным файлом можно ознакомиться по ссылке [5]. Ниже будет прокомментирована его общая структура.

Файл состоит из секций, название которых заключено в квадратные скобки, и пар ключ = значение. Все параметры расположены в иерархической структуре, что видно из названия секций. Параметры из родительской секции /default наследуются дочерней.

В секции [/modules] активируются модули, которые будут использоваться в дальнейшей работе.

В секции [/settings/NSCA/client] устанавливается имя проверяемого хоста. Проверки с этим именем приходят в Nagios. Значение auto устанавливает этот параметр из имение компьютера в Windows. Это не очень удобно, в том случае когда в сети есть “Алёна-ПК” и прочие “microsoft38271”.

Секция …/targets/default предназначена для установки параметров NSCA-сервера (сервера с Nagios). Порт по умолчанию — 5667.

В секции …/schedules/default установлен основной интервал для проверок и параметр report, указывающий, что сообщать надо обо всех событиях.

Секция …/scheduler/schedules определяет какие службы будут проверяться и какими командами это будет делаться. Имя службы (ключ) должно совпадает с именем сервиса в Nagios.

В секции …/wrapped scripts описаны скрипты, которые будут выполнены согласно правилам в /wrappings.

Секция …/alias задает псевдонимы (короткие имена) для разных команд и их аргументов.

Секции /settings/log/…  управляют максимальным размером файла-журнала (он усекается при превышении) и типом сообщений, попадающих в него.

Настройка Nagios

На стороне сервера мониторинга необходимо описать проверяемый хост и его сервисы. Для нашего случая это будет выглядеть примерно так:

Обратите внимание, что во всех случаях, выключены активные проверки. Если будет проведена активная проверка любого из перечисленных сервисов, то он будет переведен в состояние UNKNOWN.

Удостоверимся, что NSCA-сервер для Nagios запущен и можем запускать NSClient++ в интерактивном режиме (nscp test) или как службу Windows.

Заключение

В данной заметке рассмотрена проблема мониторинга удаленных Windows-хостов, которые недоступны по сети, и предложено ее решение. Приведены основны файлов конфигурации для NSClient++ и Nagios.

Если этот вопрос будет достаточно интересен, он будет рассмотрен подробнее.

Ссылки

[1] https://www.nagios.org/

[2] https://www.nsclient.org/

[3] https://exchange.nagios.org/directory/Owner/xrated/1

[4] http://blog.bbgroup.pro/wp-content/uploads/2015/12/check_smartwmi_pd.vbs_.zip

[5] http://blog.bbgroup.pro/konfiguratsiya-nsclient/

 

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

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