Difference between revisions of "Pandora: Documentation es: Inventario"

From Pandora FMS Wiki
Jump to: navigation, search
(Edición de un módulo de inventario asignado)
(37 intermediate revisions by 5 users not shown)
Line 5: Line 5:
 
== Introducción ==
 
== Introducción ==
  
La versión Enterprise de Pandora FMS permite mantener un inventario de los dispositivos monitorizados por Pandora FMS. Con dicho inventario es posible mantener un listado con la CPU, tarjetas, Memoria RAM, parches, software, etc de los servidores de la compañía.
+
La versión Enterprise de Pandora FMS permite mantener un inventario de los dispositivos monitorizados por Pandora FMS. Con dicho inventario es posible mantener un listado con la CPU, tarjetas, Memoria RAM, parches, software, etc. de los servidores de la compañía.
  
El inventario es independiente de la monitorización y puede ser obtenido de forma local ( a través de los agentes de Pandora FMS) o de forma remota.
+
El inventario es independiente de la monitorización y puede ser obtenido de forma local (a través de los agentes software de Pandora FMS) o de forma remota.
  
 
== Recogida de datos para el inventario ==
 
== Recogida de datos para el inventario ==
  
La recogida de los datos para el inventario de los sistemas se realiza de dos maneras de forma remota mediante módulos de inventario, a través de scripts integrados en Pandora FMS que ejecutan queries WMI, o scripts ejecutados a través de SSH con Expect o métodos similares.
+
La recogida de los datos para el inventario de los sistemas se realiza de dos maneras:
  
Cuando la recogida de datos es local, con el agente de Pandora FMS, se realiza mediante plugins en el agente.
+
De forma remota, mediante módulos de inventario, a través de scripts integrados en Pandora FMS que ejecutan queries WMI, o scripts ejecutados a través de SSH con Expect o métodos similares.
 +
 
 +
De forma local, con el agente software de Pandora FMS, mediante plugins en el agente.
  
 
=== Módulos de inventario ===
 
=== Módulos de inventario ===
  
Los módulos de inventario son módulos remotos que ejecutar un comando contra una máquina remota, dichos módulos funcionan de forma similar a un plugin. Los mismos módulos se pueden definir como "locales" cuando obtienen los datos a través de un agente.
+
Los módulos de inventario son módulos remotos que ejecutan un comando contra una máquina remota; dichos módulos funcionan de forma similar a un plugin. Los mismos módulos se pueden definir como "locales" cuando obtienen los datos a través de un agente.
 +
 
 +
En los parámetros de Usuario y Contraseña se pueden usar las siguientes macros:
 +
* '''_agentcustomfield_n_:''' Campo personalizado número n del agente
  
 
=== Inventario remoto ===
 
=== Inventario remoto ===
Line 23: Line 28:
 
==== Creación de módulos remotos ====
 
==== Creación de módulos remotos ====
  
La creación por parte del administrador de un modulo de inventario remoto no es habitual, estos vienen "precargados" ya con Pandora FMS Enterprise. No obstante Pandora FMS le permite construir sus propios módulos de inventario o modificar los que ya existe por medio del editor de módulos de inventario.
+
La creación por parte del administrador de un módulo de inventario remoto no es habitual; estos vienen "precargados" ya con Pandora FMS Enterprise. No obstante, Pandora FMS le permite construir sus propios módulos de inventario o modificar los que ya existen por medio del editor de módulos de inventario.
  
Para crear un módulo remoto se va a ''Configuration > Inventory Modules'' donde aparecen todos los módulos de inventario que se han creado.
+
Para crear un módulo remoto se debe ir a ''Configuration > Inventory Modules'' donde aparecen todos los módulos de inventario que se han creado.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in1.png]]
 
[[image:in1.png]]
 
</center>
 
</center>
<br><br>
+
<br>
  
Para Crear un módulo nuevo se pulsa en “Create”.
+
Para crear un módulo nuevo se pulsa en “Create”.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in2.png|800px]]
 
[[image:in2.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
 
 
A continuación se describen los campos que hay:
 
 
 
'''Name'''
 
 
 
Campo donde se pone el nombre del Módulo
 
 
 
'''Description'''
 
 
 
Campo donde se pone la descripción del Módulo
 
 
 
'''OS'''
 
 
 
Combo donde ese elige el Sistema Operativo para el que se crea el módulo.
 
  
'''Interpreter'''
+
'''Name:''' Define el nombre del Módulo.
  
Campo donde se pone el interprete de comandos que se usa en el módulo. Puede ser Shellscript, Perl u otro intérprete válido para el servidor de inventario que se ejecuta sobre un sistema Linux.
+
'''Description:''' Escribe la descripción del Módulo.
  
'''Format'''
+
'''OS:''' Elige el Sistema Operativo para el que se crea el módulo.
  
Campo donde se ponen los campos separados por ; que devolverá el módulo.  
+
'''Interpreter:''' Campo donde se pone el intérprete de comandos que se usa en el módulo. Puede ser Shell Script, Perl u otro intérprete válido para el servidor de inventario que se ejecuta sobre un sistema Linux.
  
'''Code'''
+
'''Format:''' Escribe los campos separados por ; que devolverá el módulo.
  
Código del módulo, generalmente es código Perl o ShellScript. Si fuera código binario necesitaría un procedimiento de carga diferente que ha de ser introducido mediante scripts auxiliares.
+
'''Code:''' Código del módulo; generalmente es código Perl o Shell Script. Si fuera código binario necesitaría un procedimiento de carga diferente que ha de ser introducido mediante scripts auxiliares.
  
{{Warning|Es muy importante elegir bien el sistema operativo porque al añadir módulos de inventario en un agente sólo aparecerán aquellos módulos en los que coincide el sistema operativo del módulo con el sistema operativo del agente}}  
+
{{Warning|Es muy importante elegir bien el sistema operativo, porque al añadir módulos de inventario en un agente solo aparecerán aquellos módulos en los que coincide el sistema operativo del módulo con el sistema operativo del agente.}}  
  
 
Una vez se ha creado el módulo se pulsa en “Create”.
 
Una vez se ha creado el módulo se pulsa en “Create”.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in3.png|800px]]
 
[[image:in3.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
 
==== Edición de módulos remotos ====
 
==== Edición de módulos remotos ====
  
Para editar un módulo remoto se va a ''Configuration > Inventory Modules'' donde aparecen todos los módulos de inventario que se han creado. Se pulsa sobre el módulo que se quiere editar o sobre el icono de la llave de la columna Action
+
Para editar un módulo remoto se debe ir a ''Configuration > Inventory Modules'' donde aparecen todos los módulos de inventario que se han creado. Se pulsa sobre el módulo que se quiere editar o sobre el icono de la llave de la columna Action.
<br><br>
+
 
 
<center>
 
<center>
 
[[image:in4.png|800px]]
 
[[image:in4.png|800px]]
 
</center>
 
</center>
<br><br>
 
  
 
Aparece de nuevo la página de creación de módulo.
 
Aparece de nuevo la página de creación de módulo.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in5.png|799px]]
 
[[image:in5.png|799px]]
 
</center>
 
</center>
<br><br>
 
  
Se modifican los campos deseados y se pulsa en el botón “Update”
+
Se modifican los campos deseados y se pulsa en el botón “Update”.
  
 
==== Eliminación de módulos remotos ====
 
==== Eliminación de módulos remotos ====
  
Para borrar un módulo remoto se va a ''Configuration > Inventory Modules'' donde aparecen todos los módulos de inventario que se han creado. Se pulsa en el icono de la papelera de la columna action del módulo que se quiere borrar.
+
Para borrar un módulo remoto se debe ir a ''Configuration > Inventory Modules'' donde aparecen todos los módulos de inventario que se han creado. Se pulsa en el icono de la papelera de la columna action del módulo que se quiere borrar.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in6.png|800px]]
 
[[image:in6.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
 
==== Asignar módulos remotos ====
 
==== Asignar módulos remotos ====
  
La asignación de módulos de Inventario se realiza en el propio agente en la pestaña de administración del Agente.
+
La asignación de módulos de Inventario se realiza en el propio agente, en la pestaña de administración del Agente.
  
 
Se pulsa sobre la pestaña Inventory.
 
Se pulsa sobre la pestaña Inventory.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in8.png|801px]]
 
[[image:in8.png|801px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
Aparece la pagina donde se pueden añadir los módulos de Inventario.
+
Aparece la página donde se pueden añadir los módulos de Inventario.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in9.png|800px]]
 
[[image:in9.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
A continuación se describen los campos que hay que completar para añadir un módulo de inventario.
+
A continuación, se describen los campos que hay que completar para añadir un módulo de inventario.
  
* '''Module''': Combo donde se elige el módulo de inventario que se quiere añadir. Sólo aparecerán los módulos cuyo Sistema Operativo coincide con el del agente.
+
* '''Module''': Elige el módulo de inventario que se quiere añadir. Solo aparecerán los módulos cuyo Sistema Operativo coincide con el del agente.
 
* '''Target''': IP o nombre del servidor del que se quiere sacar el inventario.
 
* '''Target''': IP o nombre del servidor del que se quiere sacar el inventario.
* '''Interval''': Combo donde se elige el intervalo de tiempo en que se ejecutará el módulo de inventario.  
+
* '''Interval''': Elige el intervalo de tiempo en que se ejecutará el módulo de inventario.  
* '''Username''': Usuario que se usara para ejecutar el módulo de inventario.
+
* '''Username''': Usuario que se utilizará para ejecutar el módulo de inventario.
* '''Password''': Password del usuario que se usara para ejecutar el módulo de inventario.
+
* '''Password''': Password del usuario que se utilizará para ejecutar el módulo de inventario.
  
Una vez completado el formulario se pulsa en “Add” para que el módulo se añada a los módulos de inventario.
+
Una vez completado el formulario se pulsa en “Add”. El módulo se añadirá a los módulos de inventario.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in10.png|800px]]
 
[[image:in10.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
 +
 
 +
A partir de la versión v7.0NG.724, es posible definir campos en lugar de los de usuario y contraseña que existen normalmente. Para ello, es necesario activar el siguiente checkbox:
 +
 
 +
<center>
 +
[[File:Custom_fields_checkbox.png]]
 +
</center>
 +
 
 +
Tras hacer esto, aparecerá un control para agregar campos nuevos:
 +
 
 +
<center>
 +
[[File:Inventory_module_new_custom_field.png]]
 +
</center>
 +
 
 +
En este control habrá que introducir el nombre deseado antes de añadirlo. Si indicamos que el campo va a contener una contraseña, el valor se guardará en base de datos de forma ofuscada.
 +
 
 +
Tras crear los campos, podremos darles un valor y añadir finalmente el módulo. Estos campos serán aplicados en orden de creación en la ejecución del script de inventario remoto.
 +
 
 +
<center>
 +
[[File:Inventory module with custom fields.png]]
 +
</center>
 +
<br>
  
 
==== Edición de un módulo de inventario remoto asignado ====
 
==== Edición de un módulo de inventario remoto asignado ====
  
Es posible editar los módulos de inventario, esta edición se realiza en la misma pagina donde se crean.
+
Es posible editar los módulos de inventario; esta edición se realiza en la misma página donde se crean.
  
 
Para editar un módulo de inventario se pulsa en el nombre del módulo o en el icono llave que se ve en la imagen.
 
Para editar un módulo de inventario se pulsa en el nombre del módulo o en el icono llave que se ve en la imagen.
  
<br><br>
 
 
<center>
 
<center>
[[image:in20.png|800px]]
+
[[image:in20.png|799px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
==== Eliminación de un módulo de inventario asignado ====
+
==== Eliminación de un módulo de inventario remoto asignado ====
  
Es posible borrar los módulos se inventario, el borrado se realiza en la misma pagina donde se crean.
+
Es posible borrar los módulos de inventario; el borrado se realiza en la misma página donde se crean.
  
 
Para borrar un módulo de inventario se pulsa en el icono papelera que hay en la columna Action del módulo.
 
Para borrar un módulo de inventario se pulsa en el icono papelera que hay en la columna Action del módulo.
  
==== Ejemplo completo del proceso de creacion de un modulo remoto de inventario ====
+
==== Ejemplo completo del proceso de creación de un módulo remoto de inventario ====
  
Supongamos que necesitamos sacar la lista de direcciones fisicas de un adaptador de un servidor, en este caso de un servidor Unix. Este comando se saca generalmente via el comando "arp -a -n", que si lo ejecutamos en el servidor nos da algo parecido a esto:
+
Supongamos que necesitamos sacar la lista de direcciones físicas de un adaptador de un servidor, en este caso de un servidor Unix. Esta información se obtiene generalmente con el uso del comando "arp -a -n", que si lo ejecutamos en el servidor nos da algo parecido a esto:
  
 
  [email protected]:~$ arp -a -n
 
  [email protected]:~$ arp -a -n
Line 179: Line 180:
 
  arp -a -n | sort | grep -v incomplete | awk '{ print $2,$4,$7 }'
 
  arp -a -n | sort | grep -v incomplete | awk '{ print $2,$4,$7 }'
  
Ya tenemos prácticamente lo necesario para "importar" esta informacion en el servidor de Inventario Remoto de Pandora. Para ello usaremos de base el modulo de inventario remoto "CPU" y lo modificaremos ligeramente. Este script se conecta via SSH con el servidor destino, y le ejecuta el comando. La salida del comando, debe devolver cada campo separado por el carácter ";"
+
Ya tenemos prácticamente lo necesario para "importar" esta información en el servidor de Inventario Remoto de Pandora FMS. Para ello, usaremos de base el módulo de inventario remoto "CPU" y lo modificaremos ligeramente. Este script se conecta vía SSH con el servidor destino, y le ejecuta el comando. La salida del comando debe devolver cada campo separado por el carácter ";"
  
Llegado a este punto, necesita tener conocimientos programción para desarrollar o modificar los scripts. Los scripts de inventario remoto si bien no son complejos, necesita algo de conocimiento de perl, shellscript u otro lenguage interpretado: tambien los podría hacer en java, c++, e invocar su ejecución desde el modulo, siempre y cuando devuelva los valores de cada campo definido separados por ";" y un salto de linea para cada dato.
+
Llegados a este punto, necesita tener conocimientos de programación para desarrollar o modificar los scripts. Los scripts de inventario remoto, si bien no son complejos, necesitan algo de conocimiento de perl, shellscript u otro lenguaje interpretado; también los podría hacer en Java, C++, e invocar su ejecución desde el módulo, siempre y cuando devuelva los valores de cada campo definido separados por ";" y un salto de línea para cada dato.
  
 
<pre>
 
<pre>
Line 239: Line 240:
 
</pre>
 
</pre>
  
Para que la conexion SSH funcione de forma automática, debe copiar la llave publica del usuario "root" del servidor de pandora en el servidor de destino. Imagine que va a ejecutar este comando en 192.168.50.10, realice estos pasos:
+
Para que la conexión SSH funcione de forma automática, debe copiar la llave publica del usuario "root" del servidor de Pandora FMS en el servidor de destino. Imagine que va a ejecutar este comando en 192.168.50.10, realice estos pasos:
  
1. Cree la llave en el servidor de pandora como root.
+
1. Cree la llave en el servidor de Pandora FMS como root.
 
    
 
    
 
  ssh-keygen
 
  ssh-keygen
  
2. Utilice el comando ssh-copy-id para copiar la llave publica el el servidor de destino (192.168.50.10) con el usuario de destino (en este caso el usuario artica):
+
2. Utilice el comando ssh-copy-id para copiar la llave pública el servidor de destino (192.168.50.10) con el usuario de destino (en este caso el usuario artica):
  
 
  ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
 
  ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
  
(Tendra que meter una vez la password del usuario "artica" en 192.168.50.10 para instalar la llave publica en el servidor destino)
+
(Tendrá que meter una vez la password del usuario "artica" en 192.168.50.10 para instalar la llave pública en el servidor destino).
  
3. Pruebe a conectar, debería conectar sin que le pregunte la password:
+
3. Pruebe a conectar; debería conectar sin que le pregunte la password:
  
  
  
4. Si ha llegado hasta aqui, el mismo proceso será el que siga el modulo de inventario, asi que pruebe a ejecutarlo desde línea de comando, grabando el script anterior a disco (temporal.pl) y ejecutandolo con la IP y el usuario como parametro:
+
4. Si ha llegado hasta aquí, el mismo proceso será el que siga el módulo de inventario, así que pruebe a ejecutarlo desde línea de comando, grabando el script anterior a disco (temporal.pl) y ejecutándolo con la IP y el usuario como parámetro:
  
 
  perl temporal.pl 192.168.50.10 artica
 
  perl temporal.pl 192.168.50.10 artica
Line 261: Line 262:
 
  (192.168.50.3);08:00:27:98:f8:48;eth0
 
  (192.168.50.3);08:00:27:98:f8:48;eth0
  
Fíjese en que el script llama remotamente a ''/usr/sbin/arp''. El comando debe estar en ese path, sino cambie el script. También puede advertir que llamamos a nuestro script con el comando "perl", que usualmente esta en /usr/bin/perl. Esto es lo que debe configurar a la hora de definir el modulo, como puede ver a continuación:
+
Fíjese en que el script llama remotamente a ''/usr/sbin/arp''. El comando debe estar en ese path; si no, cambie el script. También puede advertir que llamamos a nuestro script con el comando "perl", que usualmente está en /usr/bin/perl. Esto es lo que debe configurar a la hora de definir el módulo, como puede ver a continuación:
  
 
<br><br>
 
<br><br>
Line 269: Line 270:
 
<br><br>
 
<br><br>
  
A la hora de aplicarlo a un agente, fijese que el SO coincide. Si tiene diferentes sistemas operativos, deberá crear un modulo diferente para cada uno de ellos, porque el mismo código no funcionara.
+
A la hora de aplicarlo a un agente, fíjese que el S.O. coincide. Si tiene diferentes sistemas operativos, deberá crear un módulo diferente para cada uno de ellos, porque el mismo código no funcionará.
  
 
<br><br>
 
<br><br>
Line 277: Line 278:
 
<br><br>
 
<br><br>
  
Una vez ejecutado este modulo, deja una visualización similar a la siguiente:
+
Una vez ejecutado este módulo, desde de la consola podemos acceder a una visualización similar a la siguiente:
  
 
<br><br>
 
<br><br>
Line 287: Line 288:
 
=== Inventario local, a través de los agentes software ===
 
=== Inventario local, a través de los agentes software ===
  
Mediante los agentes software es posible obtener los datos de inventario de una máquina. Bastara con aplicar los módulos de inventario correspondiente en la configuración del agente software. Al igual que en los módulos remotos también es necesario añadir estos módulos como módulo de inventario en Configuration > Inventory modules.
+
Mediante los agentes software es posible obtener los datos de inventario de una máquina. Bastará con aplicar los módulos de inventario correspondiente en la configuración del agente software. Al igual que en los módulos remotos, también es necesario añadir estos módulos como módulo de inventario en Configuration > Inventory modules.
  
 
==== Creación de módulos locales ====
 
==== Creación de módulos locales ====
  
Para crear un módulo local se va a ''Configuration > Inventory modules'' donde aparecen todos los módulos de inventario que se han creado. Se deben crear todos los módulos que haya definidos en el Agente, tambien debe coincidir el SO asignado al agente en la consola con el del módulo creado.
+
Para crear un módulo local se va a ''Configuration > Inventory modules'' donde aparecen todos los módulos de inventario que se han creado. Se deben crear aquí todos los módulos que se definirán en la configuración del Agente; también debe coincidir el S.O. asignado al agente en la consola con el del módulo creado.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in22.png|800px]]
 
[[image:in22.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
Para Crear un módulo nuevo se pulsa en “Create”.
+
Para crear un módulo nuevo se pulsa en “Create”.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in23.png|800px]]
 
[[image:in23.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
Para los módulos locales no es necesario completar todos los campos. A continuación se describen los campos que hay que completar:
+
Para los módulos locales no es necesario completar todos los campos.
* '''Name''':Campo donde se pone el nombre del Módulo
+
* '''Name'': Escribe el nombre del módulo.
* '''Description''': Campo donde se pone la descripción del módulo
+
* '''Description''': Escribe la descripción del módulo.
* '''OS''': Combo donde ese elige el Sistema Operativo para el que se crea el módulo. Para los módulo locale se debe elegir la opción “Agent”.
+
* '''OS''': Elige el Sistema Operativo para el que se crea el módulo.
* '''Format''': Campo donde se ponen los campos separados por ; que devolverá el módulo.
+
* '''Format''': Escribe los campos separados por ; que devolverá el módulo.
  
 
Una vez se ha creado el módulo se pulsa en “Create”.  
 
Una vez se ha creado el módulo se pulsa en “Create”.  
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in24.png|801px]]
 
[[image:in24.png|801px]]
 
</center>
 
</center>
<br><br>
+
<br>
 
 
  
 
====Configuración de inventario local para agentes software====
 
====Configuración de inventario local para agentes software====
Line 328: Line 325:
 
'''1.''' Desplegar la colección de scripts (descargar de la librería de Pandora FMS http://pandorafms.com/Library/Library/) a través de colecciones.
 
'''1.''' Desplegar la colección de scripts (descargar de la librería de Pandora FMS http://pandorafms.com/Library/Library/) a través de colecciones.
  
'''nota:'''  A partir de la versión 7 estos plugins vienen por defecto con la instalación del agente, aunque vienen comentados en el archivo de configuración.
+
{{Tip|A partir de la versión 7, estos plugins vienen por defecto con la instalación del agente, aunque vienen comentados en el archivo de configuración.}}
  
 
'''2.''' Configurar la ejecución programada de scripts de inventario local en el archivo ''pandora_agent.conf'', agregando la siguiente información al final:
 
'''2.''' Configurar la ejecución programada de scripts de inventario local en el archivo ''pandora_agent.conf'', agregando la siguiente información al final:
  
'''nota:''' A partir de la versión 7 no hay necesidad de añadir solo hay que descontentar los plugins ya existentes.
+
{{Tip|A partir de la versión 7 no hay necesidad de añadir; solo hay que descomentar los plugins ya existentes en el fichero de configuración del agente.}}
  
 
<pre>
 
<pre>
Line 406: Line 403:
 
====Módulo de Inventario en sistemas Unix mediante agente software. ====
 
====Módulo de Inventario en sistemas Unix mediante agente software. ====
  
El módulo del agente software de Unix usa, de forma local, un plugin para recoger información sobre diferentes aspectos de la máquina, tanto de Software como de Hardware.  
+
El módulo del agente software de Unix usa, de forma local, un plugin para recoger información sobre diferentes aspectos de la máquina, tanto de software como de hardware.  
  
 
La sintaxis del módulo es la siguiente:
 
La sintaxis del módulo es la siguiente:
Line 416: Line 413:
 
El módulo se compone de una línea con los siguientes parámetros:  
 
El módulo se compone de una línea con los siguientes parámetros:  
  
* Activación del módulo
+
* Activation del modulo
  
 
  " '''''module_plugin inventory''''' " 1 cpu ram video nic hd cdrom software init_services filesystem users route
 
  " '''''module_plugin inventory''''' " 1 cpu ram video nic hd cdrom software init_services filesystem users route
Line 429: Line 426:
  
 
Al igual que en el agente Windows, es posible recoger los siguientes objetos:
 
Al igual que en el agente Windows, es posible recoger los siguientes objetos:
* ''CPU'': recoge información sobre las CPUs
+
* ''CPU:'' recoge información sobre las CPUs.
* ''ram'': recoge información sobre los módulos de RAM.
+
* ''ram:'' recoge información sobre los módulos de RAM.
* ''video'': recoge información sobre las tarjetas de Video.
+
* ''video:'' recoge información sobre las tarjetas de vídeo.
* ''nic'': recoge información sobre las tarjetas de red, Network Interface Controlers.
+
* ''nic:'' recoge información sobre las tarjetas de red, Network Interface Controlers.
* ''hd'': recoge información sobre los discos duros.
+
* ''hd:'' recoge información sobre los discos duros.
* ''cdrom'': recoge información sobre los dispositivos de CDROM
+
* ''cdrom:'' recoge información sobre los dispositivos de CDROM.
* ''patches'': recoge información sobre los parches instalados.
+
* ''patches:'' recoge información sobre los parches instalados.
* ''software'': recoge información sobre el software instalado.
+
* ''software:'' recoge información sobre el software instalado.
* ''init_services'': recoge información sobre los procesos de auto inicio.
+
* ''init_services:'' recoge información sobre los procesos de auto inicio.
* ''filesystem'': recoge información sobre las particiones del sistema.
+
* ''filesystem:'' recoge información sobre las particiones del sistema.
* ''users'': recoge información sobre usuarios.
+
* ''users:'' recoge información sobre usuarios.
* ''Route'': recoge información sobre la tabla de rutas del sistema.
+
* ''Route:'' recoge información sobre la tabla de rutas del sistema.
  
 
El plugin que recoge el inventario está en el directorio /etc/pandora/plugins
 
El plugin que recoge el inventario está en el directorio /etc/pandora/plugins
Line 452: Line 449:
 
Para activar el módulo de inventario simplemente hay que copiar el código descrito anteriormente en el fichero pandora_agent.conf del agente software. Esta activación se puede hacer de forma local en la máquina o de forma remota desde la configuración remota del agente.
 
Para activar el módulo de inventario simplemente hay que copiar el código descrito anteriormente en el fichero pandora_agent.conf del agente software. Esta activación se puede hacer de forma local en la máquina o de forma remota desde la configuración remota del agente.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in32.png|800px]]
 
[[image:in32.png|800px]]
Line 460: Line 456:
 
====Asignar módulos locales ====
 
====Asignar módulos locales ====
  
No es necesario activar los módulos en los Agentes definidos en la consola. Si los módulos se han creado en ''Configuration > Inventory modules'', el SO coincide y está definida la ejecución en el archivo de configuración del Agente software. Los datos recolectados aparecerán directamente en la sección de view > invetory del Agente en la consola.
+
No es necesario activar los módulos en los agentes definidos en la consola. Si los módulos se han creado en ''Configuration > Inventory modules'', el S.O. coincide y está definida la ejecución en el archivo de configuración del agente software. Los datos recolectados aparecerán directamente en la sección de view > invetory del agente en la consola.
 
<br><br>
 
<br><br>
 
<center>
 
<center>
Line 467: Line 463:
 
<br><br>
 
<br><br>
  
==== Creación de modulos de inventario locales (Agente Software) ====
+
==== Creación de módulos de inventario locales (Agente Software) ====
  
Ademas de los sistemas de inventario que vienen "de serie" en el agente, usted puede crear fácilmente, modulos de inventario para sistemas Unix y Windows.
+
Además de los sistemas de inventario que vienen "de serie" en el agente, usted puede crear fácilmente módulos de inventario para sistemas Unix y Windows.
  
 
Básicamente, tiene que crear un script que genere un XML con la siguiente estructura:
 
Básicamente, tiene que crear un script que genere un XML con la siguiente estructura:
Line 485: Line 481:
 
</pre>
 
</pre>
  
'''"INVENTORY_MODULE_NAME"''': deberá poner el mismo nombre del módulo que registro en los módulos de inventario en la consola de Pandora.
+
'''"INVENTORY_MODULE_NAME"''': deberá poner el mismo nombre del módulo que registró en los módulos de inventario en la consola de Pandora FMS.
  
 
'''"DATA1;DATA2..."''' son los datos que desea sacar y que se han definido en el módulo de inventario.
 
'''"DATA1;DATA2..."''' son los datos que desea sacar y que se han definido en el módulo de inventario.
  
Supongamos que quiere sacar una tabla de ARP, IP con sus interfaces (ver el ejemplo anterior, de módulos de inventario remotos). Esto utilizaremos el comando ''arp -a'' y limpiaremos la salida para obtener los datos deseados.
+
Supongamos que quiere sacar una tabla de ARP, IP con sus interfaces (ver el ejemplo anterior de módulos de inventario remotos). Utilizaremos el comando ''arp -a'' y limpiaremos la salida para obtener los datos deseados.
  
Esta vez lo vamos a desarrollar en Windows, el pequeño script  "''C:\tmp\windows_arp_inventory.bat''" con la siguiente definición:
+
Esta vez vamos a desarrollarlo en Windows; el pequeño script  "''C:\tmp\windows_arp_inventory.bat''" con la siguiente definición:
  
  
Line 508: Line 504:
 
</pre>
 
</pre>
  
Ahora necesita modificar ''pandora_agent.conf'', y añadir la siguiente linea:
+
Ahora necesita modificar ''pandora_agent.conf'', y añadir la siguiente línea:
  
 
  module_plugin cmd.exe /C C:\tmp\windows_arp_inventory.bat
 
  module_plugin cmd.exe /C C:\tmp\windows_arp_inventory.bat
Line 514: Line 510:
 
{{Warning|Este script se ejecutará cada 5 minutos (por defecto el intervalo del agente). Si desea que se ejecute cada X tiempo tendrá que implementar esa lógica en el propio script o hacer uso de la [[Pandora:Documentation_es:Operacion#Monitorizaci.C3.B3n_programada|Monitorización programada]]}}
 
{{Warning|Este script se ejecutará cada 5 minutos (por defecto el intervalo del agente). Si desea que se ejecute cada X tiempo tendrá que implementar esa lógica en el propio script o hacer uso de la [[Pandora:Documentation_es:Operacion#Monitorizaci.C3.B3n_programada|Monitorización programada]]}}
  
Recuerde que para que la ejecución del script local pueda almacenar información de inventario debe tener definido un módulo de inventario en la consola, especificando el SO, nombre del módulo y los datos a almacenar separados por ";".
+
Recuerde que, para que la ejecución del script local pueda almacenar información de inventario, debe tener definido un módulo de inventario en la consola, especificando el S.O., nombre del módulo y los datos a almacenar separados por ";".
No olvide, antes de reiniciar el agente de pandora, para que coja los cambios, crear el modulo de inventario en Pandora:
+
No olvide, antes de reiniciar el agente de Pandora FMS, para que coja los cambios, crear el modulo de inventario en Pandora FMS:
  
 
<br><br>
 
<br><br>
Line 523: Line 519:
 
<br><br>
 
<br><br>
  
Fijese que al ser un modulo local, no tiene relleno el campo "interprete" ni el de "codigo", aunque si el de Sistema Operativo.
+
Fíjese que, al ser un módulo local, no tiene relleno el campo "intérprete" ni el de "código", aunque el de Sistema Operativo.
  
Los resultados obtenidos, son iguales que los que obtuvimos para el equivalente de modulo remoto sobre linux:
+
Los resultados obtenidos son iguales que los que obtuvimos para el equivalente de módulo remoto sobre Linux:
  
 
<br><br>
 
<br><br>
Line 533: Line 529:
 
<br><br>
 
<br><br>
  
En la libreria online de modulos de Pandora (http://pandorafms.com) hay más modulos de inventario, tanto remotos como locales. Tambien puede desarrollarse fácilmente los suyos como ha podido ver en este capítulo.
+
En la librería online de módulos de Pandora FMS (http://pandorafms.com/library) hay más módulos de inventario, tanto remotos como locales. También puede desarrollar fácilmente los suyos, como ha podido ver en este capítulo.
  
 
==Visualización de datos para el inventario  ==
 
==Visualización de datos para el inventario  ==
Line 551: Line 547:
 
Los campos que se pueden usar para las búsquedas son los siguientes.
 
Los campos que se pueden usar para las búsquedas son los siguientes.
  
* '''Group''': combo donde se puede elegir el grupo de agentes por los que se quiere filtrar.  
+
* '''Group''': Elige el grupo de agentes por los que se quiere filtrar.  
* '''Module''': combo donde se puede elegir el módulo de inventario por el que se quiere filtrar.  
+
* '''Module''': Elige el módulo de inventario por el que se quiere filtrar.  
* '''Agent''': campo donde se puede escribir el nombre del agente por el que se quiere filtrar.  
+
* '''Agent''': Escribe el nombre del agente por el que se quiere filtrar.  
* '''Search''': campo donde se puede escribir un texto para realizar una búsqueda por todos los campos del inventario.
+
* '''Search''': Escribe un texto para realizar una búsqueda por todos los campos del inventario.
  
 
Con las búsquedas es posible ver los módulos de todos los agentes que tienen inventario, eligiendo all en las opciones de búsqueda y pulsando en “Search”.
 
Con las búsquedas es posible ver los módulos de todos los agentes que tienen inventario, eligiendo all en las opciones de búsqueda y pulsando en “Search”.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in38.png|801px]]
 
[[image:in38.png|801px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
 
O un módulo concreto de todos los agentes con inventario, eligiendo el módulo y pulsando en “Search”.
 
O un módulo concreto de todos los agentes con inventario, eligiendo el módulo y pulsando en “Search”.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in39.png|801px]]
 
[[image:in39.png|801px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
 
===Fechas y cambios en el inventario===
 
===Fechas y cambios en el inventario===
  
En la vista detallada del inventario de un agente, a través de un combo, podremos escoger la fecha del informe de inventario concreto que queremos ver:
+
En la vista detallada del inventario de un agente, a través de un selector, podremos escoger la fecha del informe de inventario concreto que queremos ver:
  
 
<center>
 
<center>
Line 580: Line 574:
 
</center>
 
</center>
  
Si observamos que faltan fechas será probablemente por que no hay cambios en los datos respecto a la última ejecución de inventario. Es decir, Pandora solo almacena datos de inventario cuando estos cambian respecto a la ultima ejecución.
+
Si observamos que faltan fechas será probablemente porque no hay cambios en los datos respecto a la última ejecución de inventario. Es decir, Pandora FMS solo almacena datos de inventario cuando estos cambian respecto a la última ejecución.
  
 
===Exportar los datos de inventario a CSV===
 
===Exportar los datos de inventario a CSV===
Line 586: Line 580:
 
Desde ''Monitoring > Inventory'' es posible exportar los datos del inventario, resultado de un filtro, a un archivo CSV.
 
Desde ''Monitoring > Inventory'' es posible exportar los datos del inventario, resultado de un filtro, a un archivo CSV.
  
Se elige el filtro y una vez que haya datos se pincha en “Export CSV”.
+
Se elige el filtro y, una vez que haya datos, se pincha en “Export CSV”.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:in40.png|800px]]
 
[[image:in40.png|800px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
 
Se crea un archivo con los datos de inventario separados por punto y coma.
 
Se crea un archivo con los datos de inventario separados por punto y coma.
Line 600: Line 593:
 
'''Modo bloque'''
 
'''Modo bloque'''
  
Desde la versión de Pandora 5.1 se puede mostrar visualmente las diferencias entre dos configuraciones, mostrándolo en dos columnas para ver las diferencias. El modo bloque especifica que el resultado de un modulo de inventario es un único elemento, en vez de interpretar cada línea como elementos diferentes del mismo tipo comose ha hecho en los modulos de inventario vistos anteriormente.
+
Desde la versión de Pandora 5.1 se puede mostrar visualmente las diferencias entre dos configuraciones, visualizándolo en dos columnas para ver las diferencias. El modo bloque especifica que el resultado de un módulo de inventario es un único elemento, en vez de interpretar cada línea como elementos diferentes del mismo tipo, como se ha hecho en los módulos de inventario vistos anteriormente.
  
 
El modo bloque se configura al definir un módulo de inventario local o remoto:
 
El modo bloque se configura al definir un módulo de inventario local o remoto:
  
<br><br>
 
 
<center>
 
<center>
 
[[image:Block_mode_setup.png|799px]]
 
[[image:Block_mode_setup.png|799px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
 +
Cuando tenemos un módulo configurado con el modo bloque, nos permite ver la vista partida (para observar visualmente los cambios).
  
Cuando tenemos un modulo configurado con el modo bloque, nos permite ver la vista partida (para ver visualmente los cambios).
 
 
<br><br>
 
 
<center>
 
<center>
 
[[image:Diff inventory.png|798px]]
 
[[image:Diff inventory.png|798px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
En la vista en dos columnas se muestra las diferencias entre una versión del inventario y otra, e incluso se puede elegir la versión por fecha.
+
En la vista en dos columnas se muestran las diferencias entre una versión del inventario y otra, e incluso se puede elegir la versión por fecha.
  
<br><br>
 
 
<center>
 
<center>
 
[[image:Pandora FMS - the Flexible Monitoring System - 2014-07-01 19.09.10.png|799px]]
 
[[image:Pandora FMS - the Flexible Monitoring System - 2014-07-01 19.09.10.png|799px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
Recuerde que cada vez que se detecta un cambio en un modulo de inventario, se generará un evento.  
+
Recuerde que cada vez que se detecta un cambio en un módulo de inventario se generará un evento.  
  
<br><br>
 
 
<center>
 
<center>
 
[[image:Events inv.png|799px]]
 
[[image:Events inv.png|799px]]
 
</center>
 
</center>
<br><br>
+
<br>
  
[[Pandora:Documentation|Volver a Indice de Documentacion Pandora FMS]]
+
[[Pandora:Documentation|Volver a Índice de Documentación Pandora FMS]]
  
 
[[Category: Pandora FMS]]
 
[[Category: Pandora FMS]]

Revision as of 11:53, 7 October 2019

Volver a Indice de Documentacion Pandora FMS

1 Inventario

1.1 Introducción

La versión Enterprise de Pandora FMS permite mantener un inventario de los dispositivos monitorizados por Pandora FMS. Con dicho inventario es posible mantener un listado con la CPU, tarjetas, Memoria RAM, parches, software, etc. de los servidores de la compañía.

El inventario es independiente de la monitorización y puede ser obtenido de forma local (a través de los agentes software de Pandora FMS) o de forma remota.

1.2 Recogida de datos para el inventario

La recogida de los datos para el inventario de los sistemas se realiza de dos maneras:

De forma remota, mediante módulos de inventario, a través de scripts integrados en Pandora FMS que ejecutan queries WMI, o scripts ejecutados a través de SSH con Expect o métodos similares.

De forma local, con el agente software de Pandora FMS, mediante plugins en el agente.

1.2.1 Módulos de inventario

Los módulos de inventario son módulos remotos que ejecutan un comando contra una máquina remota; dichos módulos funcionan de forma similar a un plugin. Los mismos módulos se pueden definir como "locales" cuando obtienen los datos a través de un agente.

En los parámetros de Usuario y Contraseña se pueden usar las siguientes macros:

  • _agentcustomfield_n_: Campo personalizado número n del agente

1.2.2 Inventario remoto

1.2.2.1 Creación de módulos remotos

La creación por parte del administrador de un módulo de inventario remoto no es habitual; estos vienen "precargados" ya con Pandora FMS Enterprise. No obstante, Pandora FMS le permite construir sus propios módulos de inventario o modificar los que ya existen por medio del editor de módulos de inventario.

Para crear un módulo remoto se debe ir a Configuration > Inventory Modules donde aparecen todos los módulos de inventario que se han creado.

In1.png


Para crear un módulo nuevo se pulsa en “Create”.

In2.png


Name: Define el nombre del Módulo.

Description: Escribe la descripción del Módulo.

OS: Elige el Sistema Operativo para el que se crea el módulo.

Interpreter: Campo donde se pone el intérprete de comandos que se usa en el módulo. Puede ser Shell Script, Perl u otro intérprete válido para el servidor de inventario que se ejecuta sobre un sistema Linux.

Format: Escribe los campos separados por ; que devolverá el módulo.

Code: Código del módulo; generalmente es código Perl o Shell Script. Si fuera código binario necesitaría un procedimiento de carga diferente que ha de ser introducido mediante scripts auxiliares.

Template warning.png

Es muy importante elegir bien el sistema operativo, porque al añadir módulos de inventario en un agente solo aparecerán aquellos módulos en los que coincide el sistema operativo del módulo con el sistema operativo del agente.

 


Una vez se ha creado el módulo se pulsa en “Create”.

In3.png


1.2.2.2 Edición de módulos remotos

Para editar un módulo remoto se debe ir a Configuration > Inventory Modules donde aparecen todos los módulos de inventario que se han creado. Se pulsa sobre el módulo que se quiere editar o sobre el icono de la llave de la columna Action.

In4.png

Aparece de nuevo la página de creación de módulo.

In5.png

Se modifican los campos deseados y se pulsa en el botón “Update”.

1.2.2.3 Eliminación de módulos remotos

Para borrar un módulo remoto se debe ir a Configuration > Inventory Modules donde aparecen todos los módulos de inventario que se han creado. Se pulsa en el icono de la papelera de la columna action del módulo que se quiere borrar.

In6.png


1.2.2.4 Asignar módulos remotos

La asignación de módulos de Inventario se realiza en el propio agente, en la pestaña de administración del Agente.

Se pulsa sobre la pestaña Inventory.

In8.png


Aparece la página donde se pueden añadir los módulos de Inventario.

In9.png


A continuación, se describen los campos que hay que completar para añadir un módulo de inventario.

  • Module: Elige el módulo de inventario que se quiere añadir. Solo aparecerán los módulos cuyo Sistema Operativo coincide con el del agente.
  • Target: IP o nombre del servidor del que se quiere sacar el inventario.
  • Interval: Elige el intervalo de tiempo en que se ejecutará el módulo de inventario.
  • Username: Usuario que se utilizará para ejecutar el módulo de inventario.
  • Password: Password del usuario que se utilizará para ejecutar el módulo de inventario.

Una vez completado el formulario se pulsa en “Add”. El módulo se añadirá a los módulos de inventario.

In10.png


A partir de la versión v7.0NG.724, es posible definir campos en lugar de los de usuario y contraseña que existen normalmente. Para ello, es necesario activar el siguiente checkbox:

Custom fields checkbox.png

Tras hacer esto, aparecerá un control para agregar campos nuevos:

Inventory module new custom field.png

En este control habrá que introducir el nombre deseado antes de añadirlo. Si indicamos que el campo va a contener una contraseña, el valor se guardará en base de datos de forma ofuscada.

Tras crear los campos, podremos darles un valor y añadir finalmente el módulo. Estos campos serán aplicados en orden de creación en la ejecución del script de inventario remoto.

Inventory module with custom fields.png


1.2.2.5 Edición de un módulo de inventario remoto asignado

Es posible editar los módulos de inventario; esta edición se realiza en la misma página donde se crean.

Para editar un módulo de inventario se pulsa en el nombre del módulo o en el icono llave que se ve en la imagen.

In20.png


1.2.2.6 Eliminación de un módulo de inventario remoto asignado

Es posible borrar los módulos de inventario; el borrado se realiza en la misma página donde se crean.

Para borrar un módulo de inventario se pulsa en el icono papelera que hay en la columna Action del módulo.

1.2.2.7 Ejemplo completo del proceso de creación de un módulo remoto de inventario

Supongamos que necesitamos sacar la lista de direcciones físicas de un adaptador de un servidor, en este caso de un servidor Unix. Esta información se obtiene generalmente con el uso del comando "arp -a -n", que si lo ejecutamos en el servidor nos da algo parecido a esto:

[email protected]:~$ arp -a -n
? (192.168.70.74) at 08:00:27:39:BF:6F [ether] on eth2
? (192.168.70.162) at B4:74:9F:94:98:84 [ether] on eth2
? (192.168.50.30) at 08:00:27:10:D1:1A [ether] on eth0
? (192.168.70.90) at 98:0C:82:54:2F:DE [ether] on eth2
? (192.168.50.2) at 08:00:27:EA:B2:FF [ether] on eth0
? (192.168.70.135) at C8:60:00:4B:96:67 [ether] on eth2
? (192.168.60.182) at FE:26:C5:91:B1:DA [ether] on tap0

Lo que buscamos es la dirección IP, la MAC y el nombre del adaptador.

En shellscript esto se podría hacer de la siguiente manera, usando " " para separar los campos:

arp -a -n | sort | grep -v incomplete | awk '{ print $2,$4,$7 }'

Ya tenemos prácticamente lo necesario para "importar" esta información en el servidor de Inventario Remoto de Pandora FMS. Para ello, usaremos de base el módulo de inventario remoto "CPU" y lo modificaremos ligeramente. Este script se conecta vía SSH con el servidor destino, y le ejecuta el comando. La salida del comando debe devolver cada campo separado por el carácter ";"

Llegados a este punto, necesita tener conocimientos de programación para desarrollar o modificar los scripts. Los scripts de inventario remoto, si bien no son complejos, necesitan algo de conocimiento de perl, shellscript u otro lenguaje interpretado; también los podría hacer en Java, C++, e invocar su ejecución desde el módulo, siempre y cuando devuelva los valores de cada campo definido separados por ";" y un salto de línea para cada dato.

#!/usr/bin/perl
##########################################################################
# pandora_linux_arptable.pl
##########################################################################
# Copyright (c) 2012 Sancho Lerena <[email protected]>
#           (c) 2012 Artica Soluciones Tecnologicas S.L
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
##########################################################################

use strict;
use warnings;

# Check for ssh
my $ssh_client = "ssh";
if (system("$ssh_client -v > /dev/null 2>&1") >> 8 != 255) {
	print "[error] $ssh_client not found.\n";
	exit 1;
}

if ($#ARGV < 1) {
	print "Usage: $0 <target ip> <username>\n";
	exit 1;
}

my $target_ip = $ARGV[0];
my $username = $ARGV[1];

# Retrieve ARP table
my ($ip, $mac, $iface);
my $command = '/usr/sbin/arp -a -n | sort | grep -v incomplete | awk \'{ print \$2,\$4,\$7 }\'';

my @info = `$ssh_client $username\@$target_ip "$command" 2> /dev/null`;
foreach my $line (@info) {
	if ($line =~ /^(.+)\s(.+)\s(.+)/) {
		$ip = $1;
		$mac = $2;
		$iface = $3;
		print "$ip;$mac;$iface\n";
	} 
}
 
exit 0;

Para que la conexión SSH funcione de forma automática, debe copiar la llave publica del usuario "root" del servidor de Pandora FMS en el servidor de destino. Imagine que va a ejecutar este comando en 192.168.50.10, realice estos pasos:

1. Cree la llave en el servidor de Pandora FMS como root.

ssh-keygen

2. Utilice el comando ssh-copy-id para copiar la llave pública el servidor de destino (192.168.50.10) con el usuario de destino (en este caso el usuario artica):

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

(Tendrá que meter una vez la password del usuario "artica" en 192.168.50.10 para instalar la llave pública en el servidor destino).

3. Pruebe a conectar; debería conectar sin que le pregunte la password:

ssh [email protected]

4. Si ha llegado hasta aquí, el mismo proceso será el que siga el módulo de inventario, así que pruebe a ejecutarlo desde línea de comando, grabando el script anterior a disco (temporal.pl) y ejecutándolo con la IP y el usuario como parámetro:

perl temporal.pl 192.168.50.10 artica
(192.168.50.1);00:0f:ea:27:ba:f0;eth0
(192.168.50.3);08:00:27:98:f8:48;eth0

Fíjese en que el script llama remotamente a /usr/sbin/arp. El comando debe estar en ese path; si no, cambie el script. También puede advertir que llamamos a nuestro script con el comando "perl", que usualmente está en /usr/bin/perl. Esto es lo que debe configurar a la hora de definir el módulo, como puede ver a continuación:



Inventory sample1 .png



A la hora de aplicarlo a un agente, fíjese que el S.O. coincide. Si tiene diferentes sistemas operativos, deberá crear un módulo diferente para cada uno de ellos, porque el mismo código no funcionará.



Inventory sample2 .png



Una vez ejecutado este módulo, desde de la consola podemos acceder a una visualización similar a la siguiente:



Inventory sample3 .png



1.2.3 Inventario local, a través de los agentes software

Mediante los agentes software es posible obtener los datos de inventario de una máquina. Bastará con aplicar los módulos de inventario correspondiente en la configuración del agente software. Al igual que en los módulos remotos, también es necesario añadir estos módulos como módulo de inventario en Configuration > Inventory modules.

1.2.3.1 Creación de módulos locales

Para crear un módulo local se va a Configuration > Inventory modules donde aparecen todos los módulos de inventario que se han creado. Se deben crear aquí todos los módulos que se definirán en la configuración del Agente; también debe coincidir el S.O. asignado al agente en la consola con el del módulo creado.

In22.png


Para crear un módulo nuevo se pulsa en “Create”.

In23.png


Para los módulos locales no es necesario completar todos los campos.

  • 'Name‘: Escribe el nombre del módulo.
  • Description: Escribe la descripción del módulo.
  • OS: Elige el Sistema Operativo para el que se crea el módulo.
  • Format: Escribe los campos separados por ; que devolverá el módulo.

Una vez se ha creado el módulo se pulsa en “Create”.

In24.png


1.2.3.2 Configuración de inventario local para agentes software

Para adaptar la configuración del agente software a la nueva versión debemos:

1. Desplegar la colección de scripts (descargar de la librería de Pandora FMS http://pandorafms.com/Library/Library/) a través de colecciones.

Info.png

A partir de la versión 7, estos plugins vienen por defecto con la instalación del agente, aunque vienen comentados en el archivo de configuración.

 


2. Configurar la ejecución programada de scripts de inventario local en el archivo pandora_agent.conf, agregando la siguiente información al final:

Info.png

A partir de la versión 7 no hay necesidad de añadir; solo hay que descomentar los plugins ya existentes en el fichero de configuración del agente.

 


#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cpuinfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\moboinfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\diskdrives.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cdromdrives.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\videocardinfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\ifaces.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\monitors.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\printers.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\raminfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\software_installed.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\userslogged.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productkey.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productID.vbs"
#module_crontab * 12-15 * * 1
#module_end


1.2.3.3 Módulo de Inventario en sistemas Unix mediante agente software.

El módulo del agente software de Unix usa, de forma local, un plugin para recoger información sobre diferentes aspectos de la máquina, tanto de software como de hardware.

La sintaxis del módulo es la siguiente:

module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route

El módulo se compone de una línea con los siguientes parámetros:

  • Activation del modulo
" module_plugin inventory " 1 cpu ram video nic hd cdrom software init_services filesystem users route
  • Campo donde se establece cada cuántos días se ejecutará el módulo. Si es 0 el inventario es devuelto en cada ejecución del agente.
module_plugin inventory " 1 " cpu ram video nic hd cdrom software init_services filesystem users route
  • Campo donde se definen los objetos de inventario que se recogen.
module_plugin inventory 1 " cpu ram video nic hd cdrom software init_services filesystem users route "

Al igual que en el agente Windows, es posible recoger los siguientes objetos:

  • CPU: recoge información sobre las CPUs.
  • ram: recoge información sobre los módulos de RAM.
  • video: recoge información sobre las tarjetas de vídeo.
  • nic: recoge información sobre las tarjetas de red, Network Interface Controlers.
  • hd: recoge información sobre los discos duros.
  • cdrom: recoge información sobre los dispositivos de CDROM.
  • patches: recoge información sobre los parches instalados.
  • software: recoge información sobre el software instalado.
  • init_services: recoge información sobre los procesos de auto inicio.
  • filesystem: recoge información sobre las particiones del sistema.
  • users: recoge información sobre usuarios.
  • Route: recoge información sobre la tabla de rutas del sistema.

El plugin que recoge el inventario está en el directorio /etc/pandora/plugins

También se puede especificar simplemente que recoja toda la información disponible. En este ejemplo, recogerá diariamente toda la información de inventario:

# Plugin for inventory on the agent (Only Enterprise)
module_plugin inventory 1


Para activar el módulo de inventario simplemente hay que copiar el código descrito anteriormente en el fichero pandora_agent.conf del agente software. Esta activación se puede hacer de forma local en la máquina o de forma remota desde la configuración remota del agente.

In32.png


1.2.3.4 Asignar módulos locales

No es necesario activar los módulos en los agentes definidos en la consola. Si los módulos se han creado en Configuration > Inventory modules, el S.O. coincide y está definida la ejecución en el archivo de configuración del agente software. Los datos recolectados aparecerán directamente en la sección de view > invetory del agente en la consola.

In33.png



1.2.3.5 Creación de módulos de inventario locales (Agente Software)

Además de los sistemas de inventario que vienen "de serie" en el agente, usted puede crear fácilmente módulos de inventario para sistemas Unix y Windows.

Básicamente, tiene que crear un script que genere un XML con la siguiente estructura:

<inventory>
<inventory_module>
<name>INVENTORY_MODULE_NAME</name>
<type>generic_data_string</type>
<datalist>
    <data>DATA1;DATA2;DATA3....</data>
</datalist>
</inventory_module>
</inventory>

"INVENTORY_MODULE_NAME": deberá poner el mismo nombre del módulo que registró en los módulos de inventario en la consola de Pandora FMS.

"DATA1;DATA2..." son los datos que desea sacar y que se han definido en el módulo de inventario.

Supongamos que quiere sacar una tabla de ARP, IP con sus interfaces (ver el ejemplo anterior de módulos de inventario remotos). Utilizaremos el comando arp -a y limpiaremos la salida para obtener los datos deseados.

Esta vez vamos a desarrollarlo en Windows; el pequeño script "C:\tmp\windows_arp_inventory.bat" con la siguiente definición:


@echo off

echo ^<inventory^>
echo ^<inventory_module^>
echo ^<name^>ARP^</name^>
echo ^<type^>generic_data_string^</type^>
echo ^<datalist^>
arp -a | sort | grep "[0-9]"  | grep -v ":" | gawk "{ print \"^<data^>\" $1\";\"$2\";\"$3 \"^</data^>\" }"
echo ^</datalist^>
echo ^</inventory_module^>
echo ^</inventory^>

Ahora necesita modificar pandora_agent.conf, y añadir la siguiente línea:

module_plugin cmd.exe /C C:\tmp\windows_arp_inventory.bat

Template warning.png

Este script se ejecutará cada 5 minutos (por defecto el intervalo del agente). Si desea que se ejecute cada X tiempo tendrá que implementar esa lógica en el propio script o hacer uso de la Monitorización programada

 


Recuerde que, para que la ejecución del script local pueda almacenar información de inventario, debe tener definido un módulo de inventario en la consola, especificando el S.O., nombre del módulo y los datos a almacenar separados por ";". No olvide, antes de reiniciar el agente de Pandora FMS, para que coja los cambios, crear el modulo de inventario en Pandora FMS:



Inventory sample4 .png



Fíjese que, al ser un módulo local, no tiene relleno el campo "intérprete" ni el de "código", aunque sí el de Sistema Operativo.

Los resultados obtenidos son iguales que los que obtuvimos para el equivalente de módulo remoto sobre Linux:



Inventory sample5 .png



En la librería online de módulos de Pandora FMS (http://pandorafms.com/library) hay más módulos de inventario, tanto remotos como locales. También puede desarrollar fácilmente los suyos, como ha podido ver en este capítulo.

1.3 Visualización de datos para el inventario

Los datos de inventario que se han recogido de un sistema, ya sea de forma local o de forma remota, se pueden ver desde el propio agente o desde el menú de Inventario de la consola.

1.3.1 Ver datos de Inventario en el menú de Inventario

Desde Monitoring > Inventory es posible ver los datos de inventario de todos los agentes, realizar búsquedas y exportar los datos a un CSV.



In37.png



Los campos que se pueden usar para las búsquedas son los siguientes.

  • Group: Elige el grupo de agentes por los que se quiere filtrar.
  • Module: Elige el módulo de inventario por el que se quiere filtrar.
  • Agent: Escribe el nombre del agente por el que se quiere filtrar.
  • Search: Escribe un texto para realizar una búsqueda por todos los campos del inventario.

Con las búsquedas es posible ver los módulos de todos los agentes que tienen inventario, eligiendo all en las opciones de búsqueda y pulsando en “Search”.

In38.png


O un módulo concreto de todos los agentes con inventario, eligiendo el módulo y pulsando en “Search”.

In39.png


1.3.2 Fechas y cambios en el inventario

En la vista detallada del inventario de un agente, a través de un selector, podremos escoger la fecha del informe de inventario concreto que queremos ver:

Vista inventario diff.png

Si observamos que faltan fechas será probablemente porque no hay cambios en los datos respecto a la última ejecución de inventario. Es decir, Pandora FMS solo almacena datos de inventario cuando estos cambian respecto a la última ejecución.

1.3.3 Exportar los datos de inventario a CSV

Desde Monitoring > Inventory es posible exportar los datos del inventario, resultado de un filtro, a un archivo CSV.

Se elige el filtro y, una vez que haya datos, se pincha en “Export CSV”.

In40.png


Se crea un archivo con los datos de inventario separados por punto y coma.

1.3.4 Diferencias entre versiones de inventario

Modo bloque

Desde la versión de Pandora 5.1 se puede mostrar visualmente las diferencias entre dos configuraciones, visualizándolo en dos columnas para ver las diferencias. El modo bloque especifica que el resultado de un módulo de inventario es un único elemento, en vez de interpretar cada línea como elementos diferentes del mismo tipo, como se ha hecho en los módulos de inventario vistos anteriormente.

El modo bloque se configura al definir un módulo de inventario local o remoto:

Block mode setup.png


Cuando tenemos un módulo configurado con el modo bloque, nos permite ver la vista partida (para observar visualmente los cambios).

Diff inventory.png


En la vista en dos columnas se muestran las diferencias entre una versión del inventario y otra, e incluso se puede elegir la versión por fecha.

Pandora FMS - the Flexible Monitoring System - 2014-07-01 19.09.10.png


Recuerde que cada vez que se detecta un cambio en un módulo de inventario se generará un evento.

Events inv.png


Volver a Índice de Documentación Pandora FMS