Установка и настройка ocs inventory. Учет оборудования с OCS Inventory NG и GLPI

OCS Inventory NG расшифровывается как Open Computers and Software Inventory. Это ПО предназначено для инвентаризации компьютеров в сети, сбора информации о программном обеспечении и установленном оборудовании.

Поздравляем участника конкурса

Этот текст был прислан на конкурс авторов, который мы запустили весной. Мы разобрались с большим количеством пришедших материалов, подвели итоги и наградили победителей. Автор этой заметки получил приз - трехмесячную подписку на «Хакер». Поздравляем!

Ключевые особенности:

  • удобный веб-интерфейс;
  • расширение возможностей плагинами;
  • поддержка IpDiscover и SNMP;
  • продвинутый поиск;
  • сбор ключей Windows и Office;
  • удаленное развертывание пакетов.

Этот продукт поддерживает все популярные ОС: Windows, Linux, BSD, Sun Solaris, IBM AIX, HP-UX, macOS, Android.

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

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

  • Софт: Debian Jessie (8.7.1) x64, OCSNG_UNIX_SERVER-2.3.1, OCSNG-Windows-Agent-2.3.0.0
  • VPS: OpenVZ, 2 vCPU, 512 Мбайт, 15 Гбайт SSD

Подготовка

Проверим дату и время, чтобы соответствовали нашему часовому поясу. На некоторых виртуальных серверах они бывают неправильно установлены, из-за чего в базе данных отображаются некорректно.

Date ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Подключаем репозиторий. Открываем список зеркал и добавляем репозиторий DotDeb.

Nano /etc/apt/sources.list DotDeb deb http://packages.dotdeb.org jessie all deb-src http://packages.dotdeb.org jessie all

Импортируем ключ DotDeb’а:

Wget http://www.dotdeb.org/dotdeb.gpg -O - -q | apt-key add -

Обновляем список зеркал и пакеты:

Apt-get update && apt-get upgrade

Установим необходимые пакеты:

Apt-get install make apache2 php7.0-mbstring php7.0-soap php7.0-common libapache2-mod-php7.0 php-pear php7.0-cli php7.0-ldap php7.0-gd php7.0-zip mariadb-server php7.0-mysqlnd php7.0-curl

Во время установки задаем пароль для пользователя root MySQL.

Ставим модули Perl:

Apt-get install libxml-simple-perl libio-compress-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libarchive-zip-perl cpan -i XML::Entities

После этого устанавливаем MariaDB и создаем пользователя ocs и БД ocsweb.

Логинимся к БД:

Mysql -u root -p

Создаем пользователя:

Mysql> create user "ocs"@"localhost" identified by "pass_mysql";

Создаем БД:

Mysql> create database `ocsweb` character set = "utf8";

Присваиваем права:

Mysql> GRANT ALL PRIVILEGES ON `ocsweb`.* to `ocs`@localhost; mysql> FLUSH PRIVILEGES; mysql> quit;

Установка и настройка

Скачиваем OCS-NG Server:

Wget -P /tmp https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.3.1/OCSNG_UNIX_SERVER-2.3.1.tar.gz tar -xf /tmp/OCSNG_UNIX_SERVER-2.3.1.tar.gz -C /tmp cd /tmp/OCSNG_UNIX_SERVER-2.3.1/

Запускаем скрипт установки (все настройки оставляем по умолчанию):

./setup.sh

  1. Мы уверены и хотим продолжить.
  2. Наш MySQL-сервер запущен на локальном хосте.
  3. И работает он на порте 3306.
  4. Бинарник демона apache2 находится в /usr/sbin/apache2ctl .
  5. Конфигурационный файл лежит тут: /etc/apache2/apache2.conf .
  6. Apache2 работает от пользователя www-data .
  7. Который входит в группу www-data.
  8. Программа установки поместит конфигурационный файл OCS Inventory NG в директорию /etc/apache2/conf-available .
  9. Бинарник PERL расположен тут: /usr/bin/perl .
  10. Да, мы хотим настроить конфигурационный сервер на этом компьютере.
  11. Размещаем логи сервера OCS в /var/log/ocsinventory-server .
  12. Конфигурационные файлы плагинов будут лежать тут: /etc/ocsinventory-server/plugins.
  13. Задаем расположение модулей Perl: /etc/ocsinventory-server/perl .
  14. Модуль PERL Apache2::SOAP не установлен, хотите продолжить? (Это опциональная функция OCS, без нее все будет корректно работать.)
  15. Чтобы Apache 2 загружал модули Perl до старта OCS, программа установки переименует ocsinventory-server.conf в z-ocsinventory-server.conf .
  16. Да, мы хотим настроить Web Administration Console.
  17. Наша версия OCS устанавливается впервые, поэтому продолжаем.
  18. Куда копировать статические файлы PHP Web Console /usr/share/ocsinventory-reports .
  19. Каталоги с возможностью записи/кеширования для пакетов развертывания, а также журналы консоли администрирования, IpDiscover и SNMP будут находиться в /var/lib/ocsinventory-reports .
  20. Готово! Рестарт веб-сервера пока не делаем. Журнал установки лежит в /tmp/OCSNG_UNIX_SERVER-2.3.1/ocs_server_setup.log .

