BRAZHKO.info

Блог о компьютерном железе и IT-технологиях

Инвентаризация компьютерной и оргтехники. OCS Inventory.

| комментариев 18

Итак, продолжаем разговор об инвентаризации компьютерной техники.

OCS Inventory – система инвентаризации компьютеров в сети, установленного на них оборудования и программного обеспечения. Так же позволяет удаленно настраивать программное обеспечение рабочих мест. Работает под всеми операционными системами.

Архитектура системы

Система OCS Inventory NG использует программу агента, которая выполняется на инспектеруемом оборудовании и передает информацию на центральный сервер. Управление программами-агентами выполняется так же с центрального центрального сервера. Централый сервер системы позволяет не только собирать информаци об инвинтаризируемом обоурдовании, но и частично управлять инспектируемыми компьютерами.

Связь между сервером и инспектируемым оборудованием происходит через HTTP/HTTPS протоколы. Вся передаваемая информация сжимается для уменьшения сетевого трафика.

Инсталляция программы-агента может быть произведена несколькими способами:

  • С помощью logon скрипта или правил GPO в Windows сетях.
  • В Linux программу-агента необходимо установить самостоятельно.

Центральный сервер управления содержит 4 главных компонента:

  • Сервер базы данных, для хранения информации о инвинтаризируемом оборудовании.
  • Коммуникационный сервер, осуществяющий связь с сервером базы данных и программами-агентами на инвентаризируемом оборудовании.
  • Сервер развертывания, для создания пекетов установки программ-агентов.
  • Консоль управления, которая позволяет производить просмотр информации об инвентаризируемом оборудовании через Интернет браузер.

Распространяется система по лицензии GPL v2 и является Open Source проектом.

Источник: www.oscc.ru


Скачать систему:

Следующие пакеты отсутствуют в Gutsy, но уже есть в Hardy. Несмотря на это их можно скачать и установить в Ubuntu 7.10.

Предварительно следует установить следующие пакеты:

$ sudo apt-get install libapache-dbi-perl libdbi-perl libdbd-mysql-perl libsoap-lite-perl libxml-simple-perl libnet-ip-perl libcompress-zlib-perl php5-gd

и модуль XML::Entities, которого в репозитории нет

$ sudo cpan -i XML::Entities

$ wget http://archive.ubuntu.com/ubuntu/pool/universe/o/ocsinventory-server/ocsinventory-reports_1.01-3_all.deb$ wget http://archive.ubuntu.com/ubuntu/pool/universe/o/ocsinventory-server/ocsinventory-server_1.01-3_all.deb$ sudo dpkg -i ocsinventory-server_1.01-3_all.deb$ sudo dpkg -i ocsinventory-reports_1.01-3_all.deb

Как видите, в репозитории находится стабильная версия системы годичной давности. Я же буду рассматривать установку и настройку последней на текущий момент версии 1.02 RC1. При этом установка дополнительных пакетов и модуля XML::Entities не отменяется — они нужны.

Скачиваем файл OCSNG_LINUX_SERVER_1.02_RC1.tar.gz и распаковываем его. Проблемы начинаются уже на этапе работы инсталятора. Поэтому, перед тем как запустить setup.sh, открываем его и вносим следующие изменения:

строка 1114

- chown -R root:$APACHE_GROUP $ADM_SERVER_STATIC_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1+ chown -R root:$APACHE_GROUP $ADM_SERVER_VAR_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1

строка 1123

- chmod -R go-w $ADM_SERVER_STATIC_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1+ chmod -R go-w $ADM_SERVER_VAR_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1

строка 1132

- chmod g+w $ADM_SERVER_STATIC_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1+ chmod g+w $ADM_SERVER_VAR_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1

Далее, необходимо для таблиц files и tags принудительно прописать в sql скрипте создания базы (OCSNG_UNIX_SERVER_1.02_RC1/ocsreports/files/ocsbase.sql) кодировку latin1 (строка 143 и 468):

) ENGINE=MYISAM DEFAULT CHARSET=latin1;

Теперь можно запускать setup.sh.
На все вопросы просто жмём клавишу ввода вплоть до окончания установки.

После успешной установки перезапускаем веб-сервер:

$ sudo /etc/init.d/apache2 restart

Теперь запускаем браузер и в адресной строке набираем http://имя_сервера/ocsreports/install.phpи вводим данные для создания базы данных:

   MySql login: rootMySql password: пароль root'а для MySQLMySql HostName: localhost

