Объектная модель Zenoss

Суть модели заключается в том, что каждое устройство представляется объектом со своими свойствами. Устройства объединяются в классы, которые в свою очередь могут объединяться в более общие классы. При этом в этой модели в полной мере проявляют себя такие свойства ООП как абстракция, инкапсуляция и наследование. Например, имеется класс устройств "Сервер", обладающий свойствами, присущими всем серверам. В свою очередь сервер может быть на Windows, Linux и пр. системе, от чего зависят более специфические свойства подклассов. Можно добавить и еще один уровень, который, например, определяет различия в пакетных менеджерах разных linux-систем. Таким образом, способ сбора информации на конкретном устройстве определяется его непосредственным классом, но перечень этой информации определяется родительским классом ("сервер" в данном случае), что позволяет, абстрагируясь от конкретных реализаций, сравнивать характеристики производительности всех серверов, не взирая на то, какие платформы лежат в основе каждого из них.

Давайте посмотрим на все это в самом Zenoss:

вот так выглядит дерево классов:

Кнопка 'Details' справа вверху позволяет посмотреть свойства выбранного класса. Давайте посмотрим на то, каким же образом конфигурируются классы /Server/Windows/WMI и /Server/SSH/Linux. Для этого находим в дереве нужные классы, жмем кнопку 'Details' и выбираем 'Configuration Properties'

Вот, к примеру, настройки сервера Windows (/Server/Windows/WMI). Обратите внимание на правый столбец - это название класса, от которого данное свойство унаследовано. Как Вы видите,большинство настроек унаследовано от главного класса  (/), Какие-то - от общего класса windows-серверов, а некоторые принадлежат непосредственно этому классу:

 Аналогичная ситация наблюдается и для класса /Server/SSH/Linux:

Таким же образом наследуются Modeler Plugins (пункт 'CollectorPlugins' в 'Configuration Properties') и Monitoring Templates:

А теперь заглянем в отчеты и увидим, что независимо от платформы и способа получения информации, вся она представлена в едином виде:

Теперь немного поговорим о других способах группировки устройств: groups, systems, locations. Это пользовательские огранайзеры, предназначенные для объединения устройств по какому-либо признаку для дальнейшего обобщенного вывода на Dashboard и в отчетах:

Устройства могут находиться во многих группах или системах, но только в одном местоположении (locations).

1670