Сбор данных о железе
От: fryme  
Дата: 03.05.11 14:36
Оценка:
Здравствуйте!
Я достаточно долгое время размышляю над одной проблемой. И чем дальше заходят мои размышления над ней, тем больше мне кажется, что реализовать это невозможно. Но я не теряю надежды.
Если сформулировать вкратце, то задача звучит просто: требуется написать ПО, которое будет собирать данные о железе из ОС под управлением *nix и представляло их в некотором обобщённом виде.
А теперь хотелось бы подробнее рассмотреть каждое понятие в этой задаче.
Итак, под данными о железе я подразумеваю следующие составляющие: информация о материнской плате, жестком диске, ОЗУ и так далее по полному списку всей начинки опрашиваемого компьютера. Причём стоит отдельно отметить, что гамма представленного на рынке железа огромна. Здесь у меня есть мысли использовать что то вроде утилиты lshw (но она даёт далеко не полный перечень возможного оборудования), ipmi otput для платформ, которые его поддерживают и видимо модули ядра самой ОС, отвечающие за это(?).
Так же сюда следует добавить данные о самой операционной системе (что то вроде расширенного uname).

Что вкладывается в понятие ОС под управлением *nix. Здесь выбор настолько же широк, как и в вопросах железа: семейства Linux, BSD, HP-UX, Solaris и так далее.

Ещё есть тонкий момент, что обращаться к этой "утилите" будет другая программа по протоколу WMI. Т.е. там есть понятие встроенных подробно описанных wmi классов, свой язык запросов (wql) и так далее. Всё это необходимо парсить и ответ заполнять в таком же виде. Т.е в конечном счёте это тот же WMI, но только под разный *nix.

Что получаем в сухом итоге. Некоторая утилита у которой на входе запрос, например, вида: “Select ProcessorFrequency From wmi/processor” (очень грубо) и мы должны будем вернуть информацию о частоте процессора, которая находится в “дереве классов” (опять же грубо) в wmi/processor.

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

Может быть кто то сталкивался с подобным? Какой лучше всего выбрать язык\технологии\библиотеки для реализации поставленной задачи?
Я думаю это интересно.
архитектура железо nix wmi
Re: Сбор данных о железе
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 04.05.11 05:50
Оценка: 2 (1)
Здравствуйте, fryme, Вы писали:

F>Если сформулировать вкратце, то задача звучит просто: требуется написать ПО, которое будет собирать данные о железе из ОС под управлением *nix и представляло их в некотором обобщённом виде.

F>А теперь хотелось бы подробнее рассмотреть каждое понятие в этой задаче.
F>Итак, под данными о железе я подразумеваю следующие составляющие: информация о материнской плате, жестком диске, ОЗУ и так далее по полному списку всей начинки опрашиваемого компьютера.
[...]

F>Что вкладывается в понятие ОС под управлением *nix. Здесь выбор настолько же широк, как и в вопросах железа: семейства Linux, BSD, HP-UX, Solaris и так далее.


Эта... а ничего, что при таком выборе вообще непонятно, что именно собирать? Упоминая HP-UX Вы уже ввели разнообразие не просто аппаратных платформ, а их "классов" со спецификой каждого, и идентично названные понятия в них могут означать совершенно разные вещи.

F>Что получаем в сухом итоге. Некоторая утилита у которой на входе запрос, например, вида: “Select ProcessorFrequency From wmi/processor” (очень грубо) и мы должны будем вернуть информацию о частоте процессора, которая находится в “дереве классов” (опять же грубо) в wmi/processor.

F>Я конечно не говорю, что это всё просто и одного месяца дело. Сама задача стоит уже много лет и я чувствую, что ответ витает где то рядом. Мы уже перепробовали множество разных способов с разными успехами, но чтобы не сбивать читающего со свежих мыслей не буду их сюда приводить.
F>Может быть кто то сталкивался с подобным? Какой лучше всего выбрать язык\технологии\библиотеки для реализации поставленной задачи?
F>Я думаю это интересно.

Я думаю, не очень.:) 99% займёт необходимая, но громоздкая и ручная работа по шлифовке принципов извлечения и представления, где исключений будет в разы больше, чем правил. И только после этого вы сможете сверху навесить какую-то схему доступа. А вообще какая общая задача? Если материальный учёт и контроль, то почему не взято что-то вроде IBM Tivoli?
The God is real, unless declared integer.
Re[2]: Сбор данных о железе
От: fryme  
Дата: 04.05.11 07:22
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, fryme, Вы писали:


F>>Если сформулировать вкратце, то задача звучит просто: требуется написать ПО, которое будет собирать данные о железе из ОС под управлением *nix и представляло их в некотором обобщённом виде.

F>>А теперь хотелось бы подробнее рассмотреть каждое понятие в этой задаче.
F>>Итак, под данными о железе я подразумеваю следующие составляющие: информация о материнской плате, жестком диске, ОЗУ и так далее по полному списку всей начинки опрашиваемого компьютера.
N>[...]

F>>Что вкладывается в понятие ОС под управлением *nix. Здесь выбор настолько же широк, как и в вопросах железа: семейства Linux, BSD, HP-UX, Solaris и так далее.


N>Эта... а ничего, что при таком выборе вообще непонятно, что именно собирать? Упоминая HP-UX Вы уже ввели разнообразие не просто аппаратных платформ, а их "классов" со спецификой каждого, и идентично названные понятия в них могут означать совершенно разные вещи.


F>>Что получаем в сухом итоге. Некоторая утилита у которой на входе запрос, например, вида: “Select ProcessorFrequency From wmi/processor” (очень грубо) и мы должны будем вернуть информацию о частоте процессора, которая находится в “дереве классов” (опять же грубо) в wmi/processor.

F>>Я конечно не говорю, что это всё просто и одного месяца дело. Сама задача стоит уже много лет и я чувствую, что ответ витает где то рядом. Мы уже перепробовали множество разных способов с разными успехами, но чтобы не сбивать читающего со свежих мыслей не буду их сюда приводить.
F>>Может быть кто то сталкивался с подобным? Какой лучше всего выбрать язык\технологии\библиотеки для реализации поставленной задачи?
F>>Я думаю это интересно.

N>Я думаю, не очень.:) 99% займёт необходимая, но громоздкая и ручная работа по шлифовке принципов извлечения и представления, где исключений будет в разы больше, чем правил. И только после этого вы сможете сверху навесить какую-то схему доступа. А вообще какая общая задача? Если материальный учёт и контроль, то почему не взято что-то вроде IBM Tivoli?


Задача стоит в полном мониторинге компьютерного железа (видео, мать, сеть и т.п.) + процессов + данных о самой ОС на выбранной машине. Да ещё и с возможностью удалённого управления через ipmi там где это возможно.
По поводу громоздкости — да, есть такое дело. Но может быть кто то сталкивался с какими то библиотеками в этом направлении, которые уже имеют некоторый начальный объём. Или может быть есть какие то технологии, вроде виндового wmi в *nix.
Я честно говоря не знаком с IBM Tivoli. Только что почитал про неё, но как мне показалось она немного не то что нужно. Нужен какой то сервис\демон, устанавливаемый на отдельную машину, который будет собирать инфу, хранить и отдавать по запросу в определённом виде. А tivoli предлагает свою огромную универсальную систему учёта.
Просто у нас уже есть такая система, которая работает под виндой. Осталось только сделать так, чтобы ей отвечали не только виндовые компы, а ещё и *nix. Тут мне кажется нет полностью готово решения и требуется разработка своего. Но при этом хочется за основу что то взять.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.