Создание базы ocsweb с таблицами должно пройти без проблем.
Затем создаём любым удобным способом пользователя ocs и даем ему права на базу ocsweb.

Меняем в файле /usr/share/ocsinventory-server/ocsreports/dbconfig.inc.php пароль для доступа к базе.

В браузере набираем http://имя_сервера/ocsreports и попадаем на страницу авторизации. При необходимости выбираем русский язык (флажки в правом верхнем углу). Пользователь: admin, пароль: admin.

На этом установку можно считать оконченной.

Теперь решаем проблемы с отображением русских символов.

В файле /usr/share/ocsinventory-server/ocsreports/preferences.php в строке 21:

- define("UTF8_DEGREE", 0 );  // 0 For non utf8 database, 1 for utf8+ define("UTF8_DEGREE", 1 );  // 0 For non utf8 database, 1 for utf8

В файлах /usr/share/ocsinventory-server/ocsreports/group_show.php, header.php и machine.php меняем charset=ISO-8859-1 на charset=windows-1251 (строки 116, 49 и 90 соответственно).

При просмотре через www неправильно отображаются русские названия программ. Открываем для редактирования
/usr/share/ocsinventory-server/ocsreports/machine.php и правим function print_softwares($systemid) начиная со строки 606:

до

echo "$td3".htmlentities(textDecode($item->PUBLISHER))."</td>$td3".htmlentities(textDecode($item->NAME))."     </td>$td3".textDecode($item->VERSION)."  </td>$td3".(htmlentities(textDecode($item->COMMENTS))?htmlentities(textDecode($item->COMMENTS)):"N/A")."     </td>";

после

echo "$td3".textDecode($item->PUBLISHER)."</td>$td3".textDecode($item->NAME)."     </td>$td3".textDecode($item->VERSION)."  </td>$td3".(htmlentities(textDecode($item->COMMENTS))?textDecode($item->COMMENTS):"N/A")."     </td>";

Для отображения на главной странице имен пользователей на русском языке в файле preferences.php следует внести изменения в строку 763:

- echo $item[$chmp]."</span></a></font></td>\n";+ echo textDecode($item[$chmp])."</span></a></font></td>\n";

С серверной частью вроде бы всё. Переходим к клиентской.

Установка агента в Ubuntu:

$ sudo apt-get install ocsinventory-agent

Запуск:

$ sudo ocsinv