Задаем в z-ocsinventory-server.conf директиву PerlSetVar OCS_DB_PWD , то есть пароль пользователя ocs.

Nano /etc/apache2/conf-available/z-ocsinventory-server.conf PerlSetVar OCS_DB_PWD pass_mysql

Включаем конфиги

A2dissite 000-default a2enconf ocsinventory-reports a2enconf z-ocsinventory-server /etc/init.d/apache2 restart

Предоставляем пользователю www-data права на директории:

Chown -R www-data:www-data /usr/share/ocsinventory-reports/ chmod 0755 /var/lib/ocsinventory-reports/

Теперь подключаемся по адресу http://domen_or_ip/ocsreports . Нас уведомят о том, что следовало бы избавиться от install.php . Удаляем его:

Rm /usr/share/ocsinventory-reports/ocsreports/install.php

Дополнительно можно отключить AccessLog в Apache 2:

Nano /etc/apache2/sites-available/000-default.conf

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

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

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

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

Постовой

Обращайтесь, если вам требуется срочный ремонт ноутбуков . Лучшее качество, отличные цены.

Юридические проблема? Не пытайтесь понять все сами, обратитесь к специалистам.

Версия программы: 1.02.1

Лицензия: GNU/GPL

Язык программы: ENG

Management Server:

Windows 2000 Professional

Windows 2000 Server

Windows Server 2003

Fedora Core Linux

Windows 95 with DCOM95 (or IE 4 or higher)

Windows 98 Second Edition

Windows NT4 Workstation with IE 4 or higher

Windows NT4 Server with IE 4 or higher

Windows 2000 Professional

Windows 2000 Server/Advanced Server

Windows XP Home Edition

Windows XP Professional Edition

Windows Server 2003

Windows Server 2008

Windows Seven Beta

Fedora Core Linux

Описание:

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

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

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

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

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

* С помощью logon-скрипта или правил GPO в Windows сетях.

* В Linux программу-агента необходимо установить самостоятельно.

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

* Сервер базы данных, для хранения информации о инвентаризируемом оборудовании.

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

* Сервер развертывания, для создания пакетов установки программ-агентов.

* Консоль управления, которая позволяет производить просмотр информации об инвентаризируемом оборудовании через Интернет браузер.

Схема работы.

Изменено 7 ноября, 2009 пользователем Timba

Сегодня в организации любого размера довольно много компьютерной техники и прочего оборудования. Учет которого, а также прочих связанных затрат, часто входит в обязанности администратора. Применение специализированных систем может значительно упростить эту задачу. В статье рассмотрим решения OCS Inventory NG и GLPI, которые являются хорошей альтернативой проприетарным продуктам.

Возможности OCS Inventory NG и GLPI

Система OCS Inventory NG (OCSNG, Open Computers and Software Inventory New Generation) предназначена для инвентаризации компьютеров в локальной сети, комплектующих и программного обеспечения. Также с ее помощью можно удаленно разворачивать программы на рабочих местах и получать информацию о сетевой конфигурации. GLPI (Gestion Libre de Parc Informatique) кроме задач по учету компьютеров и в ходящих в их состав комплектующих, позволяет инвентаризировать прочее оборудование включая расходные материалы (например картриджи), а также организовать службу технической поддержки автоматизируя обработку обращений пользователей. Теперь пользователь вместо того, чтобы бежать или звонить админу, заполняет зайдя по адресу ресурса заявку. Обращения обрабатываются с учетом их важности или в порядке очередности. Администратор выигрывает в двойне – все обращения документируются, и можно спокойно отчитаться перед начальством о проделаной работе и затраченном времени, пользователи по этой же причине перестанут обращаться по мелочам. Не говоря уже о том, что звонки обычно отвлекают от выполнения текущей работы. Также с его помощью можно сформировать базу знаний, которая будет состоять из заметок, статей и ЧаВО, вести учет поставщиков, договоров. Доступно большое количество отчетов (по договорам, финансовая, за год) и статистик (по заявкам, оборудованию, элементам).
Поддерживается синхронизация календаря по протоколам Ical, Webcal.
Функциональность GLPI можно расширить при помощи большого набора плагинов от сторонних разработчиков!
Обе системы русифицированы (с некоторыми оговорками) и распространяются по лицензии GNU GPL.
В GLPI, как и в изначально все данные вводятся вручную и сохраняются в базу данных MySQL. Затем администратор при помощи веб-формы может отобрать любую интересующую его информацию. Начиная с версии 0.65 GLPI поддерживает синхронизацию данных с базами OCSNG, причем для этого не требуется ни каких дополнительных модулей. Хотя если в сети уже есть сервер Nagios или Cacti, то данные о компьютерах и прочем оборудовании можно импортировать и от туда.
Основным плюсом OCS Inventory NG является то, что для сбора информации об установленном оборудовании с клиентских компьютеров и серверов используется программа-агент. Все собранные данные, агенты отсылают на сервер управления (management server), в виде XML потока сжатого при помощи Zlib, для передачи используется стандартный протокол HTTP/HTTPS. Сервер OCSNG состоит из 4 компонентов, которые могут быть установленны на одном или нескольких компьютерах:

  • база данных — используется для хранения информации, поддерживается MySQL от 4.1;
  • служба связи — обеспечивает связь по протоколу HTTP между сервером базы данных и программами-агентами, требуется Apache Web Server 1.3.X/2.X с интегрированным Perl (в Debian/Ubuntu пакет libapache-dbi-perl);
  • служба развертывания – предназначен для хранения установочных файлов программ-агентов, подходит любой веб-сервер с поддержкой SSL;
  • консоль управления – просмотр собранных данных в браузере, требуется веб-сервер с поддержкой PHP (с активированными ZIP и GD).

