Установка NRPE на CentOS 7

NRPE (Nagios Remote Plugin Executor) — утилита позволяет удаленно выполнять Nagios плагины на других машинах Linux / Unix. Это позволяет контролировать отдаленные показатели машины (использование дискового пространства, загрузки процессора и т.д.). NRPE также может запускать скрипты и проверять показатели на удаленных машинах Windows, для чего необходимо установить на машине с Windows программу агент NSClient++

Содержание:

  1. Установка NRPE
  2. Настройка NRPE
  3. Настройка SUDO
  4. Вызов команд NRPE на сервере Nagios
  5. Установка NRPE из исходников
  6. Установка xinetd
  7. Зметки


Самая замечательная вещь, которую можно делать при помощи NRPE — запускать собственные плагины на удалённом сервере. Это не только удобно, но и даёт возможность настроить мониторинг всего и вся, так как можно выполнять самописные скрипты или даже программы. А еще таким способом можно мониторить, например, удаленную сеть в которой нет сервера мониторинга.

Установка NRPE

Чтобы установить данный плагин на CentOS 7, необходимо подключить EPEL  репозиторий:

А затем установить при помощи пакетного менеджера:

Для установки на операционную систему Debian:

Все, NRPE установлен! Осталось его настроить.

Это самый простой способ и лучше использовать его. Но, возможно, Вам может понадобиться собрать пакет из исходников, например для задания особых параметров при сборке (указать директорию для установки программы или плагинов, указать имя пользователя от которого будет выполняться программа и т.п.). Про установку из исходников так же будет рассказано этой в статье.

Настройка NRPE

Теперь необходимо сделать несколько изменений в конфиг. Главный конфигурационный файл лежит по пути:

По умолчанию пользователь и группа от которых выполняются плагины — nrpe. Можно изменить их на nagios (этот пользователь также создаётся при установке), но бывают случаи, когда сервис NRPE не запускается если изменить эти параметры. Оставляем как есть:

В разрешенные хосты добавим адрес сервера Nagios (например 192.168.10.1):

Так же, Вам может понадобиться передавать аргументы команд из Nagios, для этого существует параметр dont_blame_nrpe. Эта опция работает если если утилита была собрана с параметром —enable-command-args .

где,  0 = запретить принимать аргументы команд, 1 = разрешить принимать аргументы

ВАЖНО!!! Эта опция является не безопасной и лучше её не использовать. Но бывают случаи когда без неё не обойтись, по этому будьте осторожны и старайтесь избегать этого!

В конце файла определяем команды которые мы будем вызывать удалённо и соответствующие им плагины:

где:

  • [check_disk] — команда которою мы будем использовать для вызова плагина \ скрипта на сервере Nagios;
  • sudo — указываем если в нашем скрипте есть команды требующие прав суперпользователя
  • /usr/lib64/nagios/plugins/check_disk — полный путь к плагину \ скрипту

Небольшой совет — называйте команду и скрипт одинаково, это удобно и не позволит запутаться что, и каким скриптом вы мониторите.

Путь по которому лежат плагины Nagios и куда необходимо будет класть Ваши скрипты (если конечно они у Вас есть : )

Настройка SUDO

Чтобы наши скрипты выполнялись удалённо необходимо, на хосте с установленным NRPE, разрешить их запуск. Для этого необходимо настроить утилиту sudo отредактировав файл /etc/sudoers .

Редактирование данного файла выполняется командой:

Запишем в конец этого файла следующие строки

В первой строке: НЕ требовать терминал для пользователя nrpe. По умолчанию команда sudo запрещает  выполнение команд которые введены не из консоли (в нашем случае переданы по сети демону NRPE).

Во второй: путь к программе.

В третьей: путь к папке с плагинами, в которой необходимо хранить наши скрипты и плагины.

ВАЖНО!!! Также, как во второй строке,  нужно добавлять пути к исполняемым программам, которые используются в скриптах (sh, php etc.)

Добавляем NRPE в автозапуск:

или

Запускаем сервис:

Добавим правило в firewall, которое бы разрешало подключения на порт 5666:

Проверим доступен ли наш хост с NRPE, для этого зайдем на сервер Nagios и выполним команду:

В ответ мы должны получить:

Если ответ получен, значит хост доступен и NRPE работает. Если же версия возвращается, а Ваш скрипт не работает, проверьте его запустив из консоли на удалённом хосте и проверьте всё ли правильно прописано в настройках sudo.

Вызов команд NRPE на сервере Nagios