В системе (в агенте сбора информации для Windows) имеется проблема с кодировкой (малые русские буквы, начиная с ‘х'(0xF4 или 244). Т. е. буквы ‘хцчшщъыьэюя’ преобразовываются в символ английского языка ‘x’ (0x78 или 120). Проблема решается заменой файлов после установки агента файлами из архива http://ocsinventory.narod.ru/agentWinOcs.rar (спасибо Ивану Перевалову за сборку!).


Для тех, кого вышеприведенные операции c кодом приводят в ужас или навевают тоску (что вероятнее :-), выкладываю тарбол со всеми описанными исправлениями. Вам остаётся только распаковать его и установить – OCSNG_UNIX_SERVER_1.02_RC1_RU.tar.gz.


При подготовке материала использовались некоторые решения с форума http://www.opennet.ru/openforum/vsluhforumID3/14092.html. Большое спасибо их авторам!

В следующий раз рассмотрим процесс интеграции GLPI и OCS Inventory.

18 комментария

  1. Огромное спасибо. Очень познавательная статья. Да еще и с всевозможными исправлениями.
    Скажите, а есть ли какой-нибудь легкий способ применить «патч» Ивана Перевалова, без того, чтобы останавливать службы на каждой машине, а потом снова запускать(иначе блокировка файлов стоит и их не заменить)?

  2. Что даст интеграция GLPI и OCS Inventory?

    Кстати, очень жаль, что в собираемой OCS статистике нет информации о материнской плате, только об остальных устройствах.

  3. Скажите, а есть ли какой-нибудь легкий способ применить «патч» Ивана Перевалова…
    Хорошо было бы перепаковать инсталятор, но я не знаю как. Можно, например, сделать bat-файл следующего содержания:
    net stop «OCS INVENTORY SERVICE» && ^
    copy /Y OCSInventory.exe «C:\Program Files\OCS Inventory Agent» & ^
    copy /Y OcsWmi.dll «C:\Program Files\OCS Inventory Agent» & ^
    copy /Y SysInfo.dll «C:\Program Files\OCS Inventory Agent» & ^
    net start «OCS INVENTORY SERVICE»

    Что даст интеграция GLPI и OCS Inventory?
    инвентарные карточки + ведение учета расходных материалов и организации службы технической поддержки по расписанию и по заявкам пользователей + различные выборки и отчеты

  4. В окне All Software русские буквы отображаются так:

    Àðõèâà òîð WinRAR

    Как это можно исправить???

    Еще вопрос. Можно ли увидеть в OCS Inventory историю изменения конфигурации компьютера???

  5. Помотес проблемой, подскажите хотя бы что компать. GLPI импортирует компьютеры из OCS, но одни названия, более никаких данных. Ни какое железо, ни что за софт установлен. В чем может быть проблема?

    OCS Inventory 1.02 rc2
    GLPI 0.70.2

  6. До связки GLPI + OCS пока еще руки не дошли, так что сказать на данный момент ничего не могу.

  7. С той проблемой разобрался, очень важно выключить опцию использования словаря в GLPI, если он не используеться в Ocs. Но вот всетаки хотелось бы этот словарь задействовать. Не могу понять как создать категорию. А отмеченые галочками програмы не перемещаються даже в существующие по умолчанию. Может что-то гдето надо включить?

    Спасибо!

  8. Интересно, хоть кто-то делал связку GLPI + OCS? Интерисует главным образом вопрос интеграции этих двух систем. Что бы автоматом данные собранные OCS можно было просматривать в GLPI без дополнительных манимуляций.

  9. Решил проблему с русским в All Software…
    добавил в файл /usr/share/ocsinventory-reports/ocsreports/require/function_table_html.php
    на строке 153
    textDecode($v)

  10. Кто-нибудь пробовал патчи из http://forums.ocsinventory-ng.org/viewtopic.php?id=4104

  11. Патчи попробовал… Работает по крайней мере с Win 2000 & 2003 Server + Xp

  12. связка utf8 mysql + ocsinventory работает?
    немогу никак добиться отображения русских букв именно в базе например через phpmyadmin.
    еще скачал агента под виндовс с родного сайта и при установке антивирус drweb (лицензия с последними обновлениями) выругался на трояна на файле setacl.exe.
    что то очень подозрительно удобно получается на каждый клиент по троянчику 🙂
    первый вопрос остается открытым.

  13. Очень полезная статья. Использовал некоторые доработки описанные здесь.
    Скопипастил кусочек вашей статьи к себе.
    Надеюсь Вы не против?

  14. Большое спасибо за статью. Настроил по ней сервер на FreeBSD 6.4. Но есть одна загвоздка — при попытке подключить клиент появляется следующая ошибка:
    ocsinventory-agent -debug
    [debug] Ocsinventory unified agent for UNIX and Linux1.0.1
    [debug] Log system initialised (Stderr)
    [debug] Accountinfo file: /var/lib/ocsinventory-agent/http:__193.232.#.#_ocsreports_/ocsinv.adm
    [debug] A TAG seems to already exist in the server for thismachine. If so, the -t paramter is useless. Please change the TAGdirectly on the server.
    [debug] OCS Agent initialised
    [debug] Calling handlers : `start_handler'
    [debug] Compress::Zlib is avalaible.
    [debug] sending XML
    [debug] Calling handlers : `prolog_writers'
    [error] Deflating problem

    Не знаете, как с ней бороться?

  15. > как с этим бороться?

    Поставить все необходимые модули Perl, в первую очередь XML::SAX и XML::Simple

  16. 1. Как оптимизировать компоненты, к примеру чтобы был один компонент и подключался к разным компьютерам. Допустим у меня 20 компов c одинаковыми характеристиками и разными ID. Не буду же я каждый раз заводить новую ОЗУ в компонентах.
    2. При синхронизации агента сбиваются все данные введенные ранее а именно периферия: Соединения-Устройства: мышь, клава, монитор, Компоненты: ОЗУ, конечно если убрать "Авто обновление OCSNG:" ничего сбрасываться не будет, но это не будет решением проблемы

    Спасибо

  17. Спасибо за статью!

  18. Замучался уже, подскажите что делать?
    (все из выше перечисленного попробовал: выставить права на директории на сервере)
    веб морда работает. Но не добавляются машины
    вот агент на виндовой машине в лог пишет
    HTTP SERVER: Sending prolog query…ERROR: HTTP status code 403
    HTTP SERVER: Closing HTTP connection

Добавить комментарий

Войти с помощью: 

Обязательные поля отмечены *.