Серверная часть OCSNG может быть установлена на компьютер работающий под управлением Windows 2000 Professional/Server, XP Professional Edition и 2003, а также Linux, FreeBSD, OpenBSD, NetBSD, Solaris, IBM AIX и MacOS X. Агент доступен для клиенских и серверных версий Windows от 95 до Server 2008 R2, а также перечисленных Linux (2.4/2.6, x86, x86_64/AMD64, Sparc64, ARM, PowerPC), MacOS X (10.3 – 10,5), FreeBSD/OpenBSD/NetBSD (x86/Sparc), Solaris 8, 9, 10 (x86/Sparc), IBM AIX (5.1 — 5.3) и HP-UX.
Следует отметить, что одним из недостатков, как данного проекта, так и проекта GLPI является малое количество документации. Хотя, понимая суть процесса, разобраться со всеми ньюансами довольно просто.

Установка OCS Inventory в Ubuntu

В середине апреля, после более чем года разработки, вышла новая версия 1.02 OCSNG, о которой и пойдет речь далее. Пакет с OCSNG имеется в репозитариях многих дистрибутивов. Для примера в качестве сервера и клиента выберем Ubuntu 8.04 LTS. Проверяем, что есть в репозитарии Ubuntu.

$ sudo apt-cache search ocsinventory ocsinventory-reports - Hardware and software inventory tool (Administration Console) ocsinventory-server - Hardware and software inventory tool (Communication Server) ocsinventory-agent - Hardware and software inventory tool (client)

Хотя это не самая актуальная версия на данный момент:

$ sudo apt-cache show ocsinventory-server | grep -i version Version: 1.01-3 $ sudo apt-cache show ocsinventory-agent | grep -i version Version: 1:0.0.8-1

Поэтому будем устанавливать, используя исходные тексты. В зависимостях пакета “ocsinventory-server” полученных при помощи “sudo apt-cache depends ocsinventory-server”, указан Apache2 и некоторые модули Perl, утилита для изменения файлов настроек ucf и dbconfig-common. Пакет MySQL указан в качестве необязательных зависимостей, поэтому его устанавливаем отдельно.

$ sudo apt-get install mysql-server

$ sudo apt-get build-dep ocsinventory-server

В данном случае бесполезна, поэтому устанавливаем все что необходимо вручную:

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

Скачиваем с сайта проекта OCSNG архив OCSNG_UNIX_SERVER-1.02.tar.gz и устанавливаем:

$ tar xzfv OCSNG_UNIX_SERVER-1.02.tar.gz $ cd ./OCSNG_UNIX_SERVER-1.02/ $ sudo ./setup.sh

По ходу установки следует ответить на ряд стандартных вопросов: расположение сервера баз данных, исполняемого и конфигурационного файла веб-сервера, пользователь, от имени которого запускается веб-сервер и так далее. В большинстве случаев скрипт сам находит все необходимое и достаточно просто подтвердить параметр. Единственное с чем он не разобрался это с пользователем и группой от имени, которых запускается Apache. Поэтому вместо предложенного
[${APACHE_RUN_USER}] указываем www-data.
Далее производится проверка установленных модулей Perl. И в случае если нужный не будет найден, выдается соответствующее сообщение. Так в зависимостях Ubuntu не указан модуль XML::Entities.

Сhecking for XML::Entities PERL module... *** Warning: PERL module XML::Entities is not installed !

