Мониторинг сети с BixData

22 Фев
2008

Статья напечатана в журнале Системный Администратор

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

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

Проект BixData

Задачей компании BixData образованной в 2004 году, являлась разработка нового поколения системы мониторинга, которая одновременно должна быть легкой в использовании, работать в сетях любых размеров с самым разнообразным оборудованием и операционными системами. Система мониторинга сети построенная на основе BixData, позволит контролировать практически все параметры систем, приложений и оборудования на компьютерах работающих под управлением FreeBSD, Linux (протестирован CentOS 3/4, Debian 3, Fedora FC1-FC5, Redhat 7.1, Redhat 9, SUSE Linux 9/10, Ubuntu 5/6), Windows 98/NT4/2000/XP/2003 и Mac OS X. Это может быть: проверка доступности определенных портов (HTTP, POP3, SMTP) или URL, статус процесса или сервиса, загрузка процессора (до 8 CPU) и системы, использование памяти, подкачки, работа диска и контроль SMART, информация о системе, установленном ПО и оборудовании компьютера, контроль Xen и VMWare, загрузка сети, WMI и некоторые другие. Результат может быть представлен в виде графиков и отчетов, позволяющих определить складывающиеся тенденции и спланировать ресурсы для будущих модернизаций, так и выводящих информацию в реальном времени. В случае возникновения некоторых событий может отправляться сообщение на указанный почтовый адрес, или с помощью сценариев выполняться некоторые действия, направленные на их устранение.

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

- BixAgent - агент устанавливаемый на компьютерах, которые требующих удаленного управления и сбора информации;

- BixServer - многофункциональный компонент, так как в его задачи входит не только сбор информации с агентов и сохранение данных в SQL базе данных, но самостоятельный мониторинг удаленных систем, на которых не установлен BixAgent, кроме этого он предоставляет веб-интерфейс для просмотра статистики и отбора сообщений.

- BixDesktop - интерфейс для настройки системы мониторинга, просмотра данных в реальном времени и вывода отчетов.

Для хранения информации может быть использована в принципе любая СУБД, официально поддерживаются MySQL, PostgreSQL, MS SQL Server, Firebird и ODBC. Все соединения могут быть защищены посредством шифрованных SSL туннелей. Таким образом с помощью BixData, можно легко создать систему мониторинга в сети с любой топологией.

В настоящее время доступны две версии BixData: Professional и Community Edition. Последняя ориентирована на сети небольшого и среднего размера, предоставляется бесплатно, но имеет некоторые ограничения, так количество систем и сервисов контролируемых с помощью Community Edition не может превышать 30, а информации собранной в базу данных за день – 2 Гб, отсутствует поддержка SNMP. Официальная поддержка продукта также не предоставляется, но ответы на возникшие вопросы можно получить на форуме проекта.

Установка BixData

В качестве тестовой системы сервер, графический интерфейс и агент были установлены на Linux Ubuntu 7.04 и Windows XP SP2. Каких либо особенностей в работе в этих вариантах нет, все отличия связаны только с процессом установки и запуска. Агенты выдают для контроля специфические для своей системы параметры. Скачиваем со страницы Downloads нужные файлы. Обратите внимание, что пакет Server помечен как DB, так как по умолчанию содержит СУБД PostgresSQL, если на компьютере уже имеется установленная база данных, то следует выбирать файл с графы «Advanced Use», они не имеют базы данных, о ее подключении придется заботиться самому. Мы же будем использовать первый вариант. Процесс установки в Linux выглядит так. Сначала устанавливаем сервер.

$ wget -c http://www.bixdata.com/files/BixServer-2.7-linux-1-DB.tar.gz

$ sudo tar xzvf BixServer-2.7-linux-1-DB.tar.gz

А затем GUI.

$ wget -c http://www.bixdata.com/files/BixDesktop-2.7-linux-1.tar.gz

$ sudo tar xzvf BixDesktop-2.7-linux-1.tar.gz

Теперь запускаем, права суперпользователя не требуются, даже наоборот скрипт завершает работу, если пробовать его выполнить как root. Рекомендуется создать для запуска сервера и агента специального пользователя, и выполнять программы от его имени. В Windows такой пользователь создается автоматически при установке любого компонента BixData.

$ adduser bixdata

$ cd bixdata

$ su bixdata

$ nohup ./runserver.sh &

И под текущим пользователем.

$ ./rundesktop.sh

Using data path: /home/grinder/source/BixData/bixdata/bixdesktop/data/

Warning, missing x509 or private key file. Generating new files

Public Key Signature 9876356F0E71118602EF5F4097006A8FD8965ACC

При постоянном использовании придется самостоятельно создать скрипты запуска.

