| Использование Zenoss для управления серверами Windows из Linux |
|
Если вы имеете несчастье заниматься администрированием одного или нескольких серверов, работающих под управлением Windows, ваша работа может стать немного менее неприятной. В этом нам может помочь такой удивительный инструмент, как Zenoss. Помимо того, что он является инструментом SNMP, он к тому же обеспечивает возможность взаимодействовать с серверами Windows через WMI (Windows Management Interface - интерфейс управления Windows) из Linux! Мы можем только посмеиваться и размышлять о практических применениях, полагаясь на эти технологии. Из разговоров со специалистами проекта Zenoss мы выяснили, что они предлагают передавать сообщения WMI серверу Samьa (или CIFS) на машине, работающей под управлением Linux, и посылать их серверу Windows. И, пожалуй, самое интересное (по крайней мере, для читателей этой книги) заключается в том, что имеется возможность организовать взаимодействие с соединением WMI из сценариев на языке Python. Существующая документация к Zenoss прекрасно освещает принципы взаимодействия с WMI из Linux с помощью языка Python. Тем не менее, примеры, которые мы собираемся представить вашему вниманию, должны послужить хорошей основой для вашего дальнейшего усовершенствования. Для начала рассмотрим применение инструмента wmic (не имеющего отношения к языку Python) для обеспечения взаимодействия с сервером Windows через WMI из операционной системы Linux, wmic - это простая утилита командной строки, которая принимает в качестве аргументов командной строки имя пользователя, пароль, адрес сервера и запрос WMI. Она выполняет подключение к указанному серверу с заданными параметрами аутентификации, передает запрос и отображает результаты на устройстве стандартного вывода. Синтаксис использования этой утилиты выглядит следующим образом:
В следующем примере выполняется соединение с сервером, имеющим IP-адрес 192.168.1.3, с именем пользователя Adminlstrator, и производится запрос на получение записей из журнала событий:
А ниже приводится часть результатов, полученных в ходе выполнения этой команды:
Чтобы выполнить аналогичный запрос из сценария на языке Python, сначала необходимо настроить окружение. Для примеров, следующих ниже, мы использовали комплекс Zenoss 2.1.3 VMware. В этом комплексе часть программного кода Zenoss располагается в домашнем каталоге пользователя zenoss. Самое сложное заключается в том, чтобы добавить путь к каталогу, где находится модуль wmiclient. py, в переменную окружения PYTHONPATH. Мы добавили путь к каталогу в начало уже существующей переменной PYTHONPATH, как показано ниже:
Обеспечив возможность доступа к необходимым библиотекам, можно попробовать запустить сценарий, исходный текст которого приводится ниже:
Вместо того чтобы выводить значения всех полей, как это сделано в примере с применением wnoic, этот сценарий выводит только время и текст сообщения из журнала. Данный сценарий соединяется с сервером 192.168.1. 3 с привилегиями пользователя Adminlstrator и с паролем foo. Затем он выполняет запрос WMI ' SELECT * FROM Win32_NTLogEvent'. После этого производится обход полученных результатов и вывод времени и текста сообщения для каждой записи. Трудно придумать что-либо более простое, чем этот пример. Ниже приводится часть вывода, полученного от этого сценария:
Но как мы узнали, что необходимо использовать атрибуты timewritten и message? Чтобы найти эту информацию, потребовалось приложить совсем немного усилий. Ниже приводится сценарий, который помогает отыскивать необходимые атрибуты:
Вы могли бы заметить, что этот сценарий очень похож на предыдущий сценарий WMI. Между этими сценариями имеются два отличия — данный сценарий вместо вывода значений времени и текста сообщения выводит результат метода 1.Properties_.set.keys() и прерывает цикл после вывода первого результата. Объект set, метод keys() которого мы вызываем, в действительности является словарем. (Что сразу приобретает определенный смысл, потому что keys() является методом словаря.) Каждая запись в результатах, полученных по запросу WMI, должна иметь ряд атрибутов, имена которых соответствуют ключам этого словаря. А теперь приведем результаты работы сценария, который мы только что обсудили:
Как видите, оба атрибута, timewritten и message, использованные нами в первом сценарии WMI, присутствуют в списке ключей. Мы не считаем себя большими поклонниками работы с операционной системой Windows, но тем не менее, мы понимаем, что иногда для выполнения работы приходится использовать предопределенные технологии. Этот инструмент от Zenoss поможет сделать решение такого рода задач менее неприятным делом. К тому же этот инструмент обладает такими широкими возможностями, что позволяет выполнять запросы WMI из Linux. Если вам приходится работать с операционной системой Windows, то Zenoss с успехом может занять видное место в вашем инструментарии.
Related Articles
Set as favorite
Bookmark
Email This
Hits: 701 Комментарии (0)RSS feed CommentsНаписать комментарий |