В репозитарии пакета обеспечивающего функции XML::Entities нет, поэтому его следует установить самостоятельно из CPAN.

$ sudo cpan -i XML::Entities

И повторяем установку. По окончании скрипт предложит инсталлировать консоль администрирования.
В процессе установки в каталоге /etc/apache2/conf.d/ будут созданы конфигурационные файлы для веб-сервера – ocsinventory-server.conf и ocsinventory-reports.conf.
Сами PHP скрипты обеспечивающие функции OCSNG будут скопированы в /usr/share/ocsinventory-reports/ocsreports и подключены к веб-серверу с использованием директивы Alias:

$ cat ocsinventory-reports.conf | grep -i alias # Alias used to put Administration Server static page (typically PHP) outside Alias /ocsreports /usr/share/ocsinventory-reports/ocsreports # Alias to put Deployement package files outside Apache document root directory Alias /download /var/lib/ocsinventory-reports/download

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

$ cat /etc/logrotate.d/ocsinventory-server # Rotate OCS Inventory NG Communication server logs daily # Save 7 days old logs in compressed mode /var/log/ocsinventory-server/*.log { daily rotate 7 compress missingok }

По окончании следует перезапустить веб-сервер.

$ sudo /etc/init.d/apache2 force-reload

Некоторые пакеты, распространяемые при помощи OCSNG, могут иметь размер больше 8 Мб, поэтому чтобы не было проблем с их загрузкой следует установить большее значение переменных post_max_size и upload_max_filesize в файле /etc/php5/apache2/php.ini например в 10 Мб (по умолчанию — 8 и 2 Мб). Этих же установки следует изменить в ocsinventory-reports.conf:

Php_value post_max_size 10m php_value upload_max_filesize 10m

Набираем в браузере http://localhost/ocsreports/install.php и в появившемся окне вводим логин и пароль для доступа к MySQL. По умолчанию в процессе установки для доступа к базе ocsweb будет создана учетная запись “ocs” с паролем “ocs”. Если только доступ к базе не ограничен локальной системой, то в целях безопасности пароль следует изменить.

$ mysql -uroot -prootsecret mysql> UPDATE mysql.user SET Password = PASSWORD("ocspasswd") WHERE User = "ocs"; mysql> FLUSH PRIVILEGES; mysql> exit

Новое значение пароля слудет прописать в файле /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php:

$_SESSION["PSWD_BASE"]="ocspasswd"

И в ocsinventory-server.conf:

PerlSetVar OCS_DB_PWD ocspasswd

Локализация

Переходим на страницу http://localhost/ocsreports/, для регистрации используем логин “admin” с паролем “admin”. Щелкнув здесь же по флагу, можно активировать русский язык интерфейса, но сразу после установки это привело к появлению нечитаемых символов. Единственным материалом по локализации интерфейса OCS Inventory является статья Евгения Бражко (http://eugene-online.blogspot.com/2008/04/ocs-inventory.html), но она относится к версии 1.02RC1, вышедшей в марте 2008 года и многие вопросы которые в ней описаны, в текущей версии уже решены. Так анализ HTML кода страницы показал, что она выдается в нужной кодировке:

Интерфейс локализуется при помощи языкового файла russian.txt расположенного в /usr/share/ocsinventory-reports/ocsreports/languages. В меню “Configurations” есть отдельный пункт “Language file” позволяющий его редактировать. Но открыв файл russian.txt в текстовом редакторе поддерживающем СР1251 обнаруживаем только набор нечитаемых символов. Вывод команды file:

$ file russian.txt russian.txt: UTF-8 Unicode English text

Задает еще больше вопросов. При этом:

$ file english.txt english.txt: ASCII English text

А первая строка файла, явно указывает на нужную кодировку.

$ head -n 1 russian.txt 0 windows-1251

Из этого делаем вывод — что-то не то с самим файлом, поэтому берем аналогичный с RC1 или , и подменяем его, не забыв установить нужные права доступа.

$ sudo chown root:www-data russian.txt

После этого все надписи выводятся на русском.
Чтобы корректно выводились названия программ установленных на Windows системах, следует в файле /usr/share/ocsinventory-reports/ocsreports/preferences.php установить в “1” значение «UTF8_DEGREE»:

Define("UTF8_DEGREE", 1); // 0 For non utf8 database, 1 for utf8

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

Меняем на:

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

После этого список программ установленных на конкретном компьютере будет выводится корректно. Страница в PDF создаваемая при помощи кнопки «Напечатать эту страницу», которая расположена в самом низу, также выглядела корректно. Хотя в общем списке ПО по прежнему будет не читаемый текст.

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

