OCS Inventory NG
OCS Inventory NG — открытое программное обеспечение, предназначенное для инвентаризации компьютеров в сети, установленного на них оборудования и программного обеспечения. Позволяет удаленно настраивать ПО рабочих мест. Работает под всеми операционными системами. Платформа OCS может быть использована для визуализации инвентаризации через веб-интерфейс. Модуль автоматического сканирования позволяет построить карту сетевых компьютеров и устройств. По результатам автоматического обследования генерируется база данных, содержащая актуальные упорядоченные сведения об обследованных устройствах и их настройках. Существует возможность построения различных отчетов. Распространяется система по лицензии GPL v2.
Французская компания OCS Inventory существует на рынке открытого программного обеспечения уже 10 лет. В 2011 году три наиболее активных проекта в составе портала для разработчиков открытого программного обеспечени SourceForge использовали платформу OCS. В этом же году объем скачиваний программы достиг 70 000 в месяц.
Платформа имеет приверженцев по всему миру, обеспечивая функционирование более 100 000 проектов, среди которых:
Компания
Страна
Кол-во инвентаризированных компьютеров
Newbie documentation – What you should know
OCS Inventory NG or Open Computer and Software Inventory Next Generation is free software that enables users to automatically inventory their IT assets. OCS-NG collects information about the hardware and software of networked machines running the OCS client program (“OCS Inventory Agent”). OCS can be used to visualize the inventory through a web interface. Furthermore, OCS allows the possibility of deploying applications on the computers according to search criteria. Agent-side IpDiscover and SNMP scan make it possible to identify the entire network of computers and devices.
Operating principle
The OCS server receives inventories sent by agents in XML format and stores the data in a MySQL database. The agents contact the server while the server only listens during this process. Exchanges between agents and server are realised via HTTP and/or HTTPS requests. Software deployments and SNMP scans are HTTPS only.
Schema of data transmission:
Raw data -> XML formatting -> sending in HTTP or HTTPS in /ocsinventory -> handling with mod_perl on the fly -> DB mysql
Management server is made up of 4 main components:
- Database server, which stores inventory information (MySQL)
- Communication server, which handles HTTP/HTTPS communication between database server and agents (Apache, perl and mod_perl)
- Administration console, which allows administrators to query the database server using their favorite browser (Apache, PHP)
- Deployment server, which stores all package deployment configuration (Apache, SSL)
Deployment tools of the solution
Simplified installation of server
- .deb package with automatic install script for Debian 9 Stretch
- .rpm package with automatic install script for Fedora/Redhat/Centos 7
- setup.sh script included in the package (either download it from the official website or clone the GitHub repository)
Deployment tools of agents by the network
- OCS Deployment Tool based on psexec
- OCSPackager and OCSLogon based on GPO and logon scripts
Interfacing with many softwares
Classics
- GLPI http://glpi-project.org/
- LDAP https://ldap.com/
- ITOP https://www.combodo.com/itop-193
- OTRS https://otrs.com/
Others
OCS provides a REST API, which allows it to interface with many applications, such as Nagios for example.
Major technical information
Windows agent
Agent configuration directory: Windows 2000, XP and Server 2003 * C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent Windows Vista, 7, 8, 8.1, 10, Server 2008, Server 2008 R2, etc. * C:\ProgramData\OCS Inventory NG\Agent Agent configuration file is ocsinventory.ini
Server
Do not mix up the directories /ocsinventory and /ocsreports. ocsreports : Directory containing all the PHP files that providing the web administration console. ocsinventory : Virtual directory used by mod_perl to handle XML inventories sent by agents and to store data in database.
Debugging
- Using agents logs:
- Windows : Use Debug parameter in ocsinventory.ini file to have more verbose logs ( Debug=2 ). This config file is located in the same folder as the agent configuration (see above). If OCS is installed as a service you have to stop it first. Then set Debug=2 to obtain the higher log level and save the file. Finally restart OCS service and send a new inventory.
- Unix/Linux : Use –debug and –logfile parameters to obtain a detailed log. Launch inventory with these options : ocsinventory-agent –debug –logfile=/mon/path/log.txt
- Apache logs : access.log and error.log (normally located in /var/log/apache2 )
- OCS log : activity.log (normally located in /var/log/ocsinventory-server ) To use this functionality, you have to activate log function from administration console ( LOGLEVEL ), and modify the server configuration file z-ocsinventory-server.conf to set OCS_OPT_DBI_PRINT_ERROR option to 1. Remember to restart Apache to reflect this change.
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
# aptitude show ocsinventory-server . Версия: 1.02.1-1 . # aptitude install ocsinventory-server ocsinventory-reports
После установки станут доступны ссылки.
http://Your_IP/ocsreports Пользователь: admin, пароль: admin
Инсталляция из исходных текстов
На текущий момент в репозитории версия 1.02.1, на сайте доступна 1.3.1. При такой разнице в версиях логично сервер установить из исходных текстов.
Для начала установим зависимости ocsinventory-server. В моем случае доставил такие пакеты:
# apt-cache depends ocsinventory-server . Зависит: libapache2-mod-perl2 Зависит: libdbi-perl Зависит: libapache-dbi-perl Зависит: libdbd-mysql-perl Зависит: libcompress-zlib-perl . # aptitude install libapache-dbi-perl libapache2-mod-perl2 libapache2-reload-perl libbsd-resource-perl libdevel-symdump-perl libnet-ip-perl libxml-namespacesupport-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl nmap libsoap-lite-perl
Скачиваем с сайта последнюю версию.
# wget http://launchpad.net/ocsinventory-server/stable-1.3/server-release-1.3.1/+download/OCSNG_UNIX_SERVER-1.3.1.tar.gz # tar -xzvf OCSNG_UNIX_SERVER-1.3.1.tar.gz # cd OCSNG_UNIX_SERVER-1.3.1/ # ./setup.sh
По ходу установки следует ответить на ряд стандартных вопросов: расположение сервера баз данных, исполняемого и конфигурационного файла веб-сервера, пользователь, от имени которого запускается веб-сервер и так далее.
Далее производится проверка установленных модулей Perl. И в случае, если нужный не будет найден, выдается соответствующее сообщение. В моем случае не был найден модуль SOAP::Lite – доустановм его.
# aptitude install libsoap-lite-perl
Установим недостающие модули через CPAN установка модулей.
# cpan -i XML::Entities # tail -F /var/log/apache2/error.log . ocsinventory-server: Can't load SOAP::Transport::HTTP* - Web service will be unavailable # Для устранения этой ошибки установим SOAP::Transport::HTTP2 # perl -MCPAN -e "install SOAP::Transport::HTTP2"
Повторяем установку. По окончании скрипт предложит инсталлировать консоль администрирования.
# ./setup.sh +----------------------------------------------------------+ | Installing files for Administration server. | +----------------------------------------------------------+ Creating PHP directory /usr/share/ocsinventory-reports/ocsreports. Copying PHP files to /usr/share/ocsinventory-reports/ocsreports. Fixing permissions on directory /usr/share/ocsinventory-reports/ocsreports. Creating database configuration file /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php. Creating IPDiscover directory /var/lib/ocsinventory-reports/ipd. Fixing permissions on directory /var/lib/ocsinventory-reports/ipd. Creating packages directory /var/lib/ocsinventory-reports/download. Fixing permissions on directory /var/lib/ocsinventory-reports/download. Configuring IPDISCOVER-UTIL Perl script. Installing IPDISCOVER-UTIL Perl script. Fixing permissions on IPDISCOVER-UTIL Perl script. Writing Administration server configuration to file //etc/apache2/conf.d//ocsinventory-reports.conf +----------------------------------------------------------+ | OK, Administration server installation finished ;-) | | | | Please, review //etc/apache2/conf.d//ocsinventory-reports.conf | to ensure all is good and restart Apache daemon. | | | | Then, point your browser to http://server//ocsreports | to configure database server and create/update schema. | +----------------------------------------------------------+
В процессе установки в каталоге /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.
# /etc/init.d/apache2 reload
Набираем в браузере http://Your_IP/ocsreports/install.php и в появившемся окне вводим логин и пароль для доступа к MySQL с правами для создания БД. По умолчанию в процессе установки для доступа к базе ocsweb будет создана учетная запись ocs с паролем ocs.
Новое значение пароля следует прописать в двух файлах:
# nano /etc/apache2/conf.d/z-ocsinventory-server.conf $_SESSION["PSWD_BASE"]="ocspasswd" # nano /etc/apache2/conf.d/z-ocsinventory-server.conf PerlSetVar OCS_DB_PWD ocspasswd
После создания БД ocsweb станет доступна ссылка http://Your_IP/ocsreports/index.php Пользователь по умолчанию admin, пароль admin.
Установка агента
# aptitude install ocsinventory-agent # ocsinventory-agent
Windows: скачиваем файл OCSNG_WINDOWS_AGENT_4061.1.zip. Самым простым вариантом установки является запуск исполняемого файла OcsAgentSetup.exe, в этом случае будет произведена стандартная установка, по окончании которой агент будет прописан в качестве сервиса. На последнем этапе указываем имя или IP-адрес OCSNG сервера и устанавливаем флажок Immediatly launch inventory, чтобы сразу же отправить отчет. Все настройки будут сохранены в файле service.ini каталога, в который установлен агент.
> cd /usr/ports/net-mgmt/ocsinventory-agent > make install clean
Редактируем параметр server.
> ee /etc/ocsinventory-agent/ocsinventory-agent.cfg basevardir=/var/lib/ocsinventory-agent tag= server=http://10.26.95.226/ocsinventory > ocsinventory-agent
При подготовке материала использовались источники:
http://www.pingwinsoft.ru/pages/resheniya/platformi/ocs-inventory-ng
http://wiki.ocsinventory-ng.org/02.Newbie-documentation/OCS-Inventory-NG-Basics/
https://wiki.dieg.info/ocs_inventory