Теперь поговорим о том как же вызвать удаленный скрипт. Сначала, в файле с конфигурацией команд, определим команду для вызова плагина check_nrpe, которому мы будем передавать хост и команду для выполнения на этом хосте:

Затем, в файле с конфигурацией сервисов, опишем сервис, который будет выполнять нашу проверку на удалённом хосте:

Это минимальное описание сервиса, который вызовет созданную выше команду check_nrpe и передаст ей в качестве переменной $HOSTADDRESS$ — IP адрес сервера Remote_server, а в качестве переменной $ARG1$ — имя нашего скрипта check_disk.

Установка набора плагинов Nagios

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

ПРИМЕЧАНИЕ!!! Вы можете просто скопировать плагины с сервера с Nagios.

В репозитории EPEL доступен пакет для установки:

Но если вам нужна самая свежая версия плагинов, то их нужно ставить из исходников.

Скачиваем последнюю версию исходников здесь. Затем распаковываем и переходим в распакованную директорию:

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

Для использования защищенных соединений используйте ключ

с указанием директории где установлен openssl.

Далее есть несколько нюансов. По умолчанию плагины ставятся в /usr/local/nagios/libexec/. Если вы ставите NRPE из исходников, то этот путь Вам и нужен, т.к. он потребует чтобі плагині лежали по этому пути и, в итоге, NRPE также будет установлен в /usr/local/nagios/.

Если же устанавливать NRPE из репозитория, то удобнее будет если плагины будут лежать в /usr/lib64/nagios/plugins/. Для этого нужно указать ключ:

который укажет место для установки плагинов. Однако, они будут установлены по пути /usr/lib64/nagios/plugins/ в папку libexec, после чего их можно будет оттуда скопировать в папку plugins или так и оставить, указывая в дальнейшем путь к ним с учётом директории libexec.

Конфигурируем:

Собираем плагины:

И, наконец устанавливаем:

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

Установка NRPE из исходников

Найти ссылку на архив с последней версией исходников можно здесь. Заливаем его на сервер в каталог /usr/local/src , разархивируем и перейдем в полученный каталог:

Создадим пользователя, в целях безопасности без домашней директории (ключ -M) и без командной оболочки (-s /usr/sbin/nologin , чтобы никто не мог войти под этим пользователем):

Установим пакет openssl-devel, дабы не возникала ошибка error: Cannot find ssl headers:

Устанавливаем набор плагинов как было описано выше.

Настраиваем пакет (ключ enable-command-args разрешает передавать переменные в скрипты с сервера Nagios):

Собираем и устанавливаем:

Если вы будете запускать NRPE при помощи утилиты xinetd (о ней будет рассказано ниже), то также нужно выполнить:

Копируем файл конфигурации:

Теперь нужно отредактировать конфиг (об этом было написано выше), как минимум указав в allowed_hosts адрес Nagios сервера.

Запуск NRPE как демона:

Для добавления в автозапуск добавим строку указанную выше в файл /etc/rc.local и не забудем сделать его исполняемым.

Установка xinetd

xinetd (eXtended InterNET Daemon) — это служба, которая запускает программы, предоставляющие службы Интенрет. Вместо того, чтобы запускать серверы этих служб при начальной загрузке системы, ожидается поступление запроса на соединение, xinetd слушает порты всех служб, которые перечислены в его файле настройки и просто производит запуск соответствующего сервера при поступлении запроса.

ВАЖНО!!! Использование данной службы может быть не безопасным, по этому я рекомендую НЕ использовать её и запускать NRPE как самостоятельный демон.

Установка:

Отредактируем файл /etc/xinetd.d/nrpe, где в строке only_from через пробел укажем адреса хостов, с которых разрешён доступ (например 192.168.10.1 — ip сервера Nagios):

Добавить описание NRPE в файл /etc/services:

После нужно перезагрузить xinetd:

Заметки

Если Вы хотите проверить работу плагина NRPE с локального хоста(на котором установлен NRPE) и набираете:

при этом получаете ошибку CHECK_NRPE: Error — Could not complete SSL handshake, то попробуйте так:

###

Хорошая статья, в конце которой рассказывается как настроить обновление, на удаленных хостах с NRPE, ваших плагинов с сервера Nagios.

###

Еще раз о Nagios Exit Codes. Это код который скрипт возвращает при опросе системой мониторинга Nagios и указывает на результат выполнения скрипта, переводит сервис или хост в соответствующее состояние:
0 — OK
1 — WARNING
2 — CRITICAL
3 — UNKNOWN


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

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