Внедрение и поддержка свободного программного обеспечения
«ПингВин Софтвер» — единственная компания в России, оказывающая поддержку СПО в режиме 24х7
Узнайте, почему компании выбирают переход на СПО.
OCS Inventory NG
OCS Inventory NG — открытое программное обеспечение, предназначенное для инвентаризации компьютеров в сети, установленного на них оборудования и программного обеспечения. Позволяет удаленно настраивать ПО рабочих мест. Работает под всеми операционными системами. Платформа OCS может быть использована для визуализации инвентаризации через веб-интерфейс. Модуль автоматического сканирования позволяет построить карту сетевых компьютеров и устройств. По результатам автоматического обследования генерируется база данных, содержащая актуальные упорядоченные сведения об обследованных устройствах и их настройках. Существует возможность построения различных отчетов. Распространяется система по лицензии GPL v2.
Французская компания OCS Inventory существует на рынке открытого программного обеспечения уже 10 лет. В 2011 году три наиболее активных проекта в составе портала для разработчиков открытого программного обеспечени SourceForge использовали платформу OCS. В этом же году объем скачиваний программы достиг 70 000 в месяц.
Платформа имеет приверженцев по всему миру, обеспечивая функционирование более 100 000 проектов, среди которых:
Компания
Страна
Кол-во инвентаризированных компьютеров
Desarrollos Empresariales La Rioja SL
Pacific Golf Management K.K.
M. N. Dastur & Company (P) Ltd.
В своем последнем докладе Cigref — ассоциация крупнейших компаний Франции — заявила, что платформа OCS Inventory является наиболее часто используемым компаниями – членами ассоциации «открытым» ПО. В 2011 OCS Inventory NG заняла 12-е место в ТОП-50 самых известных и крупных французских компаний.
Области применения OCS Inventory NG:
- Инвентаризация оборудования;
- Инвентаризация программного обеспечения;
- Проведение анализа активов;
- Обеспечение централизованного распространения ПО;
- Управление обновлениями ПО;
- Управление конфигурацией рабочих мест.
Архитектура системы
Система OCS Inventory NG использует программу-агента, которая выполняется на инспектируемом оборудовании и передает информацию на центральный сервер. Управление программами-агентами выполняется так же с центрального сервера. Центральный сервер системы позволяет не только собирать информацию об оборудовании, но и частично управлять инспектируемыми компьютерами.Связь между сервером и проверяемым оборудованием происходит через HTTP/HTTPS протоколы. Вся передаваемая информация сжимается для уменьшения сетевого трафика.
Центральный сервер управления содержит следующие компоненты:
- Сервер базы данных для хранения информации о проверяемом оборудовании;
- Коммуникационный сервер, осуществляющий связь с сервером базы данных и программами-агентами на проверяемом оборудовании;
- Сервер развертывания, для установки программ-агентов;
- Консоль управления, которая позволяет производить просмотр информации о проверяемом оборудовании через Интернет браузер.
Архитектура системы
Базовый функционал платформы
OCS Inventory NG обеспечивает сбор следующей информации:
BIOS
Серийный номер системы, производитель системы, модель системы, производитель 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
- Наиболее востребованная и хорошо отлаженная программа инвентаризации компонентов ИТ-сети;
- Интерфейс OCS настолько прост для освоения, что нужно потратить всего полчаса, чтобы хорошо ориентироваться в программе;
- С технической точки зрения плюсом является тот факт, что для сбора информации об установленном оборудовании с клиентских компьютеров и серверов используется программа-агент. Все собранные данные агенты отсылают на сервер управления в виде XML-потока. Для передачи используется стандартный протокол HTTP/HTTPS;
- Серверная часть 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.
АйТи бубен
Инструменты пользователя
Инструменты сайта
Боковая панель
Содержание
OCS Inventory NG
OCS Inventory система инвентаризации компьютеров в сети, установленного на них оборудования и программного обеспечения. Так же позволяет удаленно настраивать программное обеспечение рабочих мест.
OCS Inventory NG расшифровывается как Open Computers and Software Inventory.
Система OCS Inventory NG использует программу агента, которая выполняется на инспектируемом оборудовании и передает информацию на центральный сервер. Управление программами-агентами выполняется так же с центрального центрального сервера. Центральный сервер системы позволяет не только собирать информацию об инвентаризированном оборудовании, но и частично управлять инспектируемыми компьютерами.
Кроме функций сетевой инвентаризации, OCSNG имеет возможность развертывания пакетов и запуска команд, записанных в файле (например, bat/vbs) на клиентских компьютерах (кроме Vista), информация о которых находится в инвентаризационной системе. При необходимости установки одного приложения на большое количество систем такая функциональность очень выручает.
Инсталляция из репозитория
Системное окружение: Ubuntu Server 9.10 x86_64 GNU/Linux
После установки станут доступны ссылки.
Инсталляция из исходных текстов
На текущий момент в репозитории версия 1.02.1, на сайте доступна 1.3.1. При такой разнице в версиях логично сервер установить из исходных текстов.
Для начала установим зависимости ocsinventory-server. В моем случае доставил такие пакеты:
Скачиваем с сайта последнюю версию.
По ходу установки следует ответить на ряд стандартных вопросов: расположение сервера баз данных, исполняемого и конфигурационного файла веб-сервера, пользователь, от имени которого запускается веб-сервер и так далее.
Далее производится проверка установленных модулей Perl. И в случае, если нужный не будет найден, выдается соответствующее сообщение. В моем случае не был найден модуль SOAP::Lite — доустановм его.
Установим недостающие модули через CPAN установка модулей.
Повторяем установку. По окончании скрипт предложит инсталлировать консоль администрирования.
В процессе установки в каталоге /etc/apache2/conf.d/ будут созданы конфигурационные файлы для веб-сервера — ocsinventory-server.conf и ocsinventory-reports.conf. Сами PHP-скрипты, обеспечивающие функции OCSNG, будут скопированы в /usr/share/ocsinventory-reports/ocsreports и подключены к веб-серверу с использованием директивы Alias.
Поэтому при необходимости управления доступом все изменения следует производить в упомянутых конфиконфигурационных файлах, иначе назначенные на корень права не будут наследоваться. Кроме этого создается файл (/etc/logrotate.d/ocsinventory-server), обеспечивающий ротацию журналов раз в неделю.
Некоторые пакеты, распространяемые при помощи OCSNG, могут иметь размер больше 8 Мб, поэтому, чтобы не было проблем с их загрузкой, следует установить большее значение переменных post_max_size и upload_max_filesize в файле /etc/php5/apache2/php.ini, например в 10 Мб (по умолчанию – 8 и 2 Мб). Эти же установки надо изменить в файле ocsinventory-reports.conf. Перезапускаем Apache.
Набираем в браузере http://Your_IP/ocsreports/install.php и в появившемся окне вводим логин и пароль для доступа к MySQL с правами для создания БД. По умолчанию в процессе установки для доступа к базе ocsweb будет создана учетная запись ocs с паролем ocs.
Новое значение пароля следует прописать в двух файлах:
Учет оборудования с OCS Inventory NG и GLPI
Архив номеров / 2009 / Выпуск №5 (78) / Учет оборудования с OCS Inventory NG и GLPI
задает еще больше вопросов. При этом:
А первая строка файла явно указывает на нужную кодировку. $ head -n 1 russian.txt Из этого делаем вывод – что-то не то с самим файлом, поэтому берем аналогичный с RC1 или другого источника (например, на сайте журнала www.samag.ru в разделе «Исходный код») и подменяем его, не забыв установить нужные права доступа. $ 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 Далее в файле machine.php, который находится в этом же каталоге, правим функцию print_softwares. После установки она будет иметь такой вид: 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 [4] (обеспечивает сбор данных из 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 После ввода последней команды поступит запрос на настройку агента.
Отмечаем «y» и при помощи цифровых клавиш отвечаем на вопросы, где должен располагаться конфигурационный файл: Where do you want to write the configuration file? Далее указываем адрес или имя сервера, создаем тег (с его помощью можно собрать системы в целевую группу, например, по принципу размещения) для агента, активируем задачу для cron, каталог для хранения файлов и так далее. По окончании выдается запрос на отсылку собранных данных о компьютере на сервер: Do you want to send an inventory of this machine? Please enter ‘y’ or ‘n’?> [y] [info] Accountinfo file doesn’t exist. I create an empty one. В итоге в /var/lib/ocsinventory-agent будет создан подкаталог с файлами, содержащими текущую конфигурацию компьютера. Например, в ocsinv.adm содержатся тег и название системы, под которым она будет видна в консоли управления. Практически сразу после установки агента сведения о новой системе появятся в консоли управления во вкладке «Все компьютеры». При возникновении проблем можно запустить агента в режиме отладки: $ 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 Мгц, но при необходимости данные можно скорректировать вручную. По разным причинам в базу компьютер может быть занесен несколько раз, для удаления дубликатов существует одноименная вкладка, в которой одинаковые системы можно отобрать по нескольким характеристикам (имя, МАС-адрес, серийный номер). После установки агентов данные автоматически появляются в консоли управления OCSNG Текущая версия агента для Windows 4.0.5.4, архив OCSNG_WINDOWS_AGENT_1.02.zip с установочными файлами можно скачать с сайта проекта. Судя по всему, в нем уже исправлена ошибка, которая приводила к тому, что русские буквы, начиная с ‘х'(0xF4) заменялись английским иксом. Во всяком случае, на тестовых системах все работало правильно. Как вариант можно использовать специальную сборку OCSNG_WINDOWS_AGENT_1.02_RC2_OTEA.zip (версия агента 4.0.4.9) [5]. Самым простым вариантом установки является запуск исполняемого файла 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. Здесь три возможных значения:
Параметры в User notifications позволяют вывести соответствующее предупреждение пользователю, разрешить ему отмену выполнения задачи. Созданный пакет загружается в каталог /var/lib/ocsinventory-reports/download/timestamp. При этом timestamp получается уникальным.
Файл info содержит настройки пакета, а 1241722723-1 является собственно программой. Переходим в меню Deployment -> Activate, выбираем нужный пакет и нажимаем ссылку Activate. Вводим в появившемся окне адрес вида https://server/download/, при этом timestamp к URL будет добавлен автоматически, нажимаем «Отправить». В ответ должны получить сообщение :
Теперь выбираем компьютер, на котором хотим установить пакет, переходим в меню Customization, в самом низу выбираем ссылку add package, указываем на пакет и нажимаем в поле Affect. Подтверждаем свой выбор. В Customization появится информация о состоянии задачи, а в таблице в Activate будет выводиться статистика. По умолчанию агент подключается к серверу раз в сутки, тогда и будет произведена установка. Можно ускорить этот процесс, вызвав подключение принудительно, как это показано выше. После подключения агента к серверу состояние пакета должно измениться с WAITING_NOTIFICATIONS на NOTIFIED, а затем Success. Пакет будет сохранен в каталоге C:\Program Files\OCS Inventory Agent\download\TIMESTAMP. А все связанные сообщения можно найти в файле download.log. Кроме выдачи информации о «своем» компьютере, агенты в разных подсетях сканируют сеть в поисках MAC-адресов, принадлежащих других системам. Такая функция называется IP discovery и позволяет находить другие устройства, на которые нельзя установить агент (например, свитчи, принтеры и так далее). Установка GLPI достаточно проста. В репозиториях дистрибутивов нужный пакет есть, но его версия обычно сильно отстает. $ sudo apt-cache search glpi
$ sudo apt-cache show glpi | grep -i version Актуальной на момент написания статьи является версия 0.71.5, вышедшая в январе 2009 года. Кроме этого, на странице загрузки доступен предрелиз 0.72-RC2 и срез CVS-архива. Для установки просто распаковываем скачанный архив в корневой каталог веб-сервера: $ sudo tar xzvf glpi-0.71.5.tar.gz -C /var/www Устанавливаем для некоторых каталогов владельца и группу-владельца: $ sudo chown www-data:www-data config files files/* inc Далее набираем в браузере http://localhost/glpi выбираем язык (в списке есть русский), принимаем условия GPL и следуем указаниям мастера установки. Самый главный этап – «Проверка окружения на совместимость с GLPI», где следует внимательно прочитать и выполнить все рекомендации. При установке GLPI следует выполнить все рекомендации программы Например, по указанию мастера параметр memory_limit в php.ini следует установить в значение, большее чем 32 Мб: $ grep -i memory_limit /etc/php5/apache2/php.ini Выполняем все требования, проверяем повторно и, если все нормально, нажимаем 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 поддерживает импорт учетных данных из AD или другой LDAP. Регистрируемся в системе как glpi. Для локализации интерфейса в меню Setting -> Select Language выбираем русский язык, после этого все новые учетные записи будут использовать по умолчанию выбранный язык. Новые пользователи добавляются в одноименной вкладке, там несколько некорректный перевод. Так, логину соответствует поле «Имя пользователя», это иногда сбивает с толку. Чтобы не было путаницы, можно изменить значение в файле /var/www/glpi/locales/ru_RU.php: Далее переходим в меню «Установки (Setup) -> Общие (General setup)» и устанавливаем «Активировать режим OCSNG (Activate OCSNG mode)» в «Да». После этого появится новая вкладка «Режим OCSNG» (OCSNG Mode). Окно активации режима OCSNG Если OCSNG и MySQL установлены на локальной машине, то данные для подключения к OCSNG будут найдены автоматически. Иначе необходимо будет заполнить информацию о сервере OCSNG вручную. По умолчанию синхронизируется только часть параметров, чтобы в базу данных GLPI были перенесены и компоненты компьютеров, следует разрешить их синхронизацию, установив флажок напротив нужного в положение «Глобальный импорт». Кроме этого, во вкладке «Инструменты» появится пункт OCSNG, при помощи имеющихся здесь ссылок можно производить синхронизацию и импортирование компьютеров между OCSNG и GLPI. Полученные данные появляются во вкладке «Оборудование». Здесь несколько подпунктов, переход в некоторые из них позволяет получить список некоторых компонентов, входящих в компьютер («Мониторы», «Принтеры»), отдельного оборудования («Картриджи», «Телефоны»), а также ПО. Импортированные компьютеры доступны в одноименном подпункте. Выбрав компьютер или устройство, мы получаем доступ к 12 вкладкам, в которых можно просмотреть и скорректировать данные об оборудовании, сопоставить ответственного, просмотреть заявки, добавить заметки, сделать отметку о выдаче во временное использование, просмотреть историю и так далее. К сожалению, на данный момент список импортированных с OCSNG компонентов компьютера, написанный на русском языке, выводится нечитаемым текстом. Информация об оборудовании, импортированная с OCSNG в GLPI, отображается некорректно Пользователей GLPI можно объединить в группы, кроме этого существует более глобальное понятие – «Организация». Сразу после установки создается «Основная организация», в которую и будут включены все компоненты. Предусмотрено создание других организаций с установлением подчиненности между ними (структуры). Но работа с организациями реализована неудобно, так перенос техники в другую организацию усложнен и неудобен. Предусмотрен экспорт данных в PDF, CVS и SLK (Symbolic Link). По умолчанию при экспорте в PDF вместо русских букв выводятся знаки вопросов, это происходит по двум причинам: стандартная функция экспортирует данные в кодировке ISO-8859-1, которую и поддерживает используемый по умолчанию шрифт. Подсказка была найдена на форуме OPENNET [6]. Заменяем в скрипте /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 И добавляем в export.function.php описание самой функции utf8_decode_cyr: По умолчанию для экспорта используется шрифт Helvetica, его бы я и рекомендовал оставить. Если заменить шрифт другим, его имя придется править не только в двух местах файла export.function.php: $ cat export.function.php | grep -i selectFont Но и в двух файлах, находящихся в lib/ezpdf. $ sudo apt-get install ttf2pt1 $ ttf2pt1 -l cyrillic -A Helvetica.ttf Helvetica Теперь копируем файлы вместо старых, не забыв подправить права: $ sudo cp -v Helvetica* /var/www/glpi/lib/ezpdf/fonts/ Исправленный вариант шрифтов, можно найти в разделе «Исходный код» сайта журнала www.samag.ru . После этого PDF будет выводиться корректно. Файл PDF, сгенерированный в OCSNG, с информацией о системе Установка плагинов для GLPI производится простой распаковкой в подкаталог glpi/plugins, после чего плагин будет доступен для настройки в меню «Установки -> Плагины». С сайта проекта можно скачать приблизительно 50 самых разнообразных плагинов. Интерфейсы, как OCSNG, так и GLPI, достаточно просты для освоения, нужно потратить полчаса, и вы будете хорошо ориентироваться. К сожалению, до конца вопрос локализации так и не решен. Так, для Windows в OCSNG неправильно отображаются кириллические наименования установленных программ и компонентов оборудования. Обсуждение всех вопросов по локализации можно найти на форумах проекта OCSNG и OPENNET [6], некоторым они помогают, у некоторых не получается все решить. |