Появится окно ввода пароля, в котором будет указана учетная запись «Guest«, пароля она не требует, поэтому для входа можно просто нажать кнопку Login, но все настройки после выхода будут утеряны. Поэтому выбрав знак «+» лучше сразу создать новую учетную запись. Одновременно запустится браузер, загружающий страницу для обновления системы. В появившемся окне в строке server:// вводим IP-адрес или имя компьютера, на котором установлен сервер. Так как он у нас установлен на локальной системе, используем server://localhost и нажимаем кнопку расположенную правее.

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

$ nohup ./bixagent > out &

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

При установке варианта со встроенной БД при запуске сервера автоматически стартует полностью настроенный PostgresSQL. Иначе вначале следует подготовить базу данных. Здесь ничего сложного. Создаем базу, затем устанавливаем привилегии на эту базу для выбранного пользователя, например для MySQL

$ mysqladmin –user=root create bixdata

$ mysql -u root bixdata

mysql> GRANT ALL ON bixdata.* TO ‘ bixdata’@'localhost’ IDENTIFIED BY ‘password’

Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.03 sec)

mysql> quit

Bye

Теперь вызываем BixDesktop, подключаемся к серверу и заходим во вкладку Setup и в поле «Database Properties» заполняем параметры доступа к выбранной БД. Тип СУБД выбирается в раскрывающемся списке «Database type«.

Работа с интерфейсом BixDesktop

После регистрации всех серверов и агентов в GUI переходим во вкладку localhost – Situation Room. Здесь собраны все известные системы. Чтобы для мониторинга добавить новый компьютер следует нажать кнопку «+» и указать IP-адрес или доменное имя. Если узлов много, лучше воспользоваться встроенным сканером. Для этого переходим во вкладку Network и в поле «Host to Scan» вводим отдельные IP-адреса или диапазон адресов который нужно просканировать. По окончании добавляем найденные узлы в Situation Room. Щелчком на найденном компьютере в контекстном меню выбираем пункт Send to -> Network topology view, добавляем узел в окно просмотра топологии сети Topology. Для удобства компьютерам можно присвоить этикетки Tags, в этом случае вместо отдельных машин просто указывается ассоциированный Tags.

Теперь когда сервер «знает» обо всех системах, пора устанавливать предупреждения. Для того чтобы просмотреть выставленные предупреждения и установить новые параметры контроля необходимо перейти в «Notifications«. Во вкладке «Setup» несколько полей. В «Service Check» по умолчанию два параметра «HTTP ServiceCheck» и «Ping ServiceCheck» отвечающие соответственно за контроль работы HTTP сервиса и доступности компьютера. Чтобы посмотреть их установки следует отметить мышкой, и в остальных окнах будут показаны его параметры. Нажимаем кнопку «+» и добавляем новый пункт, в появившемся используя раскрывающийся список выбираем сервис: HTTP, Mail POP3, Mail SMTP, Ping, Port Status, и для Remote Agent CPU, FileSystem, Memory и Custom.

Выбираем сервис для Notification

Вводим понятно название в поле Name. В поле Actions указываем действие. Это может быть вывод всплывающего сообщения (Desktop Message), отправка e-mail (Email Action), выполнение команд (Execute Command и Execute Command Removely), отправка SMS сообщения (Send to Mobile Phone Action) и отправка команды на виртуальную машину (Execute Virtual Machine Action). После выбора Action отмечаем его и в появившемся внизу поле, уточняем его параметры: электронный адрес, команду, номер телефона, сообщение и прочее. При подстановке используются макросы, поэтому текст полученного сообщения, будет соответствовать ситуации.

Это мы определили только список возможных действий. А чтобы указать в каком случае их использовать, необходимо перейти в Notifications. Теперь для разных состояний: запуск сервиса (While Up), отказ (Up->Down), появления (Down->Up), отказ в течении длительного времени (While Down), указываем свой тип предупреждений.

Указываем Action для разных состояний (GUI в Windows)

Здесь используя контекстное меню можно: игнорировать событие (Do Nothing), установить таймер (Wait) на произвольное время, после которого будет выдано предупреждение. Само предупреждение для данного состояния выбираем в «Set Action«, причем можно установить несколько Actions, которые например будут выполняться последовательно по истечении определенного промежутка времени. Все выбранные действия будут показаны на графике State Diagram. В небольшой полосе «Service Check» внизу экрана, которую может быть не видно на мониторах с небольшим разрешением, отмечаем флажком сервис, а в Hosts указываем узлы или Tags для которых будут действительны эти установки. В полях «Options» и «Properties» выставляется интервал проверки, номер порта, время ожидания в случае неудачи и прочее. Если контролируется превышение допустимого порога некоего параметра, его значение указывается в поле «Notification Trigger». Да и после некоторых изменений, вверху появляется незаметный запрос предлагающий сохранить настройки. Выбрав Undo можно их отменить.

