Ocs inventory что за программа. Учет оборудования с OCS Inventory NG и GLPI. Поздравляем участника конкурса

Версия программы: 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 расшифровывается как 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 проектом.

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

Постовой

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

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

Сегодня в организации любого размера довольно много компьютерной техники и прочего оборудования. Учет которого, а также прочих связанных затрат, часто входит в обязанности администратора. Применение специализированных систем может значительно упростить эту задачу. В статье рассмотрим решения 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 и GLPI

Сегодня в любой организации много компьютерной техники и прочего оборудования, учет которого, а также прочих связанных затрат часто входит в обязанности администратора. Применение специализированных систем может значительно упростить эту задачу. В статье рассмотрим решения 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, как и в Kwok Information Server , изначально все данные вводятся вручную и сохраняются в базе данных 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), MacOSX (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

$ 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.

С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 Мб):

php_value post_max_size 10m

php_value upload_max_filesize 10m

Эти же установки надо изменить в файле ocsinventory-reports.conf.

Набираем в браузере 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 является статья Евгения Бражко , но она относится к версии 1.02RC1, вышедшей в марте 2008 года, и многие вопросы, которые в ней описаны, в текущей версии уже решены. Так, анализ HTML-кода страницы показал, что она выдается в нужной кодировке:

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

Вывод команды file:

$ file russian.txt

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

$ 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:

// 0 For non utf8 database, 1 for utf8

define("UTF8_DEGREE", 1);

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

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

Далее указываем адрес или имя сервера, создаем тег (с его помощью можно собрать системы в целевую группу, например, по принципу размещения) для агента, активируем задачу для 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) заменялись английским иксом. Во всяком случае, на тестовых системах все работало правильно. Как вариант можно использовать специальную сборку OCSNG_WINDOWS_AGENT_1.02_RC2_OTEA.zip (версия агента 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/

Теперь выбираем компьютер, на котором хотим установить пакет, переходим в меню 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"]="Имя пользователя";

Если 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:

inc/export.function.php:

Return iconv("UTF-8","Windows-1251",$value);

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

$ cat export.function.php | grep -i selectFont

$pdf->selectFont(GLPI_ROOT."/lib/ezpdf/fonts/Helvetica.afm");

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

$ 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 , некоторым они помогают, у некоторых не получается все решить.

  1. Сайт проекта OCS Inventory NG – http://www.ocsinventory-ng.org . .
  2. Страница Wiki проекта GLPI на русском –


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: