Instalación y configuración de servidor OCS Inventory NG en Ubuntu 17.04

En este documento instalaremos un servidor OCS-Inventory para realizar inventarios automáticos de nuestros equipos de red. Esta herramienta la montaremos sobre un servidor Ubuntu 17.04, un apache2 y servidor de bases de datos MySQL.

Hemos ya preparado un Ubuntu Server 17.04 habiendo hecho una instalación totalmente por defecto

Dejo también aquí un vídeo donde se muestra toda el proceso de instalación y los pasos que veremos a continuación.

Instalación

Primero asignaremos una IP fija a la ethernet

sudo vi /etc/network/interfaces

Modificamos nuestra configuración de red, pasamos de dhcp a static y configuramos los parámetros de red

En mi caso modificaré la ethernet que esta montada cómo ens33, en vuestro caso será posiblemente otro nombre, tenéis que mantener la primera linea de auto así cómo el iface xxxx inet de la segunda linea

auto ens33
iface ens33 inet static
address 192.168.1.50
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.1
broadcast 192.168.1.255
dns-nameservers 8.8.8.8 8.8.4.4

En este punto podemos reiniciar la tarjeta de red mediante los comandos ifdown y ifup, pero también podemos reiniciar directamente el equipo, de este modo los cambios se van a aplicar seguro.

Utilizaremos:
sudo ifdown eth0 (eth0 es un ejemplo, en nuestro caso tendremos que ver cual es nuestra tarjeta de red)
sudo ifup eth0 (eth0 es ejemplo, en mi caso la ethernet se llama ens33)

En caso de duda podemos reiniciar el equipo con:
sudo shutdown now -r

Actualizamos repositorios y realizamos un upgrade
sudo apt-get update
sudo apt-get upgrade

Instalamos el servidor ssh, puesto que a partir de este momento trabajaremos des de un cliente ssh (Putty)
sudo atp-get openssh-server

Iniciamos la instalación de servidor web apache, MySQL, librerias php y perl que vamos a necesitar
sudo apt-get install wget build-essential apache2 php libapache2-mod-php7.0 php-gd libgd-dev unzip libapache2-mod-perl2 mysql-server libdbd-mysql-perl php-mysql php-mbstring php7.0-mbstring php7.0-mcrypt php-gettext php-soap php7.0-curl libxml-simple-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl

Continuamos instalando dependencias vía CPAN
sudo cpan -i XML::Entities Compress::Zlib Archive::Zip

Activamos en php mcrypt y mbstring
sudo phpenmod mcrypt
sudo phpenmod mbstring

Reiniciamos apache2 y ya podemos probar mediante el navegador si nuestro servidor web esta disponible

sudo service apache2 restart

Editamos el arcivo de configuración de apache y añadimos la dirección del servidor en la ultima linea, en ese caso yo le voy a poner “localhost”

sudo vi /etc/apache2/apache2.conf

ServerName localhost

Conectamos al MySQL y creamos la base de datos y el usuraio y password que vamos a utilizar.
mysql -u root -p

CREATE DATABASE ocsweb
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

GRANT ALL PRIVILEGES ON `ocsweb` .* TO 'ocsuser'@'localhost' IDENTIFIED BY 'ocspassword' WITH GRANT OPTION;

Ahora creamos una carpeta donde descargar y descomprimir el ocs server que vamos a instalar

cd /
sudo mkdir ocs
cd ocs

Vamos a la web de OCS Inventory NG https://www.ocsinventory-ng.org/en/ y copiamos la dirección de descarga del paquete de instalación de servidor Linux

Volvemos al puty y lo descargamos y descomprimimos.

sudo wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.3.1/OCSNG_UNIX_SERVER-2.3.1.tar.gz
sudo tar -xzvf OCSNG_UNIX_SERVER-2.3.1.tar.gz
cd OCSNG_UNIX_SERVER-2.3.1/

Empezamos la instalación

sudo ./setup

ocs@ocs:/ocs/OCSNG_UNIX_SERVER-2.3.1$ sudo ./setup.sh
[sudo] password for ocs:

+----------------------------------------------------------+
|                                                          |
|  Welcome to OCS Inventory NG Management server setup !   |
|                                                          |
+----------------------------------------------------------+

Trying to determine whitch OS or Linux distribution you use
+----------------------------------------------------------+
| Checking for Apache web server binaries !                             |
+----------------------------------------------------------+

CAUTION: If upgrading Communication server from OCS Inventory NG 1.0 RC2 and
previous, please remove any Apache configuration for Communication Server!

Do you wish to continue ([y]/n)?
Assuming Communication server 1.0 RC2 or previous is not installed
on this computer.

Starting OCS Inventory NG Management server setup from folder /ocs/OCSNG_UNIX_SERVER-2.3.1
Storing log in file /ocs/OCSNG_UNIX_SERVER-2.3.1/ocs_server_setup.log

+----------------------------------------------------------+
| Checking for database server properties...                      |
+----------------------------------------------------------+

Your MySQL client seems to be part of MySQL version 5.7.
Your computer seems to be running MySQL 4.1 or higher, good ;-)

Which host is running database server [localhost] ?
OK, database server is running on host localhost ;-)

On which port is running database server [3306] ?
OK, database server is running on port 3306 ;-)


+----------------------------------------------------------+
| Checking for Apache web server daemon...                              |
+----------------------------------------------------------+

Where is Apache daemon binary [/usr/sbin/apache2ctl] ?
OK, using Apache daemon /usr/sbin/apache2ctl ;-)


+----------------------------------------------------------+
| Checking for Apache main configuration file...                  |
+----------------------------------------------------------+


Where is Apache main configuration file [/etc/apache2/apache2.conf] ?
OK, using Apache main configuration file /etc/apache2/apache2.conf ;-)


+----------------------------------------------------------+
| Checking for Apache user account...                                    |
+----------------------------------------------------------+

Which user account is running Apache web server [www-data] ?
OK, Apache is running under user account www-data ;-)


+----------------------------------------------------------+
| Checking for Apache group...                                                 |
+----------------------------------------------------------+

Which user group is running Apache web server [www-data] ?
OK, Apache is running under users group www-data ;-)


+----------------------------------------------------------+
| Checking for Apache Include configuration directory...   |
+----------------------------------------------------------+

Setup found Apache Include configuration directory in
/etc/apache2/conf-available.
Setup will put OCS Inventory NG Apache configuration in this directory.
Where is Apache Include configuration directory [/etc/apache2/conf-available] ?
OK, Apache Include configuration directory /etc/apache2/conf-available found ;-)


+----------------------------------------------------------+
| Checking for PERL Interpreter...                                             |
+----------------------------------------------------------+

Found PERL Intrepreter at  ;-)
Where is PERL Intrepreter binary [/usr/bin/perl] ?
OK, using PERL Intrepreter /usr/bin/perl ;-)


Do you wish to setup Communication server on this computer ([y]/n)?


+----------------------------------------------------------+
|             Checking for Make utility...                 |
+----------------------------------------------------------+

OK, Make utility found at  ;-)

+----------------------------------------------------------+
|        Checking for Apache mod_perl version...           |
+----------------------------------------------------------+

Checking for Apache mod_perl version 1.99_22 or higher
Found that mod_perl version 1.99_22 or higher is available.
OK, Apache is using mod_perl version 1.99_22 or higher ;-)

+----------------------------------------------------------+
|    Checking for Communication server log directory...    |
+----------------------------------------------------------+

Communication server can create detailed logs. This logs can be enabled
by setting integer value of LOGLEVEL to 1 in Administration console
menu Configuration.
Where to put Communication server log directory [/var/log/ocsinventory-server] ?
OK, Communication server will put logs into directory /var/log/ocsinventory-server ;-)

+----------------------------------------------------------------------------+
|    Checking for Communication server plugins configuration directory...    |
+----------------------------------------------------------------------------+

Communication server need a directory for plugins configuration files.
Where to put Communication server plugins configuration files [/etc/ocsinventory-server/plugins] ?
OK, Communication server will put plugins configuration files into directory /etc/ocsinventory-server/plugins ;-)

+-------------------------------------------------------------------+
|   Checking for Communication server plugins perl directory...     |
+-------------------------------------------------------------------+

Communication server need a directory for plugins Perl modules files.
Where to put Communication server plugins Perl modules files [/etc/ocsinventory-server/perl] ?
OK, Communication server will put plugins Perl modules files into directory /etc/ocsinventory-server/perl ;-)


+----------------------------------------------------------+
| Checking for required Perl Modules...                                 |
+----------------------------------------------------------+

Checking for DBI PERL module...
Found that PERL module DBI is available.
Checking for Apache::DBI PERL module...
Found that PERL module Apache::DBI is available.
Checking for DBD::mysql PERL module...
Found that PERL module DBD::mysql is available.
Checking for Compress::Zlib PERL module...
Found that PERL module Compress::Zlib is available.
Checking for XML::Simple PERL module...
Found that PERL module XML::Simple is available.
Checking for Net::IP PERL module...
Found that PERL module Net::IP is available.
Checking for SOAP::Lite Perl module...
Found that PERL module SOAP::Lite is available.
Checking for Archive::Zip Perl module...
Found that PERL module Archive::Zip is available.

+----------------------------------------------------------+
|         Checking for optional Perl Modules...            |
+----------------------------------------------------------+

Checking for Apache2::SOAP PERL module...
*** Warning: PERL module Apache2::SOAP is not installed !
This module is only required by OCS Inventory NG SOAP Web Service.
Do you wish to continue ([y]/n] ?
Checking for XML::Entities PERL module...
Found that PERL module XML::Entities is available.


+----------------------------------------------------------+
|                 OK, looks good ;-)                       |
|                                                          |
|     Configuring Communication server Perl modules...     |
+----------------------------------------------------------+

Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Apache::Ocsinventory
Writing MYMETA.yml and MYMETA.json

+----------------------------------------------------------+
|                 OK, looks good ;-)                       |
|                                                          |
|      Preparing Communication server Perl modules...      |
+----------------------------------------------------------+


+----------------------------------------------------------+
|                 OK, prepare finshed ;-)                  |
|                                                          |
|     Installing Communication server Perl modules...      |
+----------------------------------------------------------+


+----------------------------------------------------------+
| OK, Communication server Perl modules install finished;-)|
|                                                          |
|     Creating Communication server log directory...       |
+----------------------------------------------------------+

Creating Communication server log directory /var/log/ocsinventory-server.

Fixing Communication server log directory files permissions.
Configuring logrotate for Communication server.
Removing old communication server logrotate file /etc/logrotate.d/ocsinventory-NG
Writing communication server logrotate to file /etc/logrotate.d/ocsinventory-server


+----------------------------------------------------------------------+
|        OK, Communication server log directory created ;-)            |
|                                                                      |
|   Creating Communication server plugins configuration directory...   |
+----------------------------------------------------------------------+

Creating Communication server plugins configuration directory /etc/ocsinventory-server/plugins.


+----------------------------------------------------------------------+
| OK, Communication server plugins configuration directory created ;-) |
|                                                                      |
|        Creating Communication server plugins Perl directory...       |
+----------------------------------------------------------------------+

Creating Communication server plugins Perl directory /etc/ocsinventory-server/perl.


+----------------------------------------------------------------------+
|     OK, Communication server plugins Perl directory created ;-)      |
|                                                                      |
|               Now configuring Apache web server...                   |
+----------------------------------------------------------------------+

To ensure Apache loads mod_perl before OCS Inventory NG Communication Server,
Setup can name Communication Server Apache configuration file
'z-ocsinventory-server.conf' instead of 'ocsinventory-server.conf'.
Do you allow Setup renaming Communication Server Apache configuration file
to 'z-ocsinventory-server.conf' ([y]/n) ?
OK, using 'z-ocsinventory-server.conf' as Communication Server Apache configuration file
Removing old communication server configuration to file /etc/apache2/conf-available/ocsinventory.conf
Writing communication server configuration to file /etc/apache2/conf-available/z-ocsinventory-server.conf

+----------------------------------------------------------------------+
|       OK, Communication server setup successfully finished ;-)       |
|                                                                      |
| Please, review /etc/apache2/conf-available/z-ocsinventory-server.conf |
|         to ensure all is good. Then restart Apache daemon.           |
+----------------------------------------------------------------------+


Do you wish to setup Administration Server (Web Administration Console)
on this computer ([y]/n)?

+----------------------------------------------------------+
|    Checking for Administration Server directories...     |
+----------------------------------------------------------+

CAUTION: Setup now install files in accordance with Filesystem Hierarchy
Standard. So, no file is installed under Apache root document directory
(Refer to Apache configuration files to locate it).
If you're upgrading from OCS Inventory NG Server 1.01 and previous, YOU
MUST REMOVE (or move) directories 'ocsreports' and 'download' from Apache
root document directory.
If you choose to move directory, YOU MUST MOVE 'download' directory to
Administration Server writable/cache directory (by default
/var/lib/ocsinventory-reports), especially if you use deployment feature.

Do you wish to continue ([y]/n)?
Assuming directories 'ocsreports' and 'download' removed from
Apache root document directory.

Where to copy Administration Server static files for PHP Web Console
[/usr/share/ocsinventory-reports] ?
OK, using directory /usr/share/ocsinventory-reports to install static files ;-)

Where to create writable/cache directories for deployment packages,
administration console logs, IPDiscover and SNMP [/var/lib/ocsinventory-reports] ?
OK, writable/cache directory is /var/lib/ocsinventory-reports ;-)


+----------------------------------------------------------+
|         Checking for required Perl Modules...            |
+----------------------------------------------------------+

Checking for DBI PERL module...
Found that PERL module DBI is available.
Checking for DBD::mysql PERL module...
Found that PERL module DBD::mysql is available.
Checking for XML::Simple PERL module...
Found that PERL module XML::Simple is available.
Checking for Net::IP PERL module...
Found that PERL module Net::IP is available.

+----------------------------------------------------------+
|      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.
Creating snmp mibs directory /var/lib/ocsinventory-reports/snmp.
Fixing permissions on directory /var/lib/ocsinventory-reports/snmp.
Creating Administration server log files directory /var/lib/ocsinventory-reports/logs.
Fixing permissions on directory /var/lib/ocsinventory-reports/logs.
Creating Administration server scripts log files directory /var/lib/ocsinventory-reports/scripts.
Fixing permissions on directory /var/lib/ocsinventory-reports/scripts.
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-available/ocsinventory-reports.conf

+----------------------------------------------------------------------+
|        OK, Administration server installation finished ;-)           |
|                                                                      |
| Please, review /etc/apache2/conf-available/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.        |
+----------------------------------------------------------------------+


Setup has created a log file /ocs/OCSNG_UNIX_SERVER-2.3.1/ocs_server_setup.log. Please, save this file.
If you encounter error while running OCS Inventory NG Management server,
we can ask you to show us his content !

DON'T FORGET TO RESTART APACHE DAEMON !

Enjoy OCS Inventory NG ;-)

ocs@ocs:/ocs/OCSNG_UNIX_SERVER-2.3.1$

Vamos a crear los links simbólicos en sites-enabled para la web de administración y para la dirección donde vamos a mandar los inventarios des de los equipos remotos

sudo ln -s /etc/apache2/conf-available/ocsinventory-reports.conf /etc/apache2/sites-enabled/ocsinventory-reports.conf

sudo ln -s /etc/apache2/conf-available/z-ocsinventory-server.conf /etc/apache2/sites-enabled/

sudo service apache2 restart

Abrimos ya la web de ocs, mi caso de ejemplo la url es http://192.168.1.50/ocsreports

 

Si todo ha ido bien aparecerá la web de configuración donde indicaremos usuario/password, base de datos y servidor. Si habéis seguido el manual corresponden a:

ocsuser/ocspassword
ocsweb
localhost

Vemos que la instalación nos muestra o nos indica varios aspectos que deberemos tener en cuenta, en este caso vamos a aplicar el dicho de divide y vencerás y vamos a abordad punto a punto

Var lib dir should be writable : /var/lib/ocsinventory-reports

Para resolver esto concederemos la carpeta en cuestión al usuario www-data

sudo chown www-data:www-data -R /var/lib/ocsinventory-reports

WARNING: You will not be able to build any deployment package with size greater than 100MB
You must raise both post_max_size and upload_max_filesize in your vhost configuration to encrease this limit.

 

Aquí podemos ampliar el límite modificando el fichero ocsinventory-reports.conf

sudo vi /etc/apache2/conf-available/ocsinventory-reports.conf

En el ejemplo amplio a 200M

A nosotros nos aplica la configuración php7 pero modificaremos las dos

    
        AddType application/x-httpd-php .php
        php_flag file_uploads           on
        # Some PHP tuning for deployment feature up to 8 MB
        # post_max_size must be greater than upload_max_filesize
        # because of HTTP headers
        php_value post_max_size         200m
        php_value upload_max_filesize   200m
        # You may have to uncomment following on errors
        #php_value max_execution_time -1
        #php_value max_input_time -1

        # Uncomment following if you need to specify a mysql socket
        #php_value mysql.default_socket "path/to/mysql/unix/socket"

        #!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
        php_flag magic_quotes_gpc      off
    
    # Duplicate for php7 compatibility
    
        AddType application/x-httpd-php .php
        php_flag file_uploads           on
        # Some PHP tuning for deployment feature up to 8 MB
        # post_max_size must be greater than upload_max_filesize
        # because of HTTP headers
        php_value post_max_size         200m
        php_value upload_max_filesize   200m
        # You may have to uncomment following on errors
        #php_value max_execution_time -1
        #php_value max_input_time -1

        # Uncomment following if you need to specify a mysql socket
        #php_value mysql.default_socket "path/to/mysql/unix/socket"

        #!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
        php_flag magic_quotes_gpc      off
    

Una vez hecha la instalación si accedemos al entrono nos encontraremos este mensaje

SECURITY ALERT!
Your install.php exists in your installation directory.
The default SQL login/password is set on your database: ocsweb

Vamos pues primero a quitar el archivo install.php

sudo mv /usr/share/ocsinventory-reports/ocsreports/install.php /usr/share/ocsinventory-reports/ocsreports/install.php_old

Solo nos queda ya resolver la advertencia de seguridad del usuario y password que deberemos modificar en el archivo z-ocsinventory-server.conf, en caso de no corregir este tema,los inventarios de los equipos no van a llegar al servidor.

SECURITY ALERT!
The default SQL login/password is set on your database: ocsweb

Editamos

sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

Modificamos:

# User allowed to connect to database
PerlSetEnv OCS_DB_USER ocsuser
# Password for user
PerlSetVar OCS_DB_PWD ocspassword

 

Reiniciamos apache y mysql

sudo service apache2 restart
sudo service mysql restart


 

Llegados a este punto ya hemos finalizado la parte de servidor y solo nos falta instalar la herramienta cliente en un equipo para ver si los inventarios llegan correctamente.

Podemos descargar el cliente para las distintas versiones de sistemas operativos des de la web de OCS

https://www.ocsinventory-ng.org/en

Seguimos la instalación cómo muestran las imagenes y si todo es correcto el equipo ya aparecerá en el inventario

Para una mayor comodidad y poder realizar las instalaciones de un modo desatendido, podemos preparar un fichero bat que nos ayude a aplicar el cliente a nuestros equipos Windows

Ejemplo de ocs.bat situado en la misma carpeta del instalador. Por alguna razón el instalador se tiene que ejecutar des de una unidad de red o local, no sirve una ruta de recurso compartido del estilo \\computer\xxxx

OCS-NG-Windows-Agent-Setup.exe /SERVER=http://192.168.1.50/ocsinventory /SSL=1 /CA=cacert.pem /NOW /S

Espero que este manual os pueda ayudar.