Это мы настроили только предупреждения. Теперь перейдем к мониторингу и отчетам. Если контролируется агент, то здесь все просто, так как у него всего одно окно с тремя вкладками. В «Overview» можно получить общую информацию о системе, а если подвести и задержать на время мышку около значков вверху, то будет выдана более подробная информация о загрузке процессора, занятости разделов жесткого дика и использовании памяти. Во вкладке «Processes» выводится список процессов, а в «Real Time Graph» выбираем уже готовые графики или указываем свои. Принцип создания нового графика аналогичен работе с предупреждениями. Сначала в «NameSpaces» выбираем параметр (например Smart), затем в «Instances» уточняем объект (выбираем жесткий диск), в «Keys» выбираем значение (Temperature Celsius), а в «Fields» дважды щелкнув выбираем поле (Raw Value string).

Выбираем новый график

В результате в «Selected Patch» появится новый параметр, который в новой вкладке будет выводить текущее значение температуры жесткого диска. Значения некоторых полей вроде Color и Style можно изменить дважды щелкнув по нему мышкой. Чтобы сохранить настройки для дальнейшего использования следует выбрать «Save Template«.

Всевозможные отчеты в сервере настраиваются в Reporting. Здесь также несколько вкладок. В Browse найдете готовые отчеты, по умолчанию их не много и они соответствуют Notifications.

Графики BixData

Чтобы создать новый график, выбираем «Setup Reports» нажимаем «+» и в появившейся строке дважды щелкаем в «Template» выбираем шаблон. Затем указываем Tag, временной интервал, который будет отображать на графике и интервал обновления. Все график готов. Через некоторое время он наполнится информацией и можно смотреть результат. Сами шаблоны доступны в «Setup Templates», где можно подкорректировать некоторые параметры.

Шаблоны графиков

Кстати на странице «Script Addons» сайта проекта, можно найти несколько обновленных шаблонов предназначенных для сбора данных и вывода информации.

Повышаем защищенность BixData

По умолчанию BixAgent и BixServer не используют аутентификацию вообще, возможно в закрытых сетях этого и достаточно, но при работе через Интернет однозначно следует защитить соединение. Поддерживаются аутентификация основанная на логине и пароле. Кроме этого соединение можно защитить с помощью SSL. Оба варианта настраиваются в файле data/config-security.xml каталога, в котором установлено приложение. По умолчанию он содержит такие поля:

<?xml version=»1.0″ encoding=»utf-8″ ?>

<Config>

<SSL>

<acceptonly>false</acceptonly>

</SSL>

<Authentication>

<enable>false</enable>

<Users>

<User>

<username>Admin</username>

<password></password>

</User>

<User>

<username>server</username>

<password>serverpass</password>

</User>

</Users>

</Authentication>

</Config>

Как видите это простой XML файл с понятной структурой. Чтобы разрешить аутентификацию по паролю, устанавливаем.

<enable>true</enable>

И для каждого разрешенного пользователя, указываем пароль.

<username>Admin</username>

<password>password</password>

Теперь при подключении через GUI к конкретному агенту или серверу будет появляться окно для ввода пароля. Для того чтобы сервер мог автоматически подключаться к агентам в его config-security.xml используется секция AgentLogin, в которой добавляются все логины и пароли.

<AgentLogin>
<Login>
<username>Admin</username>
<password>pass</password>
</Login>
</AgentLogin>

Чтобы включить SSL, достаточно указать.

<acceptonly>true</acceptonly>

Сертификаты и ключи как уже говорилось, генерируются при первом запуске и находятся в файлах privkey.pem и x509.pem. Как вариант для этих настроек можно использовать вкладку Setup – security.

По умолчанию BixAgent и BixServer слушают соединения на всех сетевых интерфейсах, при этом сервер использует 7071 порт, а агенты 17070. При необходимости можно указать конкретный сетевой адрес и изменить порт по умолчанию, для этого нужно создать файл data/config-network.xml такого содержания.

<?xml version=»1.0″ encoding=»utf-8″ ?>
<config>
<network>
<connect-default>
<client>17070</client>
<server>7071</server>
</connect-default>
<bind>
<default-port>17071</default-port>
<listener>
<ipaddress>192.168.1.58</ipaddress>
<port>17070</port>
</listener>
</bind>
</network>
</config>

Здесь для соединений с удаленными системами по умолчанию будут использоваться порты 7071 и 17070, а ожидать соединения на порту 17070 с IP-адресом 192.168.1.58.

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

Комментировать

Наверх