Агент для Windows написан на C++, его можно установить вручную, при помощи logon скрипта или правил GPO. Агент для Linux написан на Perl и С. Для его установки потребуется наличие некоторых модулей Perl (XML и Zlib) и dmidecode (обеспечивает сбор данных из BIOS об оборудовании в соответствии со стандартами SMBIOS/DMI). В Linux агент устанавливается вручную. Сначала рассмотрим этот вариант.
Если клиент устанавливается на том же компьютере, что и сервер практически все необходимые пакеты для удовлетворения зависимостей уже будут. Иначе устанавливаем:

$ sudo apt-get install libcompress-zlib-perl libnet-ip-perl libnet-ssleay-perl libwww-perl libxml-simple-perl po-debconf ucf dmidecode pciutils

$ tar xzvf OCSNG_UNIX_AGENT-1.02.tar.gz $ cd Ocsinventory-Agent-1.0.1 $ perl Makefile.PL $ make $ sudo make install

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

Do you want to configure the agent Please enter "y" or "n"?> [y]

Отмечаем “y” и при помощи цифровых клавиш отвечаем на вопросы, где должен располагаться конфигурационный файл:

Where do you want to write the configuration file? 0 -> /etc/ocsinventory 1 -> /usr/local/etc/ocsinventory 2 -> /etc/ocsinventory-agent

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

Do you want to send an inventory of this machine? Please enter "y" or "n"?> [y] Accountinfo file doesn"t exist. I create an empty one. -> Success!

В итоге в /var/lib/ocsinventory-agent будет создан подкаталог с файлами содержащими текущую конфигурацию компьютера. Например, в ocsinv.adm содержится тег и название системы под которым она будет видна в консоли управления.

$ cat /var/lib/ocsinventory-agent/http\:__localhost_ocsinventory/ocsinv.adm TAG Ubuntu

Практически сразу после установки агента сведения о новой системе появятся в консоли управления во вкладке “Все компьютеры”.
При возникновении проблем можно запустить агента в режиме отладки:

$ ocsinventory-agent -l /tmp –debug --server http://localhost/ocsinventory

По умолчанию во вкладке “Все компьютеры” выводятся 7 характеристик клиентских машин, но при помощи раскрывающегося списка “Add column” можно добавить еще до 23 поля. Хотя в некоторых случаях замечены ошибки в определении параметров. Так на системе с такими характеристиками:

$ dmesg | grep -i processor [ 97.725563] powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual Core Processor 3600+ processors (2 cpu cores) (version 2.20.00) [ 0.000000] Detected 2010.408 MHz processor.

В консоли OCS Inventory было выведено – 1000 Мгц, но при необходимости данные можно скоректировать вручную. По разным причинам в базу компьютер может быть занесен несколько раз, для удаления дубликатов существует одноименная вкладка в которой одинаковые системы можно отобрать по нескольким характеристикам (имя, МАС-адрес, серийный номер).
Текущая версия агента для Windows 4.0.5.4, архив OCSNG_WINDOWS_AGENT_1.02.zip с установочными файлами можно скачать с сайта проекта. Судя по всему, в нем уже исправлена ошибка, которая приводила к тому, что русские буквы, начиная с ‘х"(0xF4) заменялись английским иксом. Во всяком случае, на тестовых системах все работало правильно. Как вариант можно использовать специальную сборку (версия агента 4.0.4.9).
Самым простым вариантом установки является запуск исполняемого файла OcsAgentSetup.exe в этом случае будет произведена стандартная установка, по окончании которой агент будет прописан в качестве сервиса. На последнем этапе указываем имя или IP-адрес OCSNG сервера и устанавливаем флажок «Immediatly launch inventory», чтобы сразу же отправить отчет.
Все настройки будут сохранены в файле service.ini, каталога в который установлен агент.
В Vista следует открыть его и добавить параметр /DEBUG в строу запуска:

Miscellaneous= /SERVER:192.168.0.10 /PNUM:80 /DEBUG

При изменении оборудования или ПО, агента вызвать принудительно, набрав в командной строке:

> "C:\Program Files\OCS Inventory Agent\OCSInventory.exe" /SERVER:ocsng_server /PNUM:80 /NOW

Также агента (файл ocsagent.exe являющийся zip архивом) можно импортировать в базу OCSNG, выбрав в вкладке Агент и указав на месторасположения файла. В этом случае он будет доступен с любого компьютера сети.


Кроме функций сетевой инвентаризации OCSNG имеет возможность развертывания пакетов и запуска команд записанных в файле (например bat/vbs) на клиентских компьютерах (крое Vista), информация о которых находится в инвентаризационной системе. При необходимости установки одного приложения на большое количество систем такая функциональность очень выручает.
Для начала пакет нужно создать. Переходим в Deployment - Build и заполняем поля New package building. Название пакета должно быть уникальным и желательно отражать его назначение. Параметр Priority определяет порядок размещения пакетов. Что собственно делать с пакетом определяет поле Action. Здесь три возможных значения:

  • Store - копировать на целевую систему;
  • Execute - копировать и выполнить с командой;
  • Launch - копировать и запустить.

Параметры в User notifications позволяют вывести соответствующее предупреждение пользователю, разрешить ему отмену выполнения задачи. Созданный пакет копируется в каталог /var/lib/ocsinventory-reports/download/timestamp
При этом timestamp получается уникальным.

$ ls /var/lib/ocsinventory-reports/download/ 1241705351 1241722723 $ ls 1241722723 1241722723-1 info

Файл info содержит настройки пакета, а 1241722723-1 является собственно программой.
Переходим в Deployment - Activate выбираем нужный пакет и нажимаем ссылку Activate. Вводим в появившемся окне адрес вида https://server/download/ при этом timestamp к URL будет добавлен автоматически, нажимаем “Отправить”. В ответ должны получить сообщение:

Package activated, it can now be deployed.

Теперь выбираем компьютер, на которых хотим установить пакет, переходим в меню “Customization”, в самом низу выбираем ссылку “add package”, указываем на пакет и нажимаем в поле “Affect”. Подтверждаем свой выбор. В Customization появится информация о состоянии задачи, а в таблице в Activate будет выводиться статистика.
По умолчанию агент подключается к серверу раз в сутки, тогда и будет произведена установка. Можно ускорить этот процесс, вызвав подключение принудительно, как это показано выше. После подключения агента к серверу состояние пакета должно измениться с WAITING_NOTIFICATIONS на NOTIFIED, а затем Success. Пакет будет сохранен в каталоге C:\Program Files\OCS Inventory Agent\download\TIMESTAMP. А все связанные сообщения можно найти в файле download.log.
Кроме выдачи информации о “своем” компьютере агенты в разных подсетях сканируют сеть в поисках MAC адресов принадлежащих других системам. Такая функция называется “IP discovery” и позволяет находить другие устройства, на которых нельзя установить агента (например, свичи, принтеры и так далее).


Установка GLPI

Установка GLPI достаточно проста. В репозитариях дистрибутивов нужный пакет есть, но его версия обычно сильно отстает.

$ sudo apt-cache search glpi glpi - IT and Asset management software $ sudo apt-cache show glpi | grep -i version Version: 0.68.3.2-1

Актуальной на момент написания статьи является версия 0.71.5 вышедшая в январе 2009 года. Кроме этого на странице загрузки доступен предрелиз 0.72-RC2 и срез CVS архива. Для установки просто распаковываем скачанный архив в корневой каталог веб-сервера:

$ sudo tar xzvf glpi-0.71.5.tar.gz -C /var/www $ cd /var/www/glpi

Устанавливаем для некоторых каталогов владельца и группу-владельца.

$ sudo chown www-data:www-data config files files/* inc

Далее набираем в браузере http://localhost/glpi выбираем язык (в списке есть русский), принимаем условия GPL, и следуем указаниям мастера установки. Самый главный этап “Проверка окружения на совместимость с GLPI”, где следует внимательно прочитать и выполнить все рекомендации.
Например, по указанию мастера, параметр memory_limit в php.ini следует установить в значение большее 32.

$ grep -i memory_limit /etc/php5/apache2/php.ini memory_limit = 128M

Выполняем все требования, проверяем повторно и если все нормально нажимаем Continue.


Теперь собственно установка - вводим данные для доступа к MySQL, название базы данных и все.
Чтобы GLPI автоматически проверял почту, отправлял уведомления следует создать задание для пользователя от имени которого работает веб-сервер (нужен пакет php5-cli):

$ sudo crontab -u www-data -e */5 * * * * /usr/bin/php5 /var/www/glpi/front/cron.php &>/dev/null

По умолчанию в GLPI создается четыре учетных записи с разными правами и возможностями (через дробь указан пароль):

  • glpi/glpi – администратор;
  • tech/tech — технический специалист;
  • normal/normal – обычная учетная запись (возможность просмотра данных);
  • post-only/post-only – только обращение в службу поддержки;

GLPI поддерживает импорт учетных данных из AD или другой LDAP.
Регистрируемся в системе как glpi. Для локализации интерфейса в “Setting — Select Language” выбираем русский язык, после этого все новые учетные записи будут использовать по умолчанию выбранный язык. Новые пользователи добавляются в одноименной вкладке, там несколько некорректный перевод. Так логину соответствует поле «Имя пользователя», это иногда сбивает с толку. Чтобы не было путаницы можно изменить значение в файле /var/www/glpi/locales/ru_RU.php:

$LANG["setup"]="Имя пользователя";