50 Replies to “Instalación y configuración de servidor OCS Inventory NG en Ubuntu 17.04”

  1. Hola Albert,

    Saludos desde Perú estuvo muy bueno este tutorial y gracias por compartir. 😀

  2. Vaig a intentar-ho, he d’administrar 50 màquines i em pot ser molt útil. Moltes gràcies.

  3. ¿Y como se haría una distribución de Software para hacer una instalación masiva a un aula de ordenadores?. Moltes gràcies.

    1. Buenas.

      Yo en tu caso lo haría mediante directivas de grupo, pueddes crear una directiva que conecte una unidad de red, ejecute el instalador en modo silencioso y vuelva a desconectar la unidad. Solo con iniciar los equipos les aplicaría el inventario a todos

      Saludos

  4. Cuando sigo tu tutorial,
    no consigo entrar en la url [ipservidor]\ocsreports una vez finalizado el proceso de sudo ./setup.sh
    Pone, You don’t have permission to access /ocsreports on this server.
    Qué me falta de permisos??
    Saludos.

  5. buenas tardes segui tu manual, pero no envia la informacion de los equipos al servidor, no tengo referencia de ningun error alguna idea del por que, el AGENT de windows si muestra la informacion del inventario.

    saludos

    1. Luis

      En el equipo cliente revisa el log

      %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos, eso es por que el PROLOG_FREQ por defecto está de 24 por lo que hay que esperar 24 horas para que el contador se actualice. Teniendo ya el equipo disponible en todos los equipos.

      Espero que con todo esto le sirva.

      Saludos

  6. A mi me ocurre lo mismo que dice Luis. El Agente lo instalo manualmente, le doy la url ip\ocsinventory, a pesar de que ip\ocsinventory no me muestra nada en el servidor, me responde ip\ocsreports
    En el inventario no me aparece mi equipo.

    1. En el equipo cliente revisa el log

      %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos, eso es por que el PROLOG_FREQ por defecto está de 24 por lo que hay que esperar 24 horas para que el contador se actualice. Teniendo ya el equipo disponible en todos los equipos.

      Espero que con todo esto le sirva.

      Saludos

  7. A mi me ocurre lo mismo que dicen los otros post. El Agente lo instalo manualmente, le doy la url ip\ocsinventory, . En el inventario no me aparece ningún equipo y en la carpeta del agente no hay ningún log.
    Por donde busco el error?

    1. Buenas.

      El log se situa en: %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      Acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos.

      Espero que con todo esto le sirva.

      Saludos

    2. yo lo realice con la distribución de ubuntu 16.04.02 , lo estaba trabajando con l a 18.04.01 y no me permite la comunicación del agente , lo resolví instalando ubuntu server 16.04.02

  8. Hola muchas gracias por el tutorial, pero como indican algunos compañeros. Se tiene ese problema, ahora usted indica que quiere ver el log.
    Lo que me sale en el log es esto:
    ==============================================================================
    Starting OCS Inventory NG Agent on Saturday, July 22, 2017 22:08:57.
    AGENT => Running OCS Inventory NG Agent Version 2.3.0.0
    AGENT => Using OCS Inventory NG FrameWork Version 2.3.0.0
    AGENT => Loading plug-in(s)
    DLL PLUGIN => Searching for Plug-in DLL(s) in folder
    DLL PLUGIN => 0 DLL Plug-in(s) successfully loaded on 0 DLL(s) found
    AGENT => Using network connection with Communication Server
    COM PROVIDER => Loading Communication Provider
    AGENT => Using Communication Provider Version
    AGENT => Writing configuration to file
    AGENT => Unloading communication provider
    AGENT => Unloading plug-in(s)
    AGENT => Execution duration: 00:00:00.

    ==============================================================================
    Starting OCS Inventory NG Agent on Saturday, July 22, 2017 22:08:58.
    AGENT => Running OCS Inventory NG Agent Version 2.3.0.0
    AGENT => Using OCS Inventory NG FrameWork Version 2.3.0.0
    AGENT => Loading plug-in(s)
    DLL PLUGIN => Searching for Plug-in DLL(s) in folder
    DLL PLUGIN => 0 DLL Plug-in(s) successfully loaded on 0 DLL(s) found
    AGENT => Using network connection with Communication Server
    COM PROVIDER => Loading Communication Provider
    AGENT => Using Communication Provider Version
    AGENT => Sending getLabel request
    COM SERVER => Initializing cURL library for getFile
    COM SERVER => Using cURL without server authentication
    COM SERVER => Disabling cURL proxy support
    COM SERVER => Enabling cURL SSL server validation support using CA Bundle
    COM SERVER => Sending fileGet request to URL
    COM SERVER => fileGet response received
    COM SERVER => Cleaning cURL library
    AGENT => Failed to retrieve Label
    AGENT => Sending Prolog
    DID_CHECK => Read DeviceID and MACs in file
    COM SERVER => Initializing cURL library for sendRequest
    COM SERVER => Using cURL without server authentication
    COM SERVER => Disabling cURL proxy support
    COM SERVER => Enabling cURL SSL server validation support using CA Bundle
    COM SERVER => Sending HTTP Post request to URL
    COM SERVER => HTTP Post response received
    COM SERVER => Cleaning cURL library
    ERROR *** AGENT => Failed to send Prolog
    AGENT => Unloading communication provider
    AGENT => Unloading plug-in(s)
    AGENT => Execution duration: 00:00:00.

    De antemano agradesco el apoyo de compartir informacion y la ayuda.
    Saludos

    1. Luis

      En el equipo cliente revisa el log

      %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos, eso es por que el PROLOG_FREQ por defecto está de 24 por lo que hay que esperar 24 horas para que el contador se actualice. Teniendo ya el equipo disponible en todos los equipos.

      Espero que con todo esto le sirva.

      Saludos

  9. El error que me sale es http 404 solo que en los anteriores no me adjuntaba, perdon por el SPAM y es viable borrar los post anteriores, muchas gracias.

    Starting OCS Inventory NG Agent on Wednesday, August 09, 2017 11:58:40.
    AGENT => Running OCS Inventory NG Agent Version 2.3.0.0
    AGENT => Using OCS Inventory NG FrameWork Version 2.3.0.0
    AGENT => Loading plug-in(s)
    AGENT => Using network connection with Communication Server
    AGENT => Using Communication Provider Version
    AGENT => Sending Prolog
    ERROR *** AGENT => Failed to send Prolog ——HTTP Status Code #404————
    AGENT => Unloading communication provider
    AGENT => Unloading plug-in(s)
    AGENT => Execution duration: 00:00:00.

    1. Buenas.

      Prueba con un navegador ir a la dirección http://LaIPdeTuServidor/ocsinventory te tiene que salir un error del tipo:

      Bad Request

      Your browser sent a request that this server could not understand.

      Comentame que es lo que te sale.

      Por lo contrario, revisa que error se produce en el log del servidor apache y me lo muestras.

      El log se encuentra en: /var/log/apache2/error.log

      Aquí puede que veamos que es lo que sucede.

      He seguido los pasos de la web al completo y me ha funcionado a la primera, no veo que se nos escapa. Tengan muy en cuenta los datos de conexión definidos en este fichero: /etc/apache2/sites-enabled/z-ocsinventory-server.conf

      Saludos

      1. Buena tarde,

        Te comento que hasta cuando estaba bien tenia 76 maquinas en el inventario, despues de que falló, es decir, desde el 02 de Agosto no se han agregado mas equipos al software, este es el mensaje que me sale despues de hacer http://miservidor/ocsinventory:

        *********
        Not Found

        The requested URL /ocsinventory was not found on this server.

        Apache/2.4.25 (Ubuntu) Server at 192.168.1.4 Port 80

        ***************

        Y este es el mensaje que me sale en /var/log/apache2/error.log

        [Thu Aug 24 06:25:05.723476 2017] [mpm_prefork:notice] [pid 1999] AH00163: Apache/2.4.25 (Ubuntu) configured — resuming normal operations
        [Thu Aug 24 06:25:05.723631 2017] [core:notice] [pid 1999] AH00094: Command line: ‘/usr/sbin/apache2’
        [Thu Aug 24 14:42:05.704197 2017] [mpm_prefork:notice] [pid 1999] AH00169: caught SIGTERM, shutting down
        [Thu Aug 24 14:42:06.483411 2017] [mpm_prefork:notice] [pid 23143] AH00163: Apache/2.4.25 (Ubuntu) configured — resuming normal operations
        [Thu Aug 24 14:42:06.483720 2017] [core:notice] [pid 23143] AH00094: Command line: ‘/usr/sbin/apache2’
        [Thu Aug 24 14:49:17.993730 2017] [mpm_prefork:notice] [pid 23143] AH00169: caught SIGTERM, shutting down
        [Thu Aug 24 14:49:18.204813 2017] [mpm_prefork:notice] [pid 23310] AH00163: Apache/2.4.25 (Ubuntu) configured — resuming normal operations
        [Thu Aug 24 14:49:18.204994 2017] [core:notice] [pid 23310] AH00094: Command line: ‘/usr/sbin/apache2’
        [Thu Aug 24 15:35:31.233145 2017] [mpm_prefork:notice] [pid 23310] AH00169: caught SIGTERM, shutting down
        [Thu Aug 24 15:35:31.605476 2017] [mpm_prefork:notice] [pid 23510] AH00163: Apache/2.4.25 (Ubuntu) configured — resuming normal operations
        [Thu Aug 24 15:35:31.605786 2017] [core:notice] [pid 23510] AH00094: Command line: ‘/usr/sbin/apache2’
        [Thu Aug 24 15:37:29.451515 2017] [mpm_prefork:notice] [pid 23510] AH00169: caught SIGTERM, shutting down
        [Thu Aug 24 15:39:30.107180 2017] [mpm_prefork:notice] [pid 1996] AH00163: Apache/2.4.25 (Ubuntu) configured — resuming normal operations
        [Thu Aug 24 15:39:30.362034 2017] [core:notice] [pid 1996] AH00094: Command line: ‘/usr/sbin/apache2’

        Agradezco tu respuesta.

        1. Comprueba el link simbólico

          ls -l /etc/apache2/sites-enabled/

          Tendriaas que ver mínimo algo cómo:

          ocsinventory-reports.conf -> /etc/apache2/sites-available/ocsinventory-reports.conf
          z-ocsinventory-server.conf -> /etc/apache2/sites-available/z-ocsinventory-server.conf

          Si los tienes edit el fichero ocsinventory-reports.conf y revisa que se apunte a la carpeta correcta, normalmente a:

          /usr/share/ocsinventory-reports/ocsreports

          Y que el usuario/grupo www-data: tiene acceso a ella.

          ls -l /usr/share/ocsinventory-reports/

          Tendira que mostrar algo similar a:

          drwxr-xr-x 14 www-data www-data 4096 jun 23 12:04 ocsreports

          Saludos y espero que puedas resolver

          1. Buen día,

            Creo que estamos ya por solucionar, de verdad agradezco mucho la atencion que prestas a estas peticiones:

            Cuando envio el comando ls -l /etc/apache2/sites-enabled/:

            lrwxrwxrwx 1 root root 35 Aug 25 13:50 000-default.conf -> ../sites-available/000-default.conf
            lrwxrwxrwx 1 root root 53 Aug 25 16:41 ocsinventory-reports.conf -> /etc/apache2/conf-available/ocsinventory-reports.conf
            lrwxrwxrwx 1 root root 54 Aug 25 16:41 z-ocsinventory-server.conf -> /etc/apache2/conf-available/z-ocsinventory-server.conf

            Cuando envío ls -l /etc/apache2/sites-enabled/ me aparece lo siguiente

            Alias /ocsreports /usr/share/ocsinventory-reports/ocsreports y todas las demas configuraciones pero te especifico lo solicitado

            Para el comando ls -l /usr/share/ocsinventory-reports/ recibo:

            drwxr-xr-x 14 www-data www-data 4096 Jun 24 08:37 ocsreports

            Por ultimo verifique de nuevo el log cuando envio desde mi equipo y sale lo siguiente:

            Starting OCS Inventory NG Agent on Friday, August 25, 2017 17:35:01.
            AGENT => Running OCS Inventory NG Agent Version 2.3.0.0
            AGENT => Using OCS Inventory NG FrameWork Version 2.3.0.0
            AGENT => Loading plug-in(s)
            DLL PLUGIN => Searching for Plug-in DLL(s) in folder
            DLL PLUGIN => 0 DLL Plug-in(s) successfully loaded on 0 DLL(s) found
            AGENT => Using network connection with Communication Server
            COM PROVIDER => Loading Communication Provider
            AGENT => Using Communication Provider Version
            AGENT => Sending Prolog
            DID_CHECK => Read DeviceID and MACs in file
            COM SERVER => Initializing cURL library for sendRequest
            COM SERVER => Using cURL without server authentication
            COM SERVER => Disabling cURL proxy support
            COM SERVER => Enabling cURL SSL server validation support using CA Bundle
            COM SERVER => Sending HTTP Post request to URL
            COM SERVER => HTTP Post response received
            COM SERVER => Cleaning cURL library
            ERROR *** AGENT => Failed to send Prolog
            AGENT => Unloading communication provider
            AGENT => Unloading plug-in(s)
            AGENT => Execution duration: 00:00:00.

  10. ¿Qué debo hacer para capturar datos de hosts remotos? ¿Qué puertos debo cambiar / abrir y cómo?

    1. Buenas.

      La comunicación es por los puertos http o https que tu hayas configurado en tu apache, si no has cambiado nada, por defecto el servidor escucha por el 80 http o 443 https. Los equipos cliente solo tienen que poder navegar por esos dos puertos (Lo más común)

      Saludos

      1. Podría escuchar por otros puertos? Además de el 80 y el 443. Y tener varias bases de datos diferente en cada uno de esos puertos e inventariar los datos del agente eligiendo un puerto u otro?

  11. Saludos.

    Antes que nada mil gracias por tu tutorial, solo tengo una duda, el proceso no incluye la instalación de plugins, puesto que al intentar copiarlo, me indica :

    Please install the following modules in order to get this feature working :
    – ZipArchive
    Plugin Install
    You can’t install plugins, check error messages above.

    He descargado desde la página oficial de ocs reports el plugin security-master.zip, lo he copiado a la ruta /usr/share/ocsinventory-reports/ocsreports/download y el mensaje persiste, desconozco si sea algún permiso o asignación de usuario, lo he realizado como root a partir de sudo -i.

    ¿Cómo instalo un plugin, por ejemplo el de officekey?

    Muchísimas gracias desde Puebla, México.

  12. Thank you so much for the manual you have uploaded, it did worked with no errors. i need help on the plugins

  13. Hola. Muchas gracias por tu tutorial y agradezco también el tiempo que nos das en responder los comentarios.

    Tengo un problemita, necesito que la página de ocsreports únicamente se pueda acceder vía HTTPS y no he logrado encontrar documentación que me oriente al respecto ¿Me puedes ayudar?

    Gracias de antemano por tu respuesta.

  14. Hola albert
    muy bueno tu tutorial pero no puedo ingresar a sistema me presenta este error:

    You don’t have permission to access /ocsreports/ on this server.

    tenes idea de cual puede ser el problema ??
    Gracias

  15. Hola, acabo de instalar el agente en windows xp y no me figura el equipo en el inventario, trato de buscar el log %programdata%\OCS Inventory NG\Agent\OCSInventory.log y no encuentro esa ruta ni el log

  16. Hola sigo tu tutorial y todo bien, instalo el agente siguiendo todos los pasos pero no se escribe el reporte en el servidor, no me da ningun error, no se donde esta el problema

    1. Entra en el archivo de configuración de Apache y repasa las líneas de usuario, contraseña y base de datos. Tienen que coincidir con las que definiste anteriormente,
      La ruta es: /etc/apache2/conf-available/z-ocsinventory-server.conf

  17. Buenas Albert, estoy intentando instalar plugins en OCS trabajando desde Ubuntu. Descargo el security.zip y lo ubico en el directorio /usr/share/ocsiventory-reports/ocsreports/download, reinicio Apache y en la consola de administración en plugins manager me sigue apareciendo el mensaje “Please install the following modules in order to get this feature working :
    – ZipArchive”
    Lo he intentado con varios Ubuntu y nada, siempre lo mismo.
    Espero tu respuesta.
    Un saludo

  18. Hola Albert, quería agradecerte por el tutorial y el video. Me funcionó perfecto!.
    Quisiera consultarte dos cosas:
    1 – Si me podes dar una mano para agregar a mi OCS Inventory con usuarios de LDAP.
    2- Cuando realizo un cambio en una pc, el ocs inventory me toma el cambio perfecto, pero el plugin de glpi no lo modifica hasta que no hago una sincronización de forma manual.
    Desde ya espero tus comentarios.

    Buenisimo el tutorial.
    Muchisimas gracias
    Javier

  19. buenas tardes, muchas gracias por el video esta excelente.
    tengo un inconveniete al momento de crear campos personalizados, es epsecial los de tipo (file), para adjuntar archivos a un inventario, al momento de cargar el campo nuevo aparece “btn” y no el campo de examinar para adjuntar.

  20. Buenas, muy buen tutorial Desgraciadamente me encuentro con un error en el momento de la instalación del OCS. Cuando hace el Checking for REST API Dependencies me da error por falta de instalación del módulo Mojolicious::Lite. Por defecto sale marcada la opción de No continuar y se cancela la instalación y si marco la opción de Si continuar da otro tipo de problemas. En el cuadro que adjuntas no aparece nada relacionado en referencia a las API. Si es verdad que la versión de OCS que estoy mirando de instalar es la 2.4. ¿Sabrías por que puede suceder esto o cual es el requisito para instalarlo?

    1. Cada modulo que te falte ejecuta:

      sudo cpan -i nombre_modulo

      ex: sudo cpan -i Mojolicious::Lite

      y vuelve a ejecutar el setup.sh (si te falla otro, lo mismo y otra vez setup.sh, fallan unos cuantos)

  21. Gracias por el aporte, muy bueno…
    Estoy probando para llevar el inventario de un instituto, he hecho todos los pasos y funcionaba correctamente (he instalado todos los modulos, el setup.sh lo ejecuta sin ningun error ni falta ningun modulo) Conecto a la web localhost/ocsreports/, me aparece la pantalla de mysql, pongo los paràmetros (ocsuser, ocspassword, ocsweb, localhost) me los acepta, me dice que todo bien y que pulse para acceder a ocsinventory ng gui, y en cuanto le doy me sale error web “La página 192.168.0.248 no puede procesar esta solicitud ahora.
    HTTP ERROR 500 ”
    Luego he ido haciendo los cambios de ficheros de configuracion , reparado todos los errores de usuario, password, etc de configuracion, el max_size, etc tal como dices pero el mensaje de la web no cambia.

    Vuelvo a ejecutar el setup.sh, vuelve a cargar la web de mysql, pongo datos usuario,… y otra vez La página 192.168.0.248 no puede procesar esta solicitud ahora.
    HTTP ERROR 500.

    Alguna idea?
    Muchas gracias por tu tiempo

  22. Hola,

    Muchas gracias por compartir este tutorial es bastate estrucuturado y facil de seguir.

  23. Hola Albert,

    segui tu manual perfectamente realizado,

    pero la advertencia de ocs no se quiza a pesar de que actualice

    SECURITY ALERT!
    The default sql login/password is activate on your database: ocsweb

    he actualizado estos dos archivos
    nano /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php
    nano /etc/apache2/conf.d/z-ocsinventory-server.conf

    colocando el mismo usuario y contraseña reinicio apache y mysql y nada reinicie el servidor y nada q faltara??

    1. era cambiar la contraseña del usuario admin, ya no aparece el mensaje, pero no me actualizan los equipos

      COM SERVER => Cleaning cURL library
      ERROR *** AGENT => Failed to send Prolog
      AGENT => Unloading communication provider
      AGENT => Unloading plug-in(s)
      AGENT => Execution duration: 00:00:00.

  24. hola,

    ya hice todo tal cual pero intento ingresar con admin admin y no ingresa me dice usuario no registrado.

    que puedo hacer?

  25. he instalado todo segun el manual pero no envia la informacion al servidor y los agentes estan bien instalados

  26. HOla tengo una inquietud, tengo funcionando el ocs y glpi, pero por algunas razones el servidor de ocs tuvo que ser reinstalado por lo que su direccion ip cambio. Y tengo corriendo el agente de ocs que se ejecuta como servicio ahora que el ip cambio tengo que ir pc por pc para arreglar lo del ip??? o existe alguna forma para solucionar esto??? de ante manos gracias

  27. Hola si tengo ocsinventory en centos 8, y realice la configuración de una ip fija desde interfaz gráfica en la tarjeta de red directo ¿es lo mismo que realizarlo en línea de comando?

    Y la otra consulta el instalador.bat si lo dejo de manera local ¿se puede dejar como carpeta oculta para que no lo eliminen?, en caso de red se debe dejar en la misma carpeta donde se encuentra instalado el ocsinventory en este caso centos 8 o se crea una carpeta en la red y ahí se deja el archivo con todos sus archivos de instalación?

  28. El agente de windows envía el inventario sin problema, pero el agente para dispositivos android, manda error

    http communication error code 500

    Saben como se resuelve?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.