РАЗРАБОТКА РАСШИРЕНИЯ ДЛЯ СИСТЕМЫ МОНИТОРИНГА "NAGIOS" - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

РАЗРАБОТКА РАСШИРЕНИЯ ДЛЯ СИСТЕМЫ МОНИТОРИНГА "NAGIOS"

Владимиров В.Д. 1
1Московский Технический Университет Связи и Информатики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье рассмотрены основные принципы разработки расширений для автоматических систем мониторинга сети на примере системы "Nfgios". Целью данной работы является исследование возможностей по расширению возможностей систем мониторинга.

Для разработки плагина необходимо установить и настроить Nagios. Так как данная система разработана для UNIX-подобных систем, для ее работы на базе ОС Windows потребуется виртуальная машина. В данной работе была выбрана программа Oracle VM VirtualBox. Дистрибутив Nagios XI версии 5.2.7, работающий на виртуальной CentOS 6.7, можно скачать с официального сайта Nagios [3].

После загрузки CentOS Linux выдаст приглашение в консоль (рис. 1). Аккаунты для входа: user/guest, root/guest Работа под root в системе не рекомендуется. Управление системой также возможно по SSH.

Рисунок 1. Консоль

Далее необходимо выяснить текущий IP адрес сетевого адаптера виртуальной машины на DHCP сервере, либо непосредственно через консоль виртуальной машины командой при помощи команды "ifconfig eth0" (рис. 2)

Рисунок 2 Результат команды ifconfig eth0

Полученный IP адрес можно использовать для подключения к веб-интерфейсу Nagios. Для этого необходимо ввести этот адрес в адресную строку браузера. Если сеть настроена правильно в веб-браузере появится форма авторизации. Аккаунт для входа стандартный для Nagios: nagiosadmin/nagiosadmin. После входа в аккаунт, пользователю представляется главная страница WEB-интерфейса (рис. 3).

Рисунок 3 Домашняя страница WEB-интерфейса Nagios

Язык разработки Python.

Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.

Python является интерпретируемым, изначально объектно-ориентированным языком программирования. Он чрезвычайно прост и содержит небольшое число ключевых слов, вместе с тем очень гибок и выразителен. Это язык более высокого уровня нежели Pascal, C++ и, естественно C, что достигается, в основном, за счет встроенных высокоуровневых структур данных[4].

Достоинства языка.

Несомненным достоинством является то, что интерпретатор Python реализован практически на всех платформах и операционных системах. Первым таким языком был C, однако его типы данных на разных машинах могли занимать разное количество памяти и это служило некоторым препятствием при написании действительно переносимой программы. Python же таким недостатком не обладает.

Недостатки языка.

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

Программная реализация

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

  • OK - код возврата 0 - означает, что сервис работает нормально;

  • WARNING - код возврата 1 - это предупредительный сигнал о том, что у сервиса могут быть проблемы;

  • CRITICAL - код возврата 2 - критическое состояние сервиса;

  • UNKNOWN - код возврата 3 - неизвестное состояние сервиса.

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

Первое, что необходимо сделать это установить RPMForge репозиторий и NRPE на клиента и сервер:

# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

# yum -y install nagios-nrpe

# useradd nrpe && chkconfig nrpe on

Плагин будет храниться в директории, где хранятся и другие плагины (/usr/lib64/nagios/plugins/). В данной работе будет создан скрипт, который проверяет использование дискового пространства, вызывая df из shell, и оповещает администратора при использовании дискового пространства более 85%.

Нужно сохранить скрипт в /usr/lib64/nagios/plugins/usedspace.sh(.py|.pl) и сделать его исполняемым:

# chmod +x /usr/lib64/nagios/plugins/usedspace.sh(.py|.pl)

Весь NRPE плагин Nagios сводится к использованию определенных кодов выхода для запуска оповещений.

Теперь требуется добавить созданный скрипт в NRPE конфигурацию на клиентском хосте: нужно удалить оригинальный файл /etc/nagios/nrpe.cfg и добавить в него следующие строки:

log_facility=daemon

pid_file=/var/run/nrpe/nrpe.pid

server_port=5666

nrpe_user=nrpe

nrpe_group=nrpe

allowed_hosts=192.168.10.8

dont_blame_nrpe=1

debug=0

command_timeout=60

connection_timeout=300

include_dir=/etc/nrpe.d/

command[usedspace_bash]=/usr/lib64/nagios/plugins/usedspace.sh(.py|.pl)

В следующем шаге необходимо перезапустить NRPE сервис:

service nrpe restart

Теперь нужно добавить новую команду в Nagios на Nagios сервере. Определяем новую команду в /etc/nagios/objects/commands.cfg:

define command{

command_name usedspace_bash

command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_bash

}

Данный плагин служит для мониторинга localhost и для это го нужно отредактировать файл /etc/nagios/servers/localhost.cfg:

define service {

use generic-service

host_name localhost

service_description Custom Disk Checker In Bash

check_command usedspace_bash

}

Осталость только перезапустить Nagios:

service nagios restart

Теперь необходимо проверить работоспособность плагина (рис. 4).

Рисунок 4 Проверка работоспособности плагина

В информационном окне отображается вся необходимая информация. Строка "current status" показывает правильно ли работает плагин и в течение какого времени. Далее показан процент использования дискового пространства, а так же предупреждение о переходе границы в 85 процентов. За это отвечает строка "status performance". Помимо этого представлена информация о времени последней проверки, времени ее задержки, а так же времени проведения следующей проверки.

Список литературы

  1. Уилсон Т. Мониторинг и анализ сетей. Методы вы-

явления неисправностей / Т. Уилсон. – М.: Лори, 2002. – 364 с.

  1. В. Г. Олифер, Н. А. Олифер. Компьютерные сети. Принципы, технологии, протоколы – Питер, 2003 г. · 864 стр.

  2. Официальный сайт Nagios - https://www.nagios.org/documentation/

  3. Документация Python https://www.python.org/doc/

Просмотров работы: 309