Далее переходим в “Установки (Setup) — Общие (General setup)” и устанавливаем “Активировать режим OCSNG (Activate OCSNG mode)” в “Да”. После этого появится новая вкладка “Режим OCSNG” (OCSNG Mode). Если OCSNG и MySQL установлены на локальной машине, то данные для подключения к OCSNG будут найдены автоматически. Иначе необходимо будет заполнить информацию о сервере OCSNG вручную.


По умолчанию синхронизируется только часть параметров, чтобы в базу данных GLPI были перенесены и компоненты компьютеров, следует разрешить их синхронизацию, установив флажок напротив нужного в положение “Глобальный импорт”.
Кроме этого во вкладке “Инструменты” появится пункт “OCSNG” при помощи имеющихся здесь ссылок можно производить синхронизацию и импортирование компьютеров между OCSNG и GLPI.
Полученные данные появляются во вкладке Оборудование. Здесь несколько подпунктов переход в некоторые из них позволяет получить список некоторых компонентов входящих в компьютер (Мониторы, Принтеры), отдельного оборудования (Картриджи, Телефоны), а также ПО. Импортированные компьютеры доступны в одноименном подпункте. Выбрав компьютер или устройство мы получаем доступ к 12 вкладкам, в которых можно просмотреть и скорректировать данные об оборудовании, сопоставить ответственного, просмотреть заявки, добавить заметки, сделать отметку о выдаче во временное использование, просмотреть историю и так далее. К сожалению на данный момент список импортированных с OCSNG компонентов компьютера написанный на русском выводится нечитаемым текстом.
Пользователей GLPI можно объединить в группы, кроме этого существует более глобальное понятие - Организация. Сразу после установки создается «Основная организация» в которую и будут включены все компоненты. Предусмотрено создание других организаций с установлением подчиненности между ними (структуры). Но работа с организациями реализована неудобно, так перенос техники в другую организацию усложнен и неудобен. Предусмотрен экспорт данных в PDF, CVS и SLK (Symbolic Link).
По умолчанию при экспорте в PDF вместо русских букв выводятся знаки вопросов, это происходит по двум причинам: стандартная функция экспортирует данные в кодировке ISO-8859-1, которую и поддерживает используемый по умолчаннию шрифт. Подсказка была найдена на форуме OPENNET . Заменяем в скрипте /var/www/glpi/inc/export.function.php вызов функции utf8_decode на utf8_decode_cyr.

$ sudo perl -p -i -e "s/utf8_decode/utf8_decode_cyr/g" export.function.php inc/export.function.php:

Теперь шрифт. По умолчанию для экспорта используется шрифт Helvetica, его бы я и рекомендовал оставить. Если заменить шрифт другим, его имя придется править не только в двух местах файла export.function.php.

$ cat export.function.php | grep -i selectFont $pdf->selectFont(GLPI_ROOT."/lib/ezpdf/fonts/Helvetica.afm");

Но и в 2 файлах находящихся в lib/ezpdf.

Теперь шрифт. Для конвертирования TTF шрифта в Postscript type 1 потребуется утилита ttf2pt1.

$ sudo apt-get install ttf2pt1

Запускаем.

$ ttf2pt1 -l cyrillic -A Helvetica.ttf Helvetica

Теперь копируем файлы вместо старых, не забыв подправить права.

$ sudo cp -v Helvetica* /var/www/glpi/lib/ezpdf/fonts/ `Helvetica.afm" -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.afm" `Helvetica.t1a" -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.t1a" `Helvetica.ttf" -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.ttf"

.
После этого PDF будет выводится корректно.


Установка плагинов для GLPI производится простой распаковкой в подкаталог glpi/plugins, после чего плагин будет доступен для настройки в меню “Установки – Плагины”. С сайта проекта можно скачать приблизительно 50 самых разнообразных плагинов.

Интерфейсы как OCSNG, так и GLPI достаточно просты для освоения, достаточно потратить полчаса и вы будете хорошо ориентироваться. К сожалению, до конца вопрос локализации так и не решен. Так для Windows в OCSNG неправильно отображаются кириллические наименования установленных программ и компонентов оборудования. Обсуждение всех вопросов по локализации можно найти на форумах проекта OCSNG и OPENNET, некоторым они помогают у некоторых не получается все решить.

OCS Inventory NG — открытое программное обеспечение, предназначенное для инвентаризации компьютеров в сети, установленного на них оборудования и программного обеспечения. Позволяет удаленно настраивать ПО рабочих мест. Работает под всеми операционными системами. Платформа OCS может быть использована для визуализации инвентаризации через веб-интерфейс. Модуль автоматического сканирования позволяет построить карту сетевых компьютеров и устройств. По результатам автоматического обследования генерируется база данных, содержащая актуальные упорядоченные сведения об обследованных устройствах и их настройках. Существует возможность построения различных отчетов. Распространяется система по лицензии GPL v2.

Французская компания OCS Inventory существует на рынке открытого программного обеспечения уже 10 лет. В 2011 году три наиболее активных проекта в составе портала для разработчиков открытого программного обеспечени SourceForge использовали платформу OCS. В этом же году объем скачиваний программы достиг 70 000 в месяц.

Платформа имеет приверженцев по всему миру, обеспечивая функционирование более 100 000 проектов, среди которых:

Компания

Страна

Кол-во инвентаризированных компьютеров

Бразилия

Internet Solutions

Desarrollos Empresariales La Rioja SL

Pacific Golf Management K.K.

M. N. Dastur & Company (P) Ltd.

Landratsamt Vogtlandkreis

Германия

В своем последнем докладе Cigref — ассоциация крупнейших компаний Франции — заявила, что платформа OCS Inventory является наиболее часто используемым компаниями - членами ассоциации «открытым» ПО. В 2011 OCS Inventory NG заняла 12-е место в ТОП-50 самых известных и крупных французских компаний.

Области применения OCS Inventory NG:

  • Инвентаризация оборудования;
  • Инвентаризация программного обеспечения;
  • Проведение анализа активов;
  • Обеспечение централизованного распространения ПО;
  • Управление обновлениями ПО;
  • Управление конфигурацией рабочих мест.

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

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

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

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

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


Базовый функционал платформы


OCS Inventory NG обеспечивает сбор следующей информации:

Серийный номер системы, производитель системы, модель системы, производитель BIOS, версия BIOS, дата BIOS

Процессор

Тип процессора (Pentium with MXX, Penitum II, Penitum III, Pentium IV, Celeron, Athlon, Duron), скорость процессора, количество процессоров

Память

Заголовок и описание, емкость в МБ, назначение (системная память, флэш-память), тип памяти (SDRAM, DDR), скорость в МГц, номер слота

Физическая память

Объем в МБ

Размер файла подкачки или размер свопа

Объем в МБ

Устройство ввода

Тип (клавиатура или манипулятор), производитель, название, описание, используемый интерфейс (PS / 2, USB)

Системные порты

Тип (последовательный или параллельный), имя, подпись и описание

Системные слоты

Название, описание, назначение (AGP1, PCI1, PCI2, ISA1)

Системные контроллеры

Производитель, название, тип (Floppy, IDE, SCSI, USB, PCMCIA, IEEE1394, ИК-порт)

Устройства хранения данных

Производитель, модель, описание, тип (дискета, жесткий диск, CD-Rom, съемный). Объем в Мб

Логические диски / разделы

Логические (буквенные) диски, тип (съемный жесткий диск, CD-ROM, сети, RAM), файловая система (FAT, FAT32, NTFS). Общий объем в МБ, объем свободного места в МБ

Звуковые устройства

Производитель, название, описание

Видеоадаптеры

Имя, чипсет, память в МБ, разрешение экрана

Мониторы

Производитель, заголовок, описание, тип, серийный номер

Телефонные модемы

Название, модель, описание, тип (внутренние, внешние)

Сетевые адаптеры

Описание, тип (Dialup, Ethernet, Token Ring, ATM), скорость (в Мбит / с или Гбит/с), MAC-адрес, IP-адрес, маска IP-сети, IP-шлюз, DHCP-сервера

Принтеры

Имя, драйверы, порты подключения

Операционная система

Тип ОС (Linux, Windows 95/98/Me/NT Workstation / NT Server/2000 Professional/2000 сервер), версия ОС (4.0.1381 для NT4, 4.10.2222 на 98 SE). Зарегистрированный владелец, зарегистрированный ID продукта

Программное обеспечение

Извлечение из реестра, аналогично тому, как представлено на панели управления "Add / Remove Software". Название, издатель, версия

Значение ветки реестра

Ключ из ветки реестра Windows

Преимущества системы:

  1. Наиболее востребованная и хорошо отлаженная программа инвентаризации компонентов ИТ-сети;
  2. Интерфейс OCS настолько прост для освоения, что нужно потратить всего полчаса, чтобы хорошо ориентироваться в программе;
  3. С технической точки зрения плюсом является тот факт, что для сбора информации об установленном оборудовании с клиентских компьютеров и серверов используется программа-агент. Все собранные данные агенты отсылают на сервер управления в виде XML-потока. Для передачи используется стандартный протокол HTTP/HTTPS;
  4. Серверная часть OCSNG может быть установлена на компьютер, работающий под управлением практически всех известных ОС. Агент также доступен для клиентских и серверных версий Windows от 95 до Server 2008 R2, а также перечисленных Linux, MacOS X, FreeBSD/OpenBSD/NetBSD (x86/Sparc), Solaris 8, 9, 10 (x86/Sparc), IBM AIX (5.1-5.3) и HP-UX.

Примеры интерфейсов