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

From Pandora FMS Wiki
Jump to: navigation, search
(Monitorización con KeepAlive)
m (Ortografía.)
 
(86 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Pandora:Documentation|Volver a Indice de Documentacion Pandora FMS]]
+
[[Pandora:Documentation|Volver al Índice de Documentación Pandora FMS]]
  
= Monitorización con agentes software =
 
  
== Nombre de los agentes ==
+
= Monitorización con Agentes Software =
  
A partir de la versión 7 de Pandora FMS los agentes tienen un alias y un nombre (o identificador único). Un agente configurado por defecto generará un nombre (o identificador) basado en una cadena hexadecimal pseudoaleatoria, y un alias (o nombre visible) basado en el hostname de la máquina.
+
<!-- Niveles de títulos y subtítulos está pendiente pero anotado -->
 +
 
 +
== Monitorización con Agente Software ==
  
En versiones anteriores solo existía el "nombre" de la máquina, y el sistema anterior es totalmente compatible con las versiones más modernas de Pandora FMS, solo que si en una misma instalación de Pandora FMS encuentra dos agentes con el mismo identificador (o nombres) los datos de ambos agentes se mezclarán y/o pisarán. Por eso introdujimos a partir de la versión 7 la posibilidad que agentes con diferente nombre pudieran tener el mismo alias.
+
[[Image:Agent-monitoring.png|400px|center]]
  
Para cambiar este comportamiento se utilizan los token de configuración siguientes:
+
Los Agentes Software se encuentran en ejecución en los sistemas operativos de los cuales recogen información. '''Cada uno de los chequeos''' que hacen sobre el sistema, como uso de CPU, memoria libre o espacio en disco, corresponde a un '''módulo'''. Así, por cada módulo se recoge un único dato en cada ejecución.
  
pandora_agent
+
Las ''directivas'' propias del Agente Software sirven para recoger ciertos datos directamente del sistema operativo (ej. uso de CPU, memoria, eventos, etcétera), ejecutando '''comandos propios del sistema operativo''' siguiendo instrucciones de ''scripts'' predefinidos. También es posible ejecutar estos comandos de manera directa así como cualquier otro software siempre y cuando devuelvan datos de una manera estándar.
pandora_alias
 
  
Por defecto, el fichero de configuración no utiliza ninguno de los dos, de forma que obtiene el hostname de la máquina como alias y un numero hexadecimal aleatorio muy grande como nombre o identificador. El nombre del agente no es ya visible (excepto en la vista detallada del agente) y NO se puede cambiar. El Alias del agente se puede cambiar en cualquier momento, sin tener que preocuparse de la configuración del agente software, ya que el que se usa para identificar unívocamente al agente es el "nombre" de agente.
+
El Dataserver Pandora FMS procesa y almacena en la base de datos toda la información generada por los agentes software, que le hacen llegar sus datos en un fichero XML.
  
== Configuración de agentes ==
+
[[Image:Esquema-3.png|center|650px]]
 +
<center>Esquema lógico de un agente/agente físico.</center><br>
  
Toda la configuración y los parámetros de monitorización de los agentes software se encuentra en su fichero de configuración ''pandora_agent.conf''. Este se encuentra almacenado localmente en la máquina donde se encuentra instalado el agente software, por lo que toda modificación que queramos hacer en el agente deberá reflejarse en este fichero. Tiene una descripción detallada de todos los tokens de configuración del agente en el capítulo [https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Configuracion_Agentes "Configuración de los agentes de PandoraFMS"]. Aquí nos enfocaremos en los usos avanzados de algunos de ellos.
+
{{Tip|Si ejecutan versiones anteriores a 7 NG consulte acerca del nombrado de los Agentes Software a final de este artículo.}}
  
=== Configuración remota ===
+
=== Configuración de Agentes Software===
  
En la versión Enterprise es posible gestionar remotamente los ficheros de los agentes software desde la consola. Esto permite la administración centralizada de todos nuestros agentes software sin necesidad de acceder físicamente a los sistemas donde se encuentran instalados.
+
Toda la configuración y los parámetros se encuentran almacenados en el fichero ''pandora_agent.conf'', el cual está instalado también localmente junto a su Agente Software. La configuración básica está tratada en [[Pandora:Documentation_es:Configuracion_Agentes|"Configuración de los Agentes Pandora FMS"]], a continuación se expone la configuración avanzada.
  
La configuración de cada agente se almacena en el servidor de Pandora FMS en dos ficheros: <md5>.conf y <md5>.md5, siendo <md5> el hash del nombre del agente. Estos ficheros son almacenados respectivamente en ''/var/spool/pandora/data_in/conf'' y ''/var/spool/pandora/data_in/md5''.
+
==== Configuración local ====
  
Estos ficheros almacenados en el servidor son modificados por la propia consola de Pandora FMS cuando se edita la configuración de los agentes de forma remota.
+
En el archivo de configuración del Agente Software los módulos están definidos con la siguiente estructura básica de texto:
  
<br>
+
module_begin
<center>
+
module_name ''your module name''
[[image:Sw-agent.png|center|550px]]
+
module_type ''generic_data''
</center>
+
module_exec ''your command''
<br>
+
module_description ''your description''
 +
module_end
 +
 
 +
===== Ejemplo 1 =====
 +
 
 +
module_begin
 +
module_name Files in var spool
 +
module_type generic_data
 +
module_exec ls /var/spool | wc -l
 +
module_description Number of files incoming dir
 +
module_end
 +
 
 +
En ambiente *nix el comando '''ls''' lista ficheros de un directorio y es ejecutado con la línea ''module_exec'' para entregar el valor al comando '''wc''' que contará el números de palabras recibidas para igual número de archivos. El valor devuelto por esa última ejecución será el dato que obtendrá el módulo y será mostrado en la monitorización.
 +
 
 +
===== Ejemplo 2 =====
 +
 
 +
module_exec vmstat 1 2 | tail -1 | awk '{ print $13 }'
 +
 
 +
El comando '''vmstat''' reporta estadísticas de la memoria virtual, en este ejemplo son dos los comandos adicionales para "refinar" la información deseada. Se recomienda primero lanzar el comando manualmente y analizar la salida.
 +
 
 +
$> vmstat 1 2 | tail -1 | awk '{ print $13 }'
  
Para habilitar la configuración remota solo hay que habilitar el parámetro correspondiente en el fichero de configuración local del agente en primer lugar. A partir de este momento todos los cambios deberán hacerse desde la consola de Pandora FMS:
+
Si el resultado satisface el requerimiento se podrá agregar al fichero de configuración; posteriormente el valor devuelto por la ejecución mediante el Agente Software será almacenado en el XML como dato del módulo.
  
remote_config 1
+
===== Ejemplo 3 =====
  
{{Tip|Una vez que la configuración remota del agente está activada, cualquier cambio que se haga localmente en el fichero de configuración se sobreescribirá por la configuración almacenada en la consola. Si quiere evitar que eso ocurra, pare el agente, modifique el fichero de configuración y deshabilite la configuración remota y levante el agente de nuevo.}}
+
Cualquier comando o software puede ser ejecutado mediante ''module_exec'' mientras la salida sea compatible con los valores aceptados por Pandora FMS (numérico, alfanumérico o ''booleano''), por lo que es posible indicar ''scripts'' personalizados:
  
== Parámetros de configuración comunes ==
+
module_exec myScript.pl --h 127.0.0.1 -v cpu
  
En la sección [[Pandora:Documentation es:Configuracion#Agentes_software_de_Pandora_FMS|Agentes software de Pandora FMS]] puede encontrar una explicación más detallada de la configuración del agente. En este apartado vamos a mencionar los parámetros más importantes para la configuración básica del agente.
+
De nuevo el agente ejecutará el comando en la ''shell'' y recogerá el resultado, igual que si fuera ejecutado por un operador:
  
Los parámetros más usados son:
+
$> myScript.pl --h 127.0.0.1 -v cpu
  
*'''server_ip''': Dirección IP del servidor de Pandora FMS.
+
==== Configuración remota ====
*'''server_path''': Ruta de la carpeta incoming del servidor Pandora FMS. Por defecto ''/var/spool/pandora/data_in''.
 
*'''temporal''': Carpeta temporal del agente software. Por defecto ''/tmp''.
 
*'''logfile''': Archivo de log del agente software. Por defecto ''/var/log/pandora/pandora_agent.log''.
 
*'''interval''': Intervalo de ejecución del agente, en segundos. Por defecto 300.
 
*'''debug''': Habilita (1) el modo debug, para guardar los ficheros de datos XML en local y poder analizarlos.  Cuando está activado, no envía los XML al servidor y para la ejecución, para poder analizar el XML generado.
 
*'''agent_name''': Nombre del agente. Por defecto se coge el hostname.
 
*'''remote_config''': Activación de configuración remota. Por defecto 0 (desactivada). Solo Enterprise.
 
  
Un ejemplo de los parámetros generales desde una '''configuración Unix''' sería:
+
En la versión Enterprise es posible gestionar remotamente los ficheros de los Agentes Software desde la Consola Web de Pandora FMS. Esto permite la administración centralizada de todos nuestros agentes software sin necesidad de acceder físicamente a los sistemas donde se encuentran instalados.
  
server_ip      192.168.1.1
+
La configuración de cada agente se almacena en el servidor de Pandora FMS en dos ficheros: <md5>.conf y <md5>.md5, donde <md5> es el ''hash'' del nombre del Agente software. Estos ficheros son almacenados respectivamente en ''/var/spool/pandora/data_in/conf'' y ''/var/spool/pandora/data_in/md5''. La Consola se encarga de mantener sincronizados dichos ficheros en el servidor Pandora FMS y los respectivos locales donde esté instalado cada Agente Software.
server_path    /var/spool/pandora/data_in  
 
temporal        /tmp
 
logfile        /var/log/pandora/pandora_agent.log
 
interval        300
 
debug          0
 
agent_name      box01
 
server_port    41121
 
transfer_mode  tentacle
 
remote_config    1
 
  
Un ejemplo de los parámetros generales desde una '''configuración Windows''' sería:
+
[[image:Sw-agent.png|center|550px]]
  
server_ip      192.168.1.1
+
Para habilitar la configuración remota solo hay que habilitar el parámetro correspondiente en el fichero de configuración local del agente en primer lugar. A partir de este momento todos los cambios deberán hacerse desde la consola de Pandora FMS:
server_path    /var/spool/pandora/data_in
 
temporal        "C:\Program Files\pandora_agent\temp"
 
logfile        "C:\Program Files\pandora_agent\pandora_agent.log"
 
interval        300
 
debug          0
 
agent_name      box02
 
server_port    41121
 
transfer_mode  tentacle
 
remote_config  1
 
  
==Custom fields==
+
remote_config 1
  
Los Campos personalizados permiten añadir información adicional al agente. Puedes crear campos personalizados en Resources > Custom fields.
+
{{Tip|Una vez que la configuración remota del agente está activada, cualquier cambio que se haga localmente en el fichero de configuración será sobreescrita por la configuración almacenada en la consola. Para volver a la administración local del Agente Software, detenga su servicio, restablezca '''remote_config''' a cero e inicie el servicio de nuevo.}}
  
<br>
+
===== Custom fields =====
<center>
 
[[image:customfields1.JPG|center|800px]]
 
</center>
 
<br>
 
  
<center>
+
[[Image:RK0b6ZaqBm.png|center|550px|Administrador de campos personalizados para agentes]]
[[image:Custom_fields2.png|center|800px]]
 
</center>
 
<br>
 
  
{{Tip|<nowiki>Se podrán incluir enlaces en los custom fields usando las etiquetas [url]enlace[/url] o [url=enlace]Nombre web[/url].</nowiki>}}
+
Los campos personalizados permiten añadir información adicional al agente. Puede crear campos personalizados en '''Resources''' > '''Custom fields'''.
  
A la hora de crear custom fields propios se podrán especificar los siguientes parámetros:
+
{{Tip|Es posible incluir enlaces en los ''custom fields'' usando las etiquetas <nowiki> [url]enlace[/url] o [url=enlace]Nombre web[/url]. </nowiki>}}
  
* '''Name''': Nombre del campo personalizado.
+
De manera predeterminada los campos '''Display up front''' y '''Enabled combo''' vienen deshabilitados:
* '''Password type''': Los campos con este parámetro activado se mostrarán como asteriscos.
 
* '''Display on front''': Con este parámetro activado, la información del campo personalizable se enseñará  en la vista general del agente, tal como se muestra a continuación:
 
  
<br>
+
[[Image:customfields2.JPG|center|500px|"Display up front" y "Enabled combo" deshabilitados]]
<center>
 
[[image:Customfields3.JPG|center|800px]]
 
</center>
 
<br>
 
  
* '''Enabled combo''': Este parámetro permite activar la configuración de parámetros seleccionables desde un desplegable. Una vez activado, en la ventana de configuración del custom field correspondiente aparecerá un nuevo campo para introducir los valores del combo separados por comas.
+
* Al activar el campo '''Display up front''' la información del campo personalizado se mostrará en la vista general del agente. Además, será necesario activar este ''token'' para enviar la información de los ''Custom Fields'' a la Metaconsola y poder mostrarla en la vista de la [[Pandora:Metaconsole:Documentation_es:Visualization#Agentes agente|Metaconsola]] y trabajar en la [[Pandora:Metaconsole:Documentation_es:Visualization#Vista_campos_personalizados| ''Custom Field View'']] con estos datos:
  
{{Warning|Si se activa el parámetro "Enabled combo", "Password type" quedará inhabilitado.}}
+
[[Image:vW9D9s2l9u.png|center|550px|"Display up front" activado]]
  
<br>
 
<center>
 
[[image:customfields2.JPG|center|800px]]
 
</center>
 
<br>
 
  
Estos custom fields también se pueden pasar desde el fichero de configuración del agente, utilizando el siguiente token de configuración:
+
[[Image:eqyIkxu4qJ.png|center|800px]]
  
custom_field1_name Model
+
[[Image:x1fYvcHCZt.png|center|500px]]
custom_field1_vale i386
 
 
Este ejemplo, permite usar un campo personalizado de agente definido en el .conf del agente.
 
  
== Monitorización con agente software ==
+
* '''Enabled combo''': Una vez activado, en la ventana de configuración del custom field correspondiente aparecerá un nuevo campo para introducir los valores del combo separados por comas. Este parámetro permite activar la configuración de parámetros seleccionables desde un desplegable.
  
Los agentes software se encuentran en ejecución en los sistemas de los cuales recogen información. '''Cada uno de los chequeos''' que hacen sobre el sistema, como uso de CPU, memoria libre o espacio en disco, corresponde a un '''módulo'''.
+
{{Warning|Si se activa el parámetro "Enabled combo", "Password type" quedará inhabilitado.}}
Por tanto, cada uno de estos módulos recoge un único dato en cada ejecución.
 
  
También existen algunas ''directivas'' propias del agente que sirven para recoger ciertos datos directamente del sistema operativo (p.e: Uso de CPU, memoria, eventos, etc). Con estas directivas propias del agente, no hace falta ejecutar comandos. Consulte la documentación de configuración del agente para un detalle más completo.
+
Los ''custom fields'' también se pueden pasar desde el fichero de configuración del agente, utilizando el siguiente ''token'' de configuración, por ejemplo:
  
<br>
+
custom_field1_name Model
[[File:Agent-monitoring.png|500px|center]]
+
custom_field1_vale i386
<br>
 
  
Los agentes software de Pandora FMS utilizan los comandos propios del sistema operativo en el que se encuentran instalados para obtener la información para cada uno de sus módulos. El servidor de datos (dataserver) de Pandora FMS  procesa y almacena en la base de datos toda la información generada por los agentes software, que le hacen llegar sus datos en un fichero XML.
+
==== Parámetros de configuración comunes ====
  
<br>
+
Parámetros más importantes para la configuración básica del agente (mayores detalles en [[Pandora:Documentation es:Configuracion#Agentes_software_de_Pandora_FMS|Agentes software de Pandora FMS]]):
[[File:Esquema-3.png|center|650px]]
 
<center>''Esquema lógico de un agente/agente fisico''</center>
 
<br>
 
  
En el archivo de configuración del agente los módulos están definidos con la siguiente estructura básica de texto:
+
*'''server_ip''': Dirección IP del servidor de Pandora FMS.
 +
*'''server_path''': Ruta de la carpeta de entrada ''incoming'' del servidor Pandora FMS, por defecto ''/var/spool/pandora/data_in''.
 +
*'''temporal''': Carpeta, por defecto ''/tmp''.
 +
*'''logfile''': Archivo de log del Agente Software, por defecto ''/var/log/pandora/pandora_agent.log''.
 +
*'''interval''': Intervalo de ejecución del agente, por defecto 300 segundos.
 +
*'''debug''': Al estar activado (valor 1) fija el modo de depuración ''debug'', así no envía los XML al servidor para poder analizar el XML generado.
 +
*'''agent_name''': Nombre, por defecto el ''hostname''.
  
module_begin
 
module_name ''your module name''
 
module_type ''generic_data''
 
module_exec ''your command''
 
module_description ''your description''
 
module_end
 
  
Un caso real:
+
Ejemplo en ambiente '''*nix''':
  
  module_begin
+
  server_ip      192.168.1.1
  module_name Files data_in
+
  server_path    /var/spool/pandora/data_in  
  module_type generic_data
+
  temporal        /tmp
  module_exec ls /var/spool/pandora/data_in | wc -l
+
  logfile        /var/log/pandora/pandora_agent.log
  module_description Number of files incoming dir
+
interval        300
  module_end
+
debug          0
 +
agent_name      box01
 +
server_port    41121
 +
  transfer_mode  tentacle
 +
  remote_config    1
  
La línea ''module_exec'' contiene el comando que se ejecutará para recoger la información. El valor devuelto por esa ejecución será el dato que obtendrá el módulo y será mostrado en la monitorización. Otro comando para obtener información mediante ''module_exec'' sería:
+
Ejemplo en ambiente '''MS Windows®''':
  
  module_exec vmstat 1 2 | tail -1 | awk '{ print $13 }'
+
  server_ip      192.168.1.1
 +
server_path    /var/spool/pandora/data_in
 +
temporal        "C:\Program Files\pandora_agent\temp"
 +
logfile        "C:\Program Files\pandora_agent\pandora_agent.log"
 +
interval        300
 +
debug          0
 +
agent_name      box02
 +
server_port    41121
 +
transfer_mode  tentacle
 +
remote_config  1
  
Para recoger la información el agente ejecutará el comando en la shell igual que si lo hiciera un operador, por lo que ante la duda siempre es aconsejable lanzar el comando manualmente y analizar la salida:
+
==== Grupos protegidos por contraseña ====
  
$> vmstat 1 2 | tail -1 | awk '{ print $13 }'
+
Por defecto, cuando un agente envía datos por primera vez al servidor de Pandora FMS se añade de forma automática al grupo que se haya definido en el fichero de configuración del agente. Esto significa que, en la práctica, cualquiera puede añadir un agente a un grupo si conoce el nombre del grupo. Esto podría suponer un problema si varios clientes comparten su instancia de Pandora FMS o si quiere controlar lo que hay en cada grupo.
  
El valor devuelto por la ejecución será almacenado en el XML como dato del módulo. Se puede indicar cualquier cosa en la línea ''module_exec'' mientras la salida sea compatible con los valores aceptados por Pandora (numérico, alfanumérico o booleano), por lo que es posible indicar scripts personalizados:
+
Es posible configurar de manera opcional una contraseña para un grupo desde la Consola de pandora FMS. Un agente no se añadirá a un grupo a menos que se haya especificado la contraseña correcta en el fichero de configuración del agente.
  
module_exec myScript.pl --h 127.0.0.1 -v cpu
+
===== Ejemplo =====
  
De nuevo el agente ejecutaría el comando en la shell y recogería el resultado, igual que si un operador escribiera en la shell:
+
Para configurar una contraseña para un grupo, vaya al ''editor de grupos'' y haga clic en ''editar'', introduzca la contraseña del grupo y guarde sus cambios:
  
$> myScript.pl --h 127.0.0.1 -v cpu
+
[[File:Passgr1.JPG|center|600px]]
  
Cuando un agente software arranca y se ejecuta por primera vez, envía su fichero XML al servidor de Pandora FMS, que crea automáticamente el nuevo agente con todos sus módulos.
+
Para añadir un agente nuevo a este grupo, edite su fichero de configuración y añada la siguiente opción de configuración:
  
=== Tipos de módulos ===
+
  group_password <password>
  
A continuación se detallan los tipos de módulos posibles en agentes software en función del tipo de dato devuelto:
+
{{Tip|Recuerde reiniciar el servicio del Agente Software para hacer efectivos los cambios. Luego el agente debe crearse correctamente en la Consola de Pandora FMS.}}
  
* '''generic_data''': Datos numéricos y de coma flotante.
+
=== Módulos en Agentes y Agentes Software ===
* '''generic_data_inc''': Tipo de datos numéricos crecientes. Almacena la diferencia entre el dato anterior y el dato actual divida por el tiempo transcurrido en segundos, mostrando la tasa por segundo. Este tipo de datos se utiliza para contar el "nº de veces por segundo" de algo, como por ejemplo, entradas en un log/seg, bytes recibidos/seg, conexiones entrantes/seg, etc.
 
* '''generic_data_inc_abs''': Tipo de datos numéricos crecientes absolutos. Almacena la diferencia entre el dato anterior y el dato actual, sin realizar la división entre los segundos transcurridos, por lo que el valor corresponderá al incremento total entre las dos ejecuciones, y no al incremento por segundo. Este tipo de datos se utiliza para contar el número de veces de algo, como por ejemplo, entradas en un log, bytes totales recibidos, cantidad de conexiones entrantes, etc.
 
* '''generic_proc''': Tipo de datos booleano. Donde un valor 0 significa Falso o incorrecto, y valores por encima de cero significan Cierto o correcto. Los tipos ''generic_proc'' traen preconfigurados los estados crítico (0) y correcto (1 o superior).
 
* '''generic_data_string''': Tipo de datos alfanuméricos (texto).
 
* '''async_data''': Tipo de datos numéricos asíncronos. Igual que generic_data pero para datos asíncronos, que sólo se actualizan cuando existe un cambio. Los tipos de datos asíncronos no tienen una periodicidad definida de cuando podemos obtener datos.
 
* '''async_string''': Tipo de datos alfanuméricos asíncronos. Igual que generic_string pero para datos asíncronos, que sólo se actualizan cuando existe un cambio. Es el tipo de datos que deberíamos usar para monitorizar búsquedas dentro de logs, o visores de eventos, ya que podemos tener un dato por segundo o no tener uno en varios días.
 
* '''async_proc''': Tipo de datos booleanos asíncronos. Igual que generic_proc pero para datos asíncronos, que sólo se actualizan cuando existe un cambio.
 
* '''Modulo de imagen''': Utilizan como base un módulo de tipo cadena de texto (generic_data_string o async_string). Si el dato que contiene el módulo es una imagen codificada en base64, es decir, si parte de la cadena de texto tiene "data:image", será identificado como una imagen y habilitará en las vistas que lo listen un enlace a una ventana para visualizar la imagen, además de mostrarse en su respectivo histórico un contenido de las distintas imágenes que formarían las cadenas almacenadas.
 
  
El agente software ya viene configurado para enviar ciertos datos del sistema en el que se instala; éstos suelen ser (dependiendo de la versión):
+
==== Tipos de módulos ====
  
* CPU de sistema.
+
En función del tipo de dato devuelto:
* Espacio libre en disco.
 
* Memoria libre.
 
* Monitor del estado de programas y/o servicios.
 
  
=== Intervalos en los módulos locales ===
+
* '''generic_data''': datos numéricos y de coma flotante.
 +
* '''generic_data_inc''': tipo de datos numéricos crecientes. Almacena la diferencia entre el dato anterior y el dato actual dividida por el tiempo transcurrido en segundos, mostrando la tasa por segundo. Se utiliza para contar los ciclos por segundo (Hertz) de algo, como por ejemplo, entradas en un log/seg, bytes recibidos/seg, conexiones entrantes/seg, etc.
 +
* '''generic_data_inc_abs''': tipo de datos numéricos crecientes absolutos. Almacena la diferencia entre el dato anterior y el dato actual, sin realizar la división entre los segundos transcurridos, por lo que el valor corresponderá al incremento total entre las dos ejecuciones, sin importar el factor tiempo. Este tipo de datos se utiliza para contar el número de veces de algo, como por ejemplo, entradas en un log, bytes totales recibidos, cantidad de conexiones entrantes, etc.
 +
* '''generic_proc''': tipo de datos ''booleano'', cero (0) significa Falso o incorrecto (preconfigurado como "estado crítico") y valores por encima de cero significan Cierto o correcto.
 +
* '''generic_data_string''': tipo de datos alfanuméricos (texto).
 +
* '''async_data''': contiene un valor generic_data pero solo se actualizan cuando existe un cambio. Los tipos de datos asíncronos no tienen una periodicidad de tiempo definida.
 +
* '''async_string''': igual que async_data pero con dato tipo generic_string. Útil para monitorizar búsquedas dentro de ''logs'' o visores de eventos.
 +
* '''async_proc''': igual que async_data pero con dato tipo generic_proc (''booleano'').
 +
* '''Modulo de imagen''': utilizan como base un módulo de tipo cadena de texto (generic_data_string o async_string). Si el dato que contiene el módulo es una imagen codificada en base64,(encabezado "data:image") será identificado como una imagen y habilitará en las vistas  un enlace a una ventana para recuperar la imagen. Además se mostrarán en su respectivo histórico un contenido de las distintas imágenes que conforman las cadenas almacenadas.
  
Los módulos locales (o de agente software) tienen todos como "base" el intervalo de su agente. Es decir, si un agente tiene un intervalo de 5 minutos (300 segundos), todos los módulos tendrán por defecto un intervalo de 5 minutos. Podrá hacer que un módulo tenga un intervalo MAYOR, pero nunca podrá hacer que sea menor que el intervalo base del agente, ya que el intervalo de un módulo se define como un multiplicador del intervalo del agente.
+
==== Intervalos en los módulos locales ====
  
Si un agente tiene un intervalo de 300 y un modulo de ese agente tiene la configuración siguiente:
+
Los módulos locales (o de agente software) tienen todos como "base" el intervalo de su agente. Sin embargo, pueden tomar valores múltiplos de esa base si modifica el parámetro module_interval con un multiplicar entero mayor que cero; por ejemplo:
  
 
  module_interval 2
 
  module_interval 2
  
El módulo del intervalo sera de 300x2. El parámetro module_interval solo admite valores enteros mayores de cero.
+
Si un agente tiene un intervalo de 300, el módulo del intervalo será de 300x2 (600).
  
=== Interfaz de creación de módulos ===
+
==== Interfaz de creación de módulos ====
  
(Sólo Enterprise)
+
{{Tip|Funcionalidad solo para '''versión Enterprise'''; la configuración remota del Agente Software respectivo debe estar habilitada.}}
  
En la versión Enterprise es posible crear y gestionar módulos locales de los agentes software si tienen el parámetro ''remote_config 1''. En caso de no disponer de la versión Enterprise, todas estas operaciones deberán hacerse directamente sobre el fichero de configuración del agente software, localmente en el sistema donde el agente se encuentra instalado.
+
La creación de módulos locales en la consola se realiza mediante un formulario donde, además de la configuración común de todo módulo (umbrales, tipo, grupo, etcétera) dispone de una caja de texto donde especificar los datos de configuración a establecer en el fichero de configuración del Agente Software.
  
La creación de módulos locales en la consola se realiza mediante un formulario donde, además de la configuración común de todo módulo (umbrales, tipo, grupo...). Se dispone de una caja de texto donde especificar los datos de configuración que irán en el fichero de configuración del agente software.
 
 
''Creación de un modulo con el remote config del agente habilitado:''
 
<center>
 
<br><br>
 
 
[[Image:local_module_editor.png|center|800px]]
 
[[Image:local_module_editor.png|center|800px]]
<br><br>
 
</center>
 
  
Junto a esa caja de texto hay '''dos botones''', uno para '''crear una estructura básica''' de configuración y otro para '''comprobar que los datos de configuración son correctos'''. Esta comprobación se refiere a los parámetros básicos, comprobando que comience por module_begin, termine por module_end, tenga un tipo válido y un nombre. Otros parámetros podrían estar configurados erróneamente y no sería detectado.
+
* Al hacer clic en el botón '''Load basic (template)''', se borrará el contenido de ''Data configuration'' con una plantilla básica que deberemos modificar de acuerdo a la necesidad de monitorización.
 +
* Una vez modificado, al hacer clic en '''Check (syntax)''' verificará que la sintaxis de plantilla siga siendo correcta, sin embargo, el resto de los comando no serán comprobados.
  
'''El campo nombre y el combo tipo están ligados a los parámetros module_name y module_type de los datos de configuración'''. Por lo que al cambiar el nombre del módulo en el campo nombre, se cambiará automáticamente el nombre en la configuración y viceversa. Igualmente al seleccionar un tipo en el combo se cambiará el tipo de los datos de configuración y cuando se escriba un tipo correctamente en la caja de configuración se seleccionará el mismo en el combo.
+
Cuando un módulo es cargado desde un componente local, puede tener macros. Si tiene macros, la caja de configuración estará oculta y aparecerá un campo por cada macro, ver más información en [[Pandora:Documentation_es:Plantillas_y_Componentes#Macros|Plantillas y componentes]]
  
Cuando un módulo es cargado desde un componente local, puede tener macros. Si tiene macros, la caja de configuración estará oculta y aparecerá un campo por cada macro. Esta característica se explica en profundidad en la sección de [[Pandora:Documentation_es:Plantillas_y_Componentes#Macros|Plantillas y componentes]]
+
=== Monitorización condicionada ===
  
=== Monitorización condicionada ===
 
 
==== Postcondiciones ====
 
==== Postcondiciones ====
  
El agente software de Pandora FMS soporta la ejecución de comandos y scripts a modo de postcondiciones. Esto quiere decir que se podrían '''realizar acciones dependiendo del valor obtenido en la ejecución del módulo'''.
+
El Agente Software soporta la ejecución de comandos y ''scripts'' en modo de postcondiciones. Esto quiere decir que se pueden '''realizar acciones dependiendo del valor obtenido en la ejecución del módulo'''.
  
Mediante el parámetro ''module_condition'' indicaremos un valor o rango de valores y la ejecución a realizar en caso de que el módulo se encuentre entre estos valores:
+
===== Ejemplo 1 =====
 
 
module_begin
 
module_name CPU_Usage_Condition
 
module_type generic_data
 
module_exec get_cpu_usage.pl
 
module_condition < 20 add_processes.sh
 
module_end
 
  
Se pueden especificar múltiples condiciones para un mismo módulo. Por ejemplo:
+
Mediante el parámetro ''module_condition'' indicaremos un valor (o rango de valores) y la ejecución a realizar en caso de que el dato obtenido cumpla con la condición (uso de CPU menor al 20%):
  
 
  module_begin
 
  module_begin
Line 253: Line 219:
 
  module_type generic_data
 
  module_type generic_data
 
  module_exec get_cpu_usage.pl
 
  module_exec get_cpu_usage.pl
module_condition (90, 100) remove_processes.sh
 
 
  module_condition < 20 add_processes.sh
 
  module_condition < 20 add_processes.sh
 
  module_end
 
  module_end
  
Ejemplos:
+
===== Ejemplo 2 =====
  
Ejecución cuando el valor del módulo es menor de 20:
+
Se pueden especificar múltiples condiciones para un mismo módulo, en un rango y con un umbral mínimo (matemáticamente, se ejecuta una o ninguna de las dos opciones ) :
  
 
  module_begin
 
  module_begin
Line 265: Line 230:
 
  module_type generic_data
 
  module_type generic_data
 
  module_exec get_cpu_usage.pl
 
  module_exec get_cpu_usage.pl
 +
module_condition (90, 100) remove_processes.sh
 
  module_condition < 20 add_processes.sh
 
  module_condition < 20 add_processes.sh
 
  module_end
 
  module_end
  
En el ejemplo anterior, supongamos que el script get_cpu_usage.pl devuelve 18, en este caso el agente software ejecutará el script add_proceses.sh.
+
===== Ejemplo 3 =====
  
Ejecución con dos postcondiciones:
+
Similar al ejemplo anterior, pero puede ejecutar ambas condiciones o una o ninguna (probar con valores escogidos: si es 5, 15 ó 30):
  
 
  module_begin
 
  module_begin
Line 280: Line 246:
 
  module_end
 
  module_end
  
Supongamos que el dato es 15, en este caso el agente sólo ejecutará el script add_processes.sh. Si el valor del dato fuera 6, entonces el agente ejecutaría los dos scripts start_new_server.sh y add_processes.sh
+
==== Precondiciones ====
  
==== Precondiciones ====
+
El parámetro '''module_precondition''' permite evaluar una condición antes de la ejecución del módulo y con el resultado decidir si el módulo se debe ejecutar o no.
  
El parámetro '''module_precondition''' permite evaluar una condición antes de la ejecución del módulo y con el resultado decidir si el módulo se debe ejecutar o no. La definición en el archivo de configuración es:
+
{{Tip|Se debe hacer la abstracción mental de asignar el valor a module_precondition y luego comparar con la condición}}
  
module_begin
+
===== Ejemplo 1 =====
module_name CPU_Usage
 
module_type generic_data
 
module_precondition > 10 number_active_processes.sh
 
module_exec get_cpu_usage.pl
 
module_end
 
  
Se pueden especificar múltiples precondiciones para un mismo módulo:
+
Según el uso de CPU, si los procesos activos son más de diez, obtener el porcentaje de uso del CPU y reportar al servidor Pandora FMS:
  
 
  module_begin
 
  module_begin
Line 299: Line 260:
 
  module_type generic_data
 
  module_type generic_data
 
  module_precondition > 10 number_active_processes.sh
 
  module_precondition > 10 number_active_processes.sh
module_precondition = 1 important_service_enabled.sh
 
 
  module_exec get_cpu_usage.pl
 
  module_exec get_cpu_usage.pl
 
  module_end
 
  module_end
  
En el ejemplo superior tenemos dos precondiciones. Para que el módulo se ejecute se deben cumplir todas las precondiciones, en este caso dos, por ello el módulo sólo se ejecutara cuando el script number_active_processes.sh devuelva un número mayor que 10 y el script important_service_enabled.sh devuelva un 1.
+
===== Ejemplo 2 =====
  
Ejecución del módulo sólo cuando la precondición es mayor de 10:
+
Se pueden especificar múltiples precondiciones para un mismo módulo y se deben cumplir todas:
  
 
  module_begin
 
  module_begin
Line 311: Line 271:
 
  module_type generic_data
 
  module_type generic_data
 
  module_precondition > 10 number_active_processes.sh
 
  module_precondition > 10 number_active_processes.sh
 +
module_precondition > 1 important_service_enabled.sh
 
  module_exec get_cpu_usage.pl
 
  module_exec get_cpu_usage.pl
 
  module_end
 
  module_end
  
En el ejemplo anterior primero se ejecuta el script 'number_active_processes.sh' si el valor devuelto es mayor de 10 entonces se ejecuta el script del módulo. Si el valor devuelto es menor de 10 el módulo no se ejecutará.
+
En este caso el módulo se ejecuta solo si hay más de diez procesos activos y si al menos uno de ellos es un proceso importante.
  
 
=== Monitorización intensiva ===
 
=== Monitorización intensiva ===
Line 320: Line 281:
 
Existen ciertos módulos que tienen una importancia especial, tales como procesos o servicios críticos en ejecución. Para poder tener una monitorización más controlada de estos casos existe la monitorización intensiva.
 
Existen ciertos módulos que tienen una importancia especial, tales como procesos o servicios críticos en ejecución. Para poder tener una monitorización más controlada de estos casos existe la monitorización intensiva.
  
Consiste en avisar en un intervalo más corto de que ha aparecido un problema sin necesidad de reducir el intervalo general del agente.
+
Consiste en avisar en un intervalo más corto de que ha aparecido un problema serio sin necesidad de reducir el intervalo general del agente.
  
El agente software presenta estos dos parámetros de configuración:
+
Configuración en Agente Software:
* '''interval''': Tiempo de muestreo del agente en segundos. Es el intervalo general para todos los módulos locales. Parámetro obligatorio.
+
* '''interval''': obligatorio, tiempo de muestreo del agente en segundos, es el intervalo general para todos los módulos locales.
* '''intensive_interval''': Tiempo en el cual se nos avisará de un problema en los módulos especialmente críticos. Parámetro opcional.
+
* '''intensive_interval''': opcional, tiempo en que avisará si existe algún problema.
  
A nivel de módulo, se utilizará el parámetro ''module_intensive_condition'' para determinar bajo qué condición se notificará del estado del módulo en el tiempo definido por el intervalo intensivo en ''intensive_interval''.
+
Configuración en módulo:
  
* '''module_intensive_condition = 0''': Si el módulo obtiene como resultado el valor indicado en este parámetro (en este caso 0), se notificará en el intervalo intensivo definido en el agente.
+
* '''module_intensive_condition = <valor>''': si el módulo obtiene como resultado el <valor> indicado en este parámetro, notificará en el intervalo intensivo antes definido.
  
En el siguiente ejemplo mostramos la configuración de un agente para el que se quiere avisar en 10 segundos si el proceso sshd ha dejado de funcionar:
+
==== Ejemplo ====
 +
 
 +
El servicio '''sshd''' es muy importante pues es utilizado para conectar por ''shell'' de manera remota, necesitamos monitorizar su funcionamiento:
  
 
  intensive_interval 10
 
  intensive_interval 10
Line 342: Line 305:
 
  module_end
 
  module_end
  
Si el servicio se cae, se le notificará en los próximos 10 segundos, pero si el servicio continúa funcionando se notificará cada 5 minutos de forma normal.
+
Si el servicio está ausente, se notificará en los próximos 10 segundos, si está funcionando notificará cada 5 minutos (intervalo normal, 300 segundos).
  
 
=== Monitorización programada ===
 
=== Monitorización programada ===
  
El agente software soporta la definición de módulos programados que se ejecutan en los instantes definidos. La sintaxis usada es la misma que la del fichero crontab. Un ejemplo de la definición del módulo sería:
+
El Agente Software soporta la definición de módulos programados que se ejecutan en los instantes definidos. La sintaxis usada es la misma que la del fichero crontab. Un ejemplo de la definición del módulo para que ejecute todos los días lunes entra las 12 y las 15 horas:
  
 
  module_begin
 
  module_begin
Line 355: Line 318:
 
  module_end
 
  module_end
  
En este ejemplo, el módulo se ejecuta todos los Lunes entre las 12 y las 15 horas.
+
Para ejecutar en el minuto 10 de cada hora:
 
 
Si por ejemplo queremos ejecutar el módulo, a la hora y 10 minutos la definición del módulo sería:
 
  
 
  module_begin
 
  module_begin
Line 366: Line 327:
 
  module_end
 
  module_end
  
{{Tip|Hay que tener en cuenta que si utilizamos un intervalo que haga que el módulo no reporte datos, este módulo se pondrá en estado "desconocido". Utilice módulos asíncronos para estos casos.}}
+
{{Tip|Si utilizamos un intervalo que ocasione que el módulo no reporte datos, este módulo se pondrá en estado "desconocido". Para estos casos utilice módulos asíncronos.}}
 
 
== Monitorización específica para Windows ==
 
 
 
El agente software para sistemas Windows tiene funcionalidades específicas para esta plataforma que ayudan a realizar la monitorización de una forma más sencilla. A continuación explicaremos las funcionalidades y aplicaremos unos ejemplos de las mismas.
 
 
 
=== Monitorización de procesos y watchdog de procesos ===
 
 
 
==== Monitorización de procesos ====
 
 
 
El parámetro '''module_proc''' comprueba si un determinado nombre de proceso está operando en esta máquina. La definición del módulo sería:
 
 
 
module_begin
 
module_name CMDProcess
 
module_type generic_proc
 
module_proc cmd.exe
 
module_description Process Command line
 
module_end
 
 
 
Si el nombre del proceso contiene espacios en blanco '''no use «" "»'''. El nombre del proceso debe ser el mismo que muestra el Administrador de Tareas (taskmngr) de Windows incluyendo la extensión .exe, es importante '''respetar mayúsculas y las minúsculas'''.
 
 
 
Si queremos que el agente software de Windows nos avise inmediatamente cuando un proceso deja de funcionar tenemos que añadir el parámetro '''module_async yes''', la definición del módulo quedaría así:
 
 
 
module_begin
 
module_name CMDProcess
 
module_type generic_proc
 
module_proc cmd.exe
 
module_async yes
 
module_description Process Command line
 
module_end
 
 
 
====Watchdog sobre procesos====
 
 
 
La funcionalidad de watchdog del agente software de Pandora FMS para Windows permite actuar inmediatamente ante la caída de un proceso, levantándolo de nuevo. El watchdog  '''sólo funciona si el módulo es asíncrono'''.
 
 
 
La definición de un módulo con watchdog sería parecida a esta:
 
 
 
module_begin
 
module_name Notepad
 
module_type generic_data
 
module_proc notepad.exe
 
module_description Notepad
 
module_async yes
 
module_watchdog yes
 
module_user_session yes
 
module_start_command c:\windows\notepad.exe
 
module_startdelay 3000
 
module_retrydelay 2000
 
module_retries 5
 
module_end
 
 
 
En el ejemplo anterior, el watchdog se activará cada vez que el proceso notepad.exe esté desactivado y se ejecutará el comando c:\windows\notepad.exe. Además, si vemos los otros parámetros de configuración del watchdog veremos que la reactivación del proceso se intentará 5 veces con un tiempo de espera inicial de 3 segundos y con un tiempo de espera entre reintentos de 2 segundos. En este ejemplo, el proceso notepad.exe se lanzará en la sesión del usuario.
 
 
 
=== Monitorización de servicios y watchdog de servicios ===
 
 
 
====Monitorización de servicios====
 
 
 
El parámetro '''module_service''' comprueba si un determinado servicio se está ejecutando en la máquina. La definición de un módulo usando este parámetro sería:
 
 
 
module_begin
 
module_name Service_Dhcp
 
module_type generic_proc
 
module_service Dhcp
 
module_description Service DHCP Client
 
module_end
 
 
 
Si el nombre del servicio contiene espacios en blanco no use «" "». Para encontrar el nombre del servicio puede mirar el que aparece como Service Name en el gestor de servicios de Windows, es importante '''respetar mayúsculas y las minúsculas'''.
 
 
 
Igual que con los procesos si queremos que el agente software de Pandora nos avise inmediatamente cuando un servicio se cae tenemos que añadir el parámetro '''module_async yes''', la definición del módulo quedaría así:
 
 
 
module_begin
 
module_name Service_Dhcp
 
module_type generic_proc
 
module_service Dhcp
 
module_description Service DHCP Client
 
module_async yes
 
module_end
 
 
 
====Watchdog de servicios====
 
 
 
Igual que para los procesos, para los servicios existe un modo watchdog que permite inicializar un servicio cuando está caido. Un ejemplo de definición de módulo con watchdog para servicios sería:
 
 
 
module_begin
 
module_name ServiceSched
 
module_type generic_proc
 
module_service Schedule
 
module_description Service Task scheduler
 
module_async yes
 
module_watchdog yes
 
module_end
 
 
 
La definición del watchdog para servicios no requiere ningún parámetro adicional como el de procesos, porque esa información ya está dentro de la definición del servicio.
 
 
 
=== Monitorización de recursos básicos ===
 
 
 
Este apartado muestra cómo monitorizar los recursos básicos de una máquina Windows.
 
 
 
==== Monitorizando la CPU ====
 
 
 
El parámetro '''module_cpuusage''' devuelve el porcentaje de CPU en uso.
 
 
 
Es posible monitorizar las cpu por id con la siguiente definición de módulo:
 
 
 
module_begin
 
module_name CPU_1
 
module_type generic_data
 
module_cpuusage 1
 
module_description CPU usage for CPU 1
 
module_end
 
 
 
También puede monitorizar la media de uso de todas las CPUs del sistema con el módulo:
 
 
 
module_begin
 
module_name CPU Usage
 
module_type generic_data
 
module_cpuusage all
 
module_description CPU Usage for all system
 
module_end
 
 
 
==== Monitorizando la memoria ====
 
 
 
Para monitorizar la memoria existen dos parámetros: '''module_freememory''', que devuelve la cantidad de memoria libre del sistema, y '''module_freepercentmemory''',  que devuelve el porcentaje de memoria libre del sistema.
 
 
 
Un módulo de ejemplo usando '''module_freememory''' sería:
 
 
 
module_begin
 
module_name FreeMemory
 
module_type generic_data
 
module_freememory
 
module_description Non-used memory on system
 
module_end
 
 
 
Un módulo de ejemplo usando '''module_freepercentmemory''' sería:
 
 
 
module_begin
 
module_name FreePercentMemory
 
module_type generic_data
 
module_freepercentmemory
 
module_end
 
 
 
==== Monitorizando el disco ====
 
 
 
Para monitorizar el disco disponemos de dos parámetros: '''module_freedisk''' , que devuelve la cantidad de espacio libre, y '''module_freepercentdisk''', que devuelve el porcentaje de espacio libre. Ambos módulos requieren como parámetro la unidad de disco a monitorizar, '''no olvide el caracter «":"»'''.
 
 
 
Un módulo que usa el parámetro '''module_freedisk''' se define así:
 
 
 
module_begin
 
module_name FreeDisk
 
module_type generic_data
 
module_freedisk C:
 
module_end
 
 
 
Un ejemplo de módulo que usa el parámetro '''module_freepercentdisk''' se define así:
 
 
 
module_begin
 
module_name FreePercentDisk
 
module_type generic_data
 
module_freepercentdisk C:
 
module_end
 
 
 
==== Consultas WMI ====
 
 
 
El agente software de Pandora permite extraer información a través de consultas WMI, que es una fuente de información ampliamente utilizada para obtener información del sistema y externa a este.
 
 
 
Usando el parámetro '''module_wmiquery''' el agente software permite ejecutar localmente cualquier consulta WMI. Para realizar la consulta se define la query WMI en el parámetro '''module_wmiquery''' y la columna que contiene la información a monitorizar con el parámetro '''module_wmicolumn'''.
 
 
 
Por ejemplo, podemos obtener una lista de los servicios instalados:
 
 
 
module_begin
 
module_name Services
 
module_type generic_data_string
 
module_wmiquery Select Name from Win32_Service
 
module_wmicolumn Name
 
module_end
 
 
 
Usando WMI también podemos obtener la carga actual de CPU:
 
 
 
module_begin
 
module_name CPU_Load
 
module_type generic_data
 
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
 
module_wmicolumn LoadPercentage
 
module_end
 
  
 
== Chequeos remotos con el agente software ==
 
== Chequeos remotos con el agente software ==
  
Los chequeos remotos realizados con el agente software facilitan la monitorización de redes complejas y con requisitos especiales, por ejemplo aquellos relacionados con la seguridad.
+
Cuando servidor principal de Pandora FMS no tiene acceso para realizar chequeos remotos (generalmente por cuestiones de seguridad), un Agente Software es capaz de tomar su lugar para dichas tareas e incluso puede distribuirlos en ''agentes broker''
 
 
Esta forma de trabajar se utiliza habitualmente cuando se quieren lanzar chequeos remotos sobre sistemas a los cuales el servidor principal de Pandora FMS no tiene acceso, para lo que podemos instalar un agente software, ejecutar desde ese punto chequeos remotos y distribuirlos en ''agentes broker''.
 
 
 
En esta sección se explica cómo utilizar esta característica de los agentes software.
 
  
 
=== Chequeos ICMP ===  
 
=== Chequeos ICMP ===  
Line 562: Line 337:
 
Los chequeos ICMP o ping son muy útiles para saber si una máquina está conectada o no a una red. De esta forma, un solo agente software podría monitorizar el estado de todas las máquina de una forma sencilla.
 
Los chequeos ICMP o ping son muy útiles para saber si una máquina está conectada o no a una red. De esta forma, un solo agente software podría monitorizar el estado de todas las máquina de una forma sencilla.
  
'''Unix'''
+
;Unix
  
Usando el agente Linux podemos usar los comandos del sistema para crear un módulo que realice un chequeo ping. La definición del módulo sería:
+
Usando los comandos del sistema (todos los parámetros en la "línea de comando" module_exec):
  
 
  module_begin
 
  module_begin
Line 572: Line 347:
 
  module_end
 
  module_end
  
En este ejemplo realizamos un ping al host 192.168.100.54, si queremos comprobar otros hosts sólo tenemos que cambiar la IP  
+
Nota: sustituir "192.168.100.54" por la dirección IP a monitorizar.
 
 
'''Windows'''
 
 
 
El agente software para Windows soporta unos parámetros de configuración específicos para configurar el chequeo ping. Estos chequeos son los siguientes:
 
  
* module_ping_count x: Número de paquetes ECHO_REQUEST a enviar (1 por defecto).
+
;MS Windows®.
* module_ping_timeout x: Timeout en segundos de espera para cada respuesta (1 por defecto).
 
* module_advanced_options: Opciones avanzadas para ping.exe.  
 
  
Un ejemplo de configuración de módulo podría ser:
+
Los parámetros se deben especificar en module_ping_count (número de paquetes, 1 por defecto) y module-ping_timeout (tiempo límite en segudos, 1 por defecto); ejemplo:
  
 
  module_begin
 
  module_begin
Line 592: Line 361:
 
  module_end
 
  module_end
  
En este ejemplo realizamos el mismo chequeo que antes, pero desde el agente software para Windows.
+
Nota: module_advanced_options permite opciones avanzadas para ping.exe.  
  
 
=== Chequeos TCP ===  
 
=== Chequeos TCP ===  
  
Los chequeos TCP son útiles para verificar que los puertos de una máquina permanecen abiertos. Esto puede ser interesante para saber si una aplicación esta conectada o no a la red.
+
Los chequeos TCP son útiles para verificar que los puertos de una máquina permanecen abiertos y permiten conocer si una aplicación conecta o no a la red.
  
'''Unix'''
+
;Unix
  
Con el agente software para Unix podríamos realizar un chequeo TCP usando el siguiente módulo:
+
Con el comando '''nmap''' y sus parámetros de configuración en la línea de comando, a una dirección IP chequeamos si el puerto 80 está abierto (tiempo de espera de respuesta de 5 segundos):
  
 
  module_begin
 
  module_begin
Line 609: Line 378:
 
  module_end
 
  module_end
  
Con este módulo comprobamos que el puerto 80 del host 192.168.100.54 está abierto o cerrado.
+
;MS Windows®.
  
'''Windows'''
+
Los parámetros se deben especificar en:
  
Si usamos el agente software para Windows disponemos de unos parámetros para configurar el módulo. Los parámetros son:
+
* module_tcpcheck: dirección IP del dispositivo.
 +
* module_port: número de puerto.
 +
* module_timeout: tiempo de espera para la respuesta.
  
* module_tcpcheck: Host al que queremos comprobar
+
Ejemplo:
* module_port: Puerto que queremos comprobar
 
* module_timeout: Timeout para el chequeo
 
 
 
Un ejemplo de definición del módulo sería:
 
  
 
  module_begin
 
  module_begin
Line 628: Line 395:
 
  module_timeout 5
 
  module_timeout 5
 
  module_end
 
  module_end
 
Este módulo sería el equivalente para el agente software de Windows para realizar la comprobación del puerto 80 sobre el host 192.168.100.54.
 
  
 
=== Chequeos SNMP ===
 
=== Chequeos SNMP ===
Line 635: Line 400:
 
Los chequeos SNMP son muy comunes en la monitorización de dispositivos de red para comprobar el estado de interfaces, bytes de entrada/salida, etc.
 
Los chequeos SNMP son muy comunes en la monitorización de dispositivos de red para comprobar el estado de interfaces, bytes de entrada/salida, etc.
  
'''Unix'''
+
;Unix
  
Si usamos el agente software para Unix podemos crear un módulo que use el comando snmpget como el siguiente:
+
Utilizando el comando '''snmpget''', por ejemplo:
  
 
  module_begin
 
  module_begin
Line 645: Line 410:
 
  module_end
 
  module_end
  
Este módulo devuelve el valor del OID .1.3.6.1.2.1.2.2.1.1.148 del host 192.168.100.54.
+
Este módulo devuelve el valor del OID .1.3.6.1.2.1.2.2.1.1.148 del ''host'' 192.168.100.54.
  
'''Windows'''
+
;MS Windows®.
  
Para el agente software de Windows disponemos de los siguientes parámetros:
+
Configuración de los parámetros:
  
 
* module_snmpversion [1,2c,3]: Versión de SNMP (1 por defecto).
 
* module_snmpversion [1,2c,3]: Versión de SNMP (1 por defecto).
Line 657: Line 422:
 
* module_advanced_options: Opciones avanzadas para snmpget.exe.  
 
* module_advanced_options: Opciones avanzadas para snmpget.exe.  
  
Un módulo de ejemplo podría ser:
+
Ejemplo que realiza lo mismo que el ejemplo anterior:
  
 
  module_begin
 
  module_begin
Line 668: Line 433:
 
  module_snmp_oid .1.3.6.1.2.1.2.2.1.1.148
 
  module_snmp_oid .1.3.6.1.2.1.2.2.1.1.148
 
  module_end
 
  module_end
 
Este módulo sería el equivalente Windows para el chequeo anterior realizado con el agente software para Unix.
 
  
 
== Modo Proxy ==
 
== Modo Proxy ==
  
{{warning|Para usar el modo proxy del agente de Pandora FMS en Linux/Unix '''no puede ser ejecutado por el usuario root''', por ello es necesario una instalación especial del agente de Pandora FMS. Puede ver cómo instalar el agente de forma personaliza en la sección [[Pandora:Documentation_es:Instalacion#Instalaci.C3.B3n_personalizada|Instalación personalizada del Agente]]}}
+
{{warning|Para usar el modo proxy del agente de Pandora FMS en Linux/Unix '''no puede ser ejecutado por el usuario root''', por ello es necesario una instalación especial del agente de Pandora FMS. Para ello consulte la [[Pandora:Documentation_es:Instalacion#Instalaci.C3.B3n_personalizada|Instalación personalizada del Agente]]}}
 
 
Los agentes software de Pandora FMS tienen un Modo Proxy que les permite actuar precisamente como un proxy de otros agentes software, redirigiendo los ficheros de datos generados por otros agentes software al servidor de Pandora FMS. El agente software que actua en Modo Proxy también puede realizar tareas de monitorización.
 
  
<br>
+
Los Agentes Software de Pandora FMS tienen un Modo Proxy que les permite redirigir los ficheros de datos generados por otros Agentes Software al servidor de Pandora FMS. El agente software que actúa en Modo Proxy también puede realizar tareas de monitorización.
[[File:Proxy-mode.png|700px|center]]
 
<br>
 
  
El escenario habitual de uso del modo proxy sería cuando nos encontramos con una red en la que sólo una máquina tiene comunicación con el servidor de Pandora FMS y necesitamos monitorizar con agentes software el resto de equipos de esa red. Los otros equipos se comunicarán con el proxy en lugar de con el server.
+
[[Image:Proxy-mode.png|700px|center]]
  
Además del envío de datos a través de XML, el Modo Proxy soporta las características de ''Configuración Remota'' y ''Colecciones de Ficheros''.
+
El modo proxy fue creado para redes de área local donde un solo ordenador está expuesto al Internet, donde se encuentra el servidor de Pandora FMS. Es necesario monitorizar con Agentes Software el resto de equipos de esa red; los otros equipos se comunicarán con el proxy en lugar de con el server. El Modo Proxy también soporta las características de ''Configuración Remota'' y ''Colecciones de Ficheros''.
  
Con todas estas funcionalidades el Modo Proxy ofrece un '''funcionamiento transparente''' de los agentes software en redes con conectividad limitada.
+
Configuración de los parámetros:
  
Para activar el Modo Proxy en un agente software tiene configurar los parámetros:
+
* '''server_ip''': IP del servidor de Pandora FMS.
 +
* '''proxy_mode''': activado (1) o desactivado (0).
 +
* '''proxy_max_connection''': número de conexiones simultáneas del proxy, por defecto 10.
 +
* '''proxy_timeout''': tiempo de espera de respuesta para el proxy, por defecto 1 segundo.
 +
* '''proxy_address''': dirección en la que escucha el proxy.
 +
* '''proxy_port''': puerto en el que escucha el proxy.
  
* server_ip: IP del servidor de Pandora FMS.
+
Ejemplo:
* proxy_mode: Activado (1) o desactivado (0).
 
* proxy_max_connection: Número de conexiones simultaneas del proxy, por defecto 10.
 
* proxy_timeout: Timeout para el proxy, por defecto 1 segundo.
 
  
Un ejemplo de configuración podría ser:
+
  server_ip 172.17.100.230
 
 
  server_ip 192.168.100.230
 
 
  proxy_mode 1
 
  proxy_mode 1
 
  proxy_max_connection 20
 
  proxy_max_connection 20
 
  proxy_timeout 3
 
  proxy_timeout 3
  
Para redirigir la conexión de un agente software sólo tendremos que poner como dirección del servidor de Pandora FMS la del agente con el Modo Proxy activado. Por ejemplo:
+
Para redirigir la conexión de un agente software sólo se debe colocar como dirección del servidor de Pandora FMS la del Agente proxy con el Modo Proxy activado.
  
Nuestro agente en Modo Proxy tiene la IP: 192.168.100.24
+
Por ejemplo, el Agente Software en Modo Proxy tiene la dirección IP 192.168.100.24, el resto de los Agentes Software deben ser configurados con:
 
 
En el agente software que no se puede conectar directamente al servidor de Pandora configuramos el parámetro '''server_ip''' así:
 
  
 
  server_ip 192.168.100.24
 
  server_ip 192.168.100.24
 
Con esta configuración el agente software con comunicación limitada usará el agente software en Modo Proxy para comunicarse con el servidor de Pandora, manteniendo todas sus funcionalidades tales como configuración remota, políticas o colecciones de ficheros.
 
  
 
== Modo Broker ==
 
== Modo Broker ==
  
EL Modo Broker de los agentes software permite a un solo agente realizar chequeos y gestionar la configuración como si se tratara de varios.
+
EL Modo Broker de los Agentes Software permite a un solo agente realizar chequeos y gestionar la configuración como si se tratara de varios distintos.
  
<br>
 
 
[[File:Modo-broker.png|700px|center]]
 
[[File:Modo-broker.png|700px|center]]
<br>
 
  
Cuando se activa el modo broker en un agente software, se crea un nuevo fichero de configuración. A partir de ese momento, el agente software original y el nuevo broker se gestionarán de forma separada con sus ficheros de configuración independientes, como si fuesen dos agentes software totalmente separados en la misma máquina.
+
Cuando se activa el Modo Broker en un Agente Software, se crea un nuevo fichero de configuración. A partir de ese momento, el Agente Software original y el nuevo broker se gestionarán de forma separada con sus ficheros de configuración independientes, como si fuesen dos Agentes Software totalmente separados en la misma máquina.
  
Las utilidades principales del Modo Broker son:
+
Finalidades principales:
  
 
* Enviar datos locales como otro agente. Muy útil para monitorizar instancias software como agente independientes.
 
* Enviar datos locales como otro agente. Muy útil para monitorizar instancias software como agente independientes.
 
* Enviar datos recolectados de chequeos remotos a otras máquinas como si hubiera un agente software instalado en ella.
 
* Enviar datos recolectados de chequeos remotos a otras máquinas como si hubiera un agente software instalado en ella.
  
Para crear un broker sólo tiene que añadir una línea con el parámetro '''broker_agent <nombre_broker>'''. Es posible crear tantos agentes broker como se quiera, añadiendo las correspondientes líneas ''broker_agent'', como estas:
+
Para crear un broker sólo tiene que añadir una línea con el parámetro '''broker_agent <nombre_broker>'''. Es posible crear tantos agentes Broker como se quiera, añadiendo las correspondientes líneas ''broker_agent'':
  
 
  broker_agent dev_1
 
  broker_agent dev_1
Line 737: Line 490:
 
'''NOTA''': Las instancias del modo broker no pueden utilizar colecciones. Si desea utilizar colecciones, debe distribuirlas y/o usarlas en el agente "real" que se utiliza como base en al agente broker, no en una de sus instancias.
 
'''NOTA''': Las instancias del modo broker no pueden utilizar colecciones. Si desea utilizar colecciones, debe distribuirlas y/o usarlas en el agente "real" que se utiliza como base en al agente broker, no en una de sus instancias.
  
'''NOTA''': Los módulos que guardan datos en memoria entre ejecuciones (module_logevent y module_regexp en Windows) no funcionan cuando hay agentes broker configurados.
+
{{Warning|Los módulos que guardan datos en memoria entre ejecuciones (module_logevent y module_regexp en MS Windows®) no funcionan cuando hay agentes broker configurados.}}
  
 
=== Ejemplos de uso del modo Broker ===
 
=== Ejemplos de uso del modo Broker ===
  
==== Monitorizar una base de datos local como otro agente====  
+
==== Monitorizar una base de datos local como otro agente ====  
 
 
En una máquina queremos monitorizar los parámetros básicos (CPU, memoria y disco) y además tenemos instalada una base de datos que queremos monitorizar de forma independiente.
 
 
 
Para realizar la monitorización usaremos la siguiente estructura:
 
 
 
* Agente software instalado: Monitorización de CPU, memoria y disco.
 
* Broker base de datos: Monitorización de estado interno de la base de datos.
 
  
Para ello instalamos un agente software en la máquina que monitorizará los parámetros de CPU, memoria y disco. Además, en la configuración del agente software añadiremos la línea:
+
Como ejemplo, existe un Agente Software instalado que realiza monitorización de CPU, memoria y disco de un ordenador que además ejecuta una base de datos. Para realizar monitorización de forma independiente, añadimos la línea:
  
 
  broker_agent DBApp
 
  broker_agent DBApp
  
Con esto creamos el agente broker con nombre DBApp y por tanto aparecerá el archivo de configuración dbapp.conf. En este archivo añadimos los módulo para realizar los chequeos en la base de datos:
+
Con esto creamos el agente broker con nombre DBApp que genera el archivo de configuración dbapp.conf. Allí agregamos, para monitorizar la base de datos (número de usuarios conectados y número de consultas lentas):
  
 
  module_begin
 
  module_begin
Line 768: Line 514:
 
  module_end
 
  module_end
  
Con este ejemplo aparecerían dos agentes en la consola de Pandora FMS: uno con el nombre de la máquina y los módulos de CPU, memoria y disco y otro llamado DBApp con los módulos Num Users y Num slows queries.
+
La Consola de Pandora FMS mostrará uno con el nombre de la máquina y los módulos de CPU, memoria y disco y, además, otro llamado DBApp con los módulos Num Users y Num slows queries.
 
 
==== Monitorizar dispositivos de forma remota usando brokers====
 
  
Para este ejemplo tenemos un agente software instalado en una máquina Windows monitorizando (CPU, memoria y disco) y necesitamos monitorizar un router con IP 192.168.100.54 sin instalar un agente dentro. Para solucionar el problema podemos usar los brokers.
+
==== Monitorizar dispositivos de forma remota usando brokers ====
  
Creamos un broker con el parámetro:
+
Como ejemplo, existe un Agente Software instalado en una máquina con MS Windows® que monitoriza CPU, memoria y disco. Necesitamos monitorizar un ''router'' con IP 192.168.100.54 sin instalar un agente dentro. Para ello creamos un broker con el parámetro:
  
 
  broker_agent routerFloor5
 
  broker_agent routerFloor5
  
Con esto creamos el agente broker con nombre routerFloor5 y como tenemos un agente software instalado en una máquina Windows podemos monitorizar el router usando los módulos de ping y snmp disponibles. Para ello modificaremos el archivo routerFloor5.conf con las líneas:
+
Con esto creamos el Agente Broker de nombre routerFloor5. Luego al fichero routerFloor5.conf modificar las líneas para albergar los módulos disponibles de ping y snmp:
  
 
  module_begin
 
  module_begin
Line 808: Line 552:
 
  module_end
 
  module_end
  
En este ejemplo, la consola web de Pandora FMS muestra dos agentes: uno es la máquina Windows con los módulos de CPU, memoria y disco y otro es ''routerFloor5'' con los módulos: Ping, Eth 1 up, Eth 2 up.
+
La Consola web mostrará dos agentes: uno es la máquina Windows con los módulos de CPU, memoria y disco y otro es ''routerFloor5'' con los módulos: "Ping", "Eth 1 up"  y "Eth 2 up".
  
==== Monitorización remota de redes inaccesibles====  
+
==== Monitorización remota de redes inaccesibles ====  
  
 
En algunas situaciones es necesario monitorizar dispositivos de forma remota, pero el Servidor Remoto de Pandora FMS no puede acceder directamente a ellos.
 
En algunas situaciones es necesario monitorizar dispositivos de forma remota, pero el Servidor Remoto de Pandora FMS no puede acceder directamente a ellos.
  
<br>
 
<center>
 
 
[[Image:Broker_example_no_access.png|center|790px]]
 
[[Image:Broker_example_no_access.png|center|790px]]
</center>
 
<br>
 
 
En este ejemplo, tenemos que monitorizar de forma remota los dispositivos de una de las sedes de nuestra empresa desde la sede central. El servidor de Pandora FMS está en la sede central conectado por medio de una VPN al resto de sedes y debido a una serie de restricciones el servidor de Pandora FMS no puede acceder remotamente a las máquinas. Para poder monitorizar las sedes usaremos el Modo Broker que permite al agente software enviar XMLs al servidor de Pandora como si se tratase de varios dispositivos distintos.
 
  
En el archivo de configuración del agente software añadiremos tantos brokers como dispositivos a monitorizar, un ejemplo de configuración sería:
+
El agente Software en Modo Broker permite enviar los XMLs al servidor de Pandora como si se tratase de varios dispositivos distintos. Para ello añadiremos tantos brokers como dispositivos a monitorizar, por ejemplo:
  
 
  broker_agent device_1
 
  broker_agent device_1
Line 830: Line 568:
 
  ...
 
  ...
  
Una vez creados los brokers podemos personalizar la monitorización para cada dispositivo accediendo a los archivos de configuración de cada broker, por ejemplo la configuración para la máquina Windows con nombre device_1 es:
+
Una vez creados los brokers podemos personalizar la monitorización para cada dispositivo accediendo a los archivos de configuración de cada broker tal como se ha explicado para cada Agente Software en modo de chequeo remoto.
 
 
module_begin
 
module_name Ping
 
module_type generic_proc
 
module_ping 192.168.100.54
 
module_ping_count 2
 
module_ping_timeout 500
 
module_end
 
 
module_begin
 
module_name CPU_Load
 
module_type generic_data
 
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
 
module_wmicolumn LoadPercentage
 
module_end
 
 
module_begin
 
module_name Mem_Free
 
module_type generic_data
 
module_wmiquery SELECT LoadPercentage FROM Win32_Memory
 
module_wmicolumn FreeMemory
 
module_end
 
 
module_begin
 
module_name Disk_Free
 
module_type generic_data
 
module_wmiquery SELECT LoadPercentage FROM Win32_Disk
 
module_wmicolumn FreeSpace
 
module_end
 
 
 
Con esta configuración conseguimos realizar una configuración remota y enviar los archivos al servidor de Pandora FMS a pesar de las restricciones de comunicación entre las sedes de la empresa.
 
  
 
==== Distribuir la carga de monitorización con brokers ====
 
==== Distribuir la carga de monitorización con brokers ====
  
El Modo Broker también es muy útil para distribuir la carga de monitorización en varios puntos de la red.
 
 
<br>
 
<center>
 
 
[[Image:Broker_scalation_example.png|center|800px]]
 
[[Image:Broker_scalation_example.png|center|800px]]
</center>
 
<br>
 
 
En este ejemplo, nuestra arquitectura se compone de varias redes con nombres de la A a la Z con 1000 dispositivos cada una. La capacidad del Servidor Remoto de Pandora FMS está en torno a 2000 agentes, por ello decidimos usar agentes software en Modo Broker para distribuir la carga de monitorización. Estos agentes software en Modo Broker monitorizan de forma remota todos los dispositivos de la red y envían los datos en formato XML al servidor central de Pandora FMS.
 
  
En cada una de las redes tenemos una agente con el Modo Broker activado, en él crearemos tantos broker como dispositivos tengamos que monitorizar, la configuración para el agente ''Broker_Agent_Net_A'' sería:
+
La capacidad del Servidor Remoto de Pandora FMS está en torno a 2000 agentes, trabajando con Agentes Broker podemos elevar a 3000 y liberar de gran parte del trabajo al servidor principal. En el gráfico, cada una de las redes tiene un Agente Software con el Modo Broker activado, en él crearemos tantos broker como dispositivos tengamos que monitorizar. Por ejemplo, la configuración para el agente ''Broker_Agent_Net_A'' sería:
  
 
  broker_agent device_1
 
  broker_agent device_1
Line 883: Line 582:
 
  ...
 
  ...
  
Además para cada uno de los brokers añadiríamos los módulos correspondientes para monitorizar los dispositivos. Por ejemplo el broker ''device_1'' que es un router tendría estos módulos:
+
Además para cada uno de los brokers añadiríamos los módulos correspondientes para monitorizar los dispositivos, como se ha explicado anteriormente.
 
 
module_begin
 
module_name Ping
 
module_type generic_proc
 
module_ping 192.168.100.54
 
module_ping_count 2
 
module_ping_timeout 500
 
module_end
 
 
module_begin
 
module_name Eth 1 up
 
module_type generic_data
 
module_snmpget
 
module_snmpversion 1
 
module_snmp_community public
 
module_snmp_agent 192.168.100.54
 
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.1
 
module_end
 
 
module_begin
 
module_name Eth 2 up
 
module_type generic_data
 
module_snmpget
 
module_snmpversion 1
 
module_snmp_community public
 
module_snmp_agent 192.168.100.54
 
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.2
 
module_end
 
 
 
Otro ejemplo sería el broker ''device_2'', que  monitoriza una máquina Windows con los siguientes módulos:
 
 
 
module_begin
 
module_name Ping
 
module_type generic_proc
 
module_ping 192.168.100.54
 
module_ping_count 2
 
module_ping_timeout 500
 
module_end
 
 
module_begin
 
module_name CPU_Load
 
module_type generic_data
 
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
 
module_wmicolumn LoadPercentage
 
module_end
 
 
module_begin
 
module_name Mem_Free
 
module_type generic_data
 
module_wmiquery SELECT LoadPercentage FROM Win32_Memory
 
module_wmicolumn FreeMemory
 
module_end
 
 
module_begin
 
module_name Disk_Free
 
module_type generic_data
 
module_wmiquery SELECT LoadPercentage FROM Win32_Disk
 
module_wmicolumn FreeSpace
 
module_end
 
 
 
Usando los agentes software en Modo Broker podemos distribuir la carga de monitorización y así poder recoger datos de miles de dispositivos de una forma sencilla.
 
  
 
== Inventario con agente software ==
 
== Inventario con agente software ==
  
El agente software de Pandora FMS soporta funciones de inventario tanto hardware como software. El sistema de inventario permite mantener un histórico de CPU, tarjetas, Memoria RAM, parches, software, etc. usados en los servidores de la compañía. Además es posible generar alertas ante cambios en el inventario por ejemplo un reemplazo no autorizado de disco duro o la desintalación de una aplicación.
+
El Agente Software de Pandora FMS soporta funciones de inventario tanto de hardware como de software. El sistema de inventario permite mantener un histórico de CPU, tarjetas, memoria RAM, parches, software, etc. usados en los servidores de la compañía. Además es posible generar alertas ante cambios en el inventario, como por ejemplo un reemplazo no autorizado de disco duro o la desinstalación de una aplicación.
  
Podemos encontrar más información en la sección [[Pandora:Documentation_es:Inventario#Inventario_local.2C_a_trav.C3.A9s_de_los_agentes_software|Inventario local con agentes software]].
+
Para más información visite la sección [[Pandora:Documentation_es:Inventario#Inventario_local.2C_a_trav.C3.A9s_de_los_agentes_software|Inventario local con agentes software]].
  
 
== Acciones remotas por UDP ==
 
== Acciones remotas por UDP ==
  
=== Cómo solicitar información al agente bajo demanda ===
+
Un Agente Software es capaz de recibir peticiones remotas y ejecutar órdenes.
 
 
El agente software de Pandora FMS incluye la funcionalidad ''Servidor UDP'', que permite indicar acciones a un agente de forma remota, tales como reiniciarse o ejecutar un comando.
 
 
 
Los parámetros básicos de configuración del Servidor UDP en los agentes software son:
 
* '''udp_server''': Activa (1) o desactiva (0) esta funcionalidad.
 
* '''udp_server_port''': Puerto de escucha del servidor UDP en el agente software.
 
* '''udp_server_auth_address''': Dirección IP en la que el servidor UDP y acepta peticiones. Puede establecerse a ''0.0.0.0'' para que acepte desde todos los orígenes.
 
  
Ejemplo de configuración:
+
{{Warning|Tenga presente que UDP es por naturaleza inseguro (pero eficiente para enviar mensajes sin comprometer una respuesta cierta).}}
  
udp_server 1
+
Para permitir que el servidor PFMS envie órdenes a los Agentes Software a su cargo, se debe configurar:
udp_server_port 41122
 
udp_server_auth_address 0.0.0.0
 
  
Ahora, para forzar el reinicio del agente se debe utilizar el script '''udp_client.pl''', presente en el servidor de Pandora FMS, y normalmente ubicado en ''/usr/share/pandora_server/util''. Podemos ejecutarlo desde línea de comando o bien utilizarlo en una alerta, mediante el comando que viene preconfigurado en la consola '''"Remote agent control"'''.
+
* '''udp_server''': cero por defecto, valor en uno (1) para activar esta funcionalidad.
 +
* '''udp_server_port''': puerto de escucha en Agente Software.
 +
* '''udp_server_auth_address''': dirección IP del servidor Pandora FMS
  
Existe también una acción de alerta por defecto llamada ''Restart agent'', que utiliza este script. Emplea la acción ''REFRESH AGENT'' sobre el script ''udp_client.pl'' para reiniciar el agente si éste tiene el servidor UDP escuchando.
+
Reinicie el Agente Software para que los cambios se apliquen.
 
 
<br>
 
<center>
 
[[Image:agent_restart_action.png|center|850px]]
 
</center>
 
<br>
 
  
El paso a paso para habilitar la opción de refresco remoto del agente software es:
+
{{Warning|Aunque puede establecerse a ''0.0.0.0'' para que acepte desde todos los orígenes, dicha práctica no es recomendada. Si tiene varios Servidores PFMS y/o
 +
utiliza IPv6 puede colocar diferentes direcciones IP separadas por comas. Por ejemplo si tiene en IPv6 <code>2001:0db8:0000:130F:0000:0000:087C:140B</code>, su abreviatura es <code>2001:0db8:0:130F::87C:140B</code> utilice ambas separadas por comas.}}.
  
1. Configurar las opciones en el fichero de configuración para el agente software (Unix o Windows). Por favor, tenga cuidado con la dirección IP autorizada (¿está el servidor de Pandora FMS bajo un NAT?), o ponga 0.0.0.0. para permitir que cualquier dirección IP fuerce refrescar el agente.
+
=== Cómo solicitar reinicio de servicio de Agentes Software ===
  
2. Reinicie el agente software para que los cambios se apliquen.
+
Se debe utilizar el ''script'' '''udp_client.pl''', presente en el servidor de Pandora FMS y normalmente ubicado en ''/usr/share/pandora_server/util''. Se puede ejecutar desde línea de comando o bien utilizarlo en una alerta, mediante el comando que viene [[Pandora:Documentation_es:Alertas#Comandos_predefinidos|preconfigurado]] en la consola '''"Remote agent control"'''.
  
3. Asociar la alerta ''Restart agent'' al módulo de algún agente (es necesario que este agente tenga la dirección IP correctamente configurada).
+
Existe también una acción de alerta por defecto llamada ''Restart agent'' sobre este script, empleando la acción ''REFRESH AGENT''.
  
4. Forzar la ejecución de la alerta o bien forzar un estado incorrecto del módulo para que la alerta se dispare.
+
[[Image:agent_restart_action.png|center|700px]]
  
Ahora gracias a esta acción, es posible forzar la alerta manualmente en cualquier momento para refrescar el agente software de forma remota y obtener la información de forma rápida.
+
Luego puede forzar la ejecución de la alerta o bien forzar un estado incorrecto del módulo para que la alerta se dispare y comprobar así la configuración.
  
 
=== Acciones remotas personalizadas ===
 
=== Acciones remotas personalizadas ===
  
Además de la acción de refrescar agente, podemos especificar acciones personalizadas que realizar en los agentes por medio de órdenes UDP desde el servidor de Pandora FMS.
+
Además de la acción de reiniciar servicio de Agente Software, se pueden especificar acciones personalizadas. Para ello se debe añadir una línea por cada comando a ejecutar, con el siguiente esquema:
  
En caso de querer hacerlo, hay que hacer una pequeña configuración extra en el archivo pandora_agent.conf. Además, por supuesto, de activar el servicio UDP y configurarlo para que reciba las órdenes del servidor:
+
process_<nombredelaorden>_start comando
  
udp_server 1
 
udp_server_port 41122
 
udp_server_auth_address <IP del servidor>
 
 
Deberemos añadir una línea por cada comando que queremos ejecutar, con el siguiente esquema:
 
 
process_nombredelaorden_start comando
 
  
 
Por ejemplo, si queremos una orden remota para iniciar el servicio sshd:
 
Por ejemplo, si queremos una orden remota para iniciar el servicio sshd:
Line 1,009: Line 628:
 
  process_sshd_start /etc/init.d/sshd start
 
  process_sshd_start /etc/init.d/sshd start
  
A continuación, deberemos crear una acción de alerta en Pandora FMS Console para cada comando remoto que hayamos creado. El comando a utilizar será "Remote agent control" (creado por defecto, está preparado para mandar órdenes UDP). En el campo 1 escribiremos "START PROCESS sshd", tal y como puede verse en la captura:
+
A continuación, se debe crear una acción de alerta en Pandora FMS Console para cada comando remoto que hayamos creado. El comando a utilizar será "Remote agent control" (creado por defecto, está preparado para mandar órdenes UDP) e insertar en el campo 1 "START PROCESS sshd":
 
 
<br>
 
<center>
 
[[Image:Udp process.JPG|center|850px]]
 
</center>
 
<br>
 
  
Ahora sólo hay que crear una nueva alerta manual con la nueva acción en el agente cuyo servicio sshd deseemos iniciar.
+
[[Image:Udp process.JPG|center|700px]]
Al forzar la alerta, la orden se lanzará y el agente iniciará el servicio.
 
  
 +
Luego crear una nueva alerta manual con la nueva acción en el agente cuyo servicio '''sshd''' deseemos iniciar; al forzar la alerta, la orden se enviará y el Agente software iniciará el servicio.
  
{{tip|También pueden crearse órdenes que llamen a scripts. Esto permite realizar una gran cantidad de acciones remotas en un agente con sólo pulsar un botón.}}
+
{{tip|También pueden crearse órdenes que llamen a ''scripts''. Esto permite realizar una gran cantidad de acciones remotas en un Agente Software con sólo pulsar un botón.}}
  
 
== Plugins en agentes software ==
 
== Plugins en agentes software ==
  
Se caracterizan por realizar comprobaciones avanzadas complejas desde los agentes software, '''pudiendo devolver como resultado varios módulos''' en lugar de un único valor. A diferencia de los plugins de servidor, que se ejecutan por el servidor de Pandora FMS, los plugins de agente devuelven sus datos en un XML, reportando uno o varios módulos a la vez.
+
Se caracterizan por realizar comprobaciones avanzadas complejas desde los agentes software, '''pudiendo devolver como resultado varios módulos''' en lugar de un único valor. A diferencia de los ''plugins'' de servidor, que se ejecutan por el servidor de Pandora FMS, los de Agente Software devuelven sus datos en un XML, reportando uno o varios módulos a la vez.
  
 
=== Ejecución en sistemas Windows ===
 
=== Ejecución en sistemas Windows ===
  
En windows, todos los plugins por defecto están programados en VBScript, para ejecutarlos es necesario usar el intérprete adecuado indicando la ruta completa.  
+
En MS Windows®, todos los ''plugins'' por defecto están programados en '''VBScript''', para ejecutarlos es necesario usar el intérprete adecuado indicando la ruta completa.
  
Estos son algunos ejemplos de como usar los plugins por defecto incluídos en el agente Windows:
+
Ejemplos:
  
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\logevent_log4x.vbs" Aplicacion System 300
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\logevent_log4x.vbs" Aplicacion System 300
Line 1,037: Line 650:
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" iexplore.exe myapp.exe
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" iexplore.exe myapp.exe
  
El agente Windows trae diversos plugins listos para utilizarse.
+
El Agente Software para Windows trae diversos ''plugins'' listos para utilizarse.
  
 
=== Ejecución en sistemas Unix ===
 
=== Ejecución en sistemas Unix ===
  
Los plugins de Unix se buscan por defecto en el directorio "/plugin" del directorio del agente, en /etc/pandora/plugins, por lo que no sería necesario emplear la ruta completa en su ejecución en caso de que se encuentren en este directorio.
+
Los ''plugins'' de Unix se buscan por defecto en el directorio del agente, en /etc/pandora/plugins, por lo que se invocan y a continuación se le pasan los parámetros que sean necesarios:
 
 
Estos son algunos ejemplos de uso de los plugins:
 
  
 
   module_plugin grep_log /var/log/syslog Syslog .
 
   module_plugin grep_log /var/log/syslog Syslog .
 
   module_plugin pandora_df tmpfs /dev/sda1
 
   module_plugin pandora_df tmpfs /dev/sda1
  
El agente software Unix trae varios plugins por defecto listos para funcionar.
+
El agente software Unix trae varios plugins listos para funcionar.
 +
 
 +
=== Gestión de plugins de Agente Software desde la Consola ===
 +
 
 +
En la versión '''Enterprise''' es posible administrar sin editar directamente el fichero de configuración. Al tener la configuración remota activada, un Agente Software en su vista de administración dispondrá de la pestaña del editor de plugins.
 +
 
 +
[[Image:plugin_editor_tab.png|center|33px]]
 +
 
 +
Este apartado muestra el listado de los ''plugins'' activos en el agente, y permite eliminarlos, añadirlos y desactivarlos. En el caso de los ''plugins'' de política puede ser útil desactivarlos porque al volver a aplicar la política se mantendrán desactivados.
 +
 
 +
[[Image:plugin_editor.png|700px|center]]
 +
 
 +
Los ''plugins'' administrados en este editor pueden ser, a su vez, editados desde el fichero de configuración del agente.
  
=== Ejemplos de uso de plugins ===
+
[[Image:plugin_editor_conf.png|500px|center]]
  
Los plugin para el agente software puede devolver un dato o un grupo de ellos. Un ejemplo de plugin que devuelve un dato puede ser el plugin ''ps.vbs'' de Windows, que simplemente comprueba si un proceso se encuentra en ejecución. Con la siguiente línea ejecutamos el plugin:
+
=== Ejemplo 1 ===
 +
 
 +
Los ''plugin'' para el agente software puede devolver un dato o un grupo de ellos. Un ejemplo de ''plugin'' que devuelve un dato es ''ps.vbs'' en ambiente Windows, el cual comprueba si un proceso se encuentra en ejecución.
  
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" IEXPLORE.EXE
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" IEXPLORE.EXE
Line 1,064: Line 689:
 
  </module>
 
  </module>
  
Un ejemplo de plugin que devuelve varios datos puede ser el plugin ''df.vbs'' de Windows. La línea para ejecutar el plugin sería:
+
=== Ejemplo 2 ===
 +
 +
El plugin ''df.vbs'' en ambiente Windows devuelve el espacio libre en cada dispositivo de almacenamiento con la siguiente orden:
  
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"
 
  module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"
  
El plugin devuelve un módulo por cada disco encontrado, el resultado sería:
+
Resultado:
  
 
  <module>
 
  <module>
 
     <name><![CDATA[C:]]></name>
 
     <name><![CDATA[C:]]></name>
 
     <description><![CDATA[Drive C: free space in MB]]></description>
 
     <description><![CDATA[Drive C: free space in MB]]></description>
     <nowiki><data><![CDATA[8050]]></data></nowiki>
+
     <nowiki><data><![CDATA[805000]]></data></nowiki>
 
  </module>
 
  </module>
 
   
 
   
Line 1,079: Line 706:
 
     <name><![CDATA[D:]]></name>
 
     <name><![CDATA[D:]]></name>
 
     <description><![CDATA[Drive D: free space in MB]]></description>
 
     <description><![CDATA[Drive D: free space in MB]]></description>
     <nowiki><data><![CDATA[900]]></data></nowiki>
+
     <nowiki><data><![CDATA[90000]]></data></nowiki>
 
  </module>
 
  </module>
  
=== Gestión de plugins de agente desde la consola ===
+
=== Cómo crear plugins personalizados para Agente Software ===
 
 
En la versión '''Enterprise''' es posible administrar los plugins de agentes software desde la consola sin editar directamente el fichero de configuración.
 
 
 
Si un agente tiene la configuración remota activada, en su vista de administración dispondrá de la pestaña del editor de plugins.
 
 
 
<center>
 
<br><br>
 
[[image:plugin_editor_tab.png]]
 
<br><br>
 
</center>
 
 
 
Este apartado muestra el listado de los plugins activos en el agente, y permite eliminarlos, añadirlos y desactivarlos. En el caso de los plugins de política puede ser útil desactivarlos porque al volver a aplicar la política se mantendrán desactivados.
 
 
 
<center>
 
<br><br>
 
[[image:plugin_editor.png|800px]]
 
<br><br>
 
</center>
 
 
 
Los plugins administrados en este editor pueden ser, a su vez, editados desde el fichero de configuración del agente.
 
 
 
<center>
 
<br><br>
 
[[image:plugin_editor_conf.png|800px]]
 
<br><br>
 
</center>
 
  
=== Cómo crear plugins de agente propios ===
+
Los ''plugin'' pueden ser creados en cualquier lenguaje de programación. Solo se debe tener en cuenta las [[Pandora:Documentation_es:Anexo_Plugins_Considerations|normas generales]] y las [[Pandora:Documentation_es:Anexo_Agent_Plugins|normas específicas]] para su desarrollo.
  
Los plugin pueden ser creados en cualquier lenguaje de programación. Sólo tienen que respetar estas restricciones:
+
<!-- Esta información es muy buena como para borrarla, mejor es mover en su debida oportunidad a los enlaces internos arriba de estas líneas
 +
Sólo tienen que respetar estas restricciones:
  
 
* Independientemente de lo que se quiera hacer, debe ser automático (sin interacción del usuario), y debe ser hecho desde la línea de comandos (shell). Se puede usar cualquier tipo de lenguaje de scripting o lenguaje compilado, pero en ese caso hay que distribuir también, además del ejecutable, todas las librerías (o DLL) que sean necesarias para la ejecución del plugin.
 
* Independientemente de lo que se quiera hacer, debe ser automático (sin interacción del usuario), y debe ser hecho desde la línea de comandos (shell). Se puede usar cualquier tipo de lenguaje de scripting o lenguaje compilado, pero en ese caso hay que distribuir también, además del ejecutable, todas las librerías (o DLL) que sean necesarias para la ejecución del plugin.
Line 1,203: Line 805:
 
</pre>
 
</pre>
  
=== Utilizando plugins de Nagios desde el agente ===
+
-->
  
Nagios tiene un gran número de plugins que puede utilizar con Pandora FMS. Un modo de hacerlo es utilizar los plugins remotos con el Plugin Server, usando la compatibilidad de Nagios. Pero de este modo, sólo conseguirá sus estados, ya que no utiliza el output descriptivo que tienen algunos plugins para Nagios.
+
=== Utilizando plugins de Nagios desde Agente Software ===
  
Utilizar el wrapper para usar los plugins de nagios en el agente software resolverá este problema. El wrapper viene por defecto con el agente de Unix 3.2. Un plugin equivalente para los agentes Windows de Pandora FMS puede descargarse desde la librería de recursos de Pandora FMS, en [https://library.pandorafms.com/index.php?sec=Library&sec2=repository&lng=es&action=view_PUI&id_PUI=178]).
+
Nagios tiene un gran número de ''plugins'' que puede utilizar con Pandora FMS. Un modo de hacerlo es utilizar los ''plugins'' remotos con el Plugin Server, usando la compatibilidad de Nagios. Pero de este modo, sólo conseguirá sus estados, ya que no utiliza la salida descriptiva que tienen algunos ''plugin'' para Nagios.
  
'''¿Qué hace el wrapper de plugins para los plugins de Nagios?'''
+
Para ello fue creado el ''wrapper'' de ''plugins'' de Nagios que lidia con esta situación. El ''wrapper'' viene por defecto con el agente de Unix 3.2, en ambiente Windows debe descargar un equivalente desde la [https://pandorafms.com/library/nagios-wrapper-for-agent-plugin/ librería de recursos de Pandora FMS].
  
Ejecuta el plugin de Nagios, utilizando sus parámetros originales y convirtiendo el output en datos útiles para Pandora FMS. Este tiene dos tipos de información:
+
;Funcionamiento general
  
* Información acerca del Status: NORMAL (1), CRITICAL (0), WARNING (2), UNKNOWN () y otras (4). Por defecto, utilizarán un modulo proc, con lo que los valores NORMAL y CRITICAL están trabajando "por defecto"; si usted desea tener información acerca de WARNING y otros valores, deberá configurar los umbrales del módulo de manera manual.
+
El ''wrapper'' ejecuta el plugin de Nagios, utilizando sus parámetros originales y convirtiendo su salida en datos útiles para Pandora FMS. Contiene dos tipos de información:
  
* Información de tipo descriptivo: Generalmente información de cadenas. Se situará en el campo de descripción del módulo. Normalmente algo parecido a "OK: successfully logged in".
+
* Información acerca del estado teniendo en cuenta los [https://pandorafms.com/library/files_repository/1287139046.slerena.nagios_plugin_wrapper niveles de error de Nagios]: NORMAL (1), CRITICAL (0), WARNING (2), UNKNOWN () y otras (4). Por defecto, utilizarán un módulo proc, con lo que los valores NORMAL y CRITICAL están trabajando "por defecto"; si usted desea tener información acerca de WARNING y otros valores, deberá configurar los umbrales del módulo de manera manual.
 +
 
 +
* Información de tipo descriptivo: Generalmente información de cadenas. Se situará en el campo de descripción del módulo, por ejemplo:
 +
 
 +
<![CDATA["OK: successfully logged in"]]>
 +
 
 +
<!-- Este ejemplo es muy bueno como para borrarlo, eliminar datos personales y mudar en su debida oportunidad
  
 
==== Ejemplo ====
 
==== Ejemplo ====
Line 1,263: Line 871:
 
[[file:Sample_plugin_wrapper.png|center]]
 
[[file:Sample_plugin_wrapper.png|center]]
 
</center>
 
</center>
 +
-->
  
 
== Monitorización con KeepAlive ==
 
== Monitorización con KeepAlive ==
  
Existe un módulo especial, tiene un tipo único llamado "keep_alive" y sirve para dar información ante la ausencia de contacto del agente. Sirve para saber cuando un agente ha dejado de enviar información y alertarnos de este hecho.
+
Un módulo singular en Pandora FMS es el tipo llamado <code>keep_alive</code>, utilizado para alertar si un Agente Software ha dejado de enviar información (véase anteriormente [[#Acciones_remotas_por_UDP|Acciones remotas por UDP]]). Dicha alerta ocurre cuando no ha actualizado su fecha de último contacto en el doble de tiempo de su intervalo, disparándose y marcando el monitor en estado Critical.
 +
 
 +
{{Tip|El módulo KeepAlive se puede crear solo desde la consola (aunque no tengamos configuración remota habilitada) y no deja ninguna traza en el fichero pandora_agent.conf}}
  
Cuando hay un módulo, remoto o local, que obtiene información del agente, la fecha de último "contacto" con el agente se actualiza, de forma que siempre que hay datos, aunque solo sea un módulo del total, el agente tendrá actualizado su fecha de ultimo contacto, que sirve para saber si el agente "no responde". Concretamente un agente se da por "muerto" cuando no ha actualizado su fecha en el doble de tiempo de su intervalo, es decir, si tiene un intervalo de 5 minutos, y hace más de 10 minutos que no hay ningún de actualización, el agente se da por muerto.
+
Creación de un nuevo módulo de tipo "KeepAlive":
  
En este caso, es cuando el módulo keepalive entraría en juego, disparándose y marcando el monitor en estado Critical.
+
[[Image:Keepalive.JPG|center|700px]]
  
La configuración de este tipo de módulos es muy fácil, basta con crear un nuevo módulo de tipo "KeepAlive":
+
Funcionamiento en estado "NORMAL" (verde):
<br><br>
 
<center>
 
[[File:Keepalive.JPG|center|800px]]
 
</center><br>
 
<br>
 
Una vez creado, si el agente tiene datos, dentro de su intervalo, siempre estará en estado "NORMAL" (verde):
 
<br><br>
 
<center>
 
[[File:Keepalive1.png|center|800px]]
 
</center><br>
 
<br>
 
Si el agente deja de enviar datos (en este ejemplo, tenía intervalo de 1 minuto), entonces automáticamente saltará y se pondrá en estado CRITICAL (rojo):
 
<br><br>
 
<center>
 
[[File:Keepalive2.png|center|800px]]
 
</center><br>
 
<br>
 
Cabe destacar que si tenemos un módulo remoto, por ejemplo, un Ping, además de los datos reportados por el agente, el módulo keepalive nunca saltaría, ya que estamos actualizando el agente constantemente mediante el Ping.
 
  
El módulo keepalive por lo demás se comporta como cualquier otro módulo, se le puede asociar una alerta y se puede usar para cualquier otro elemento: informes, mapas, etc.
+
[[Image:Keepalive1.png|center|700px]]
  
{{Tip|El módulo keepalive se puede crear solo desde la consola (aunque no tengamos configuración remota habilitada) y no deja ninguna traza en el fichero pandora_agent.conf}}
+
Si el agente deja de enviar datos (para este ejemplo tenía un intervalo de 1 minuto), entonces automáticamente saltará y cambiará a estado CRITICAL (rojo):
  
== Monitorización de capturas de comandos (Command snapshots) ==
+
[[Image:Keepalive2.png|center|700px]]
  
Comandos que presenten salidas extensas, como ''top'' o ''netstat'' pueden ser capturados completamente por un módulo y mostrados por completo. El módulo debe configurarse como tipo texto.
+
Cabe destacar que si tenemos un módulo remoto, por ejemplo, un Ping, además de los datos reportados por el agente, el módulo KeepAlive nunca saltaría, ya que estamos actualizando el agente constantemente mediante el Ping. Por lo demás se comporta como cualquier otro módulo: se le puede asociar una alerta y se puede usar para cualquier otro elemento como informes, mapas, etcétera.
  
En la siguiente captura se muestra el resultado de uno de estos módulos, en este caso la salida de ''netstat -an'':
+
== Monitorización de capturas de comandos (Command snapshots) ==
  
<br>
+
[[Image:Snapshot 1.png|center|650px]]
<center>
+
Comandos que presenten salidas extensas, como ''top'' o ''netstat -n'' pueden ser capturados completamente por un módulo y reproducidos tal cual. El módulo debe configurarse como tipo texto.
[[File:Snapshot 1.png|center|650px]]
 
</center>
 
<br>
 
  
{{Warning|Para que esto funcione así, hay que configurar adecuadamente tanto la consola de Pandora (setup) como el agente que recoge esa información, asegurándose de que es texto sin tratar}}
+
{{Warning|Para que esto funcione así, hay que configurar adecuadamente tanto la consola de Pandora (''setup'') como el agente que recoge esa información, asegurándose de que es ''texto sin tratar''.}}
  
Para configurar adecuadamente la consola, hay que asegurarse que en la sección principal del setup tenemos la propiedad "Comand line snapshot" activada:
+
En la Consola, se debe activar la opción:
  
<center>
+
[[Image:command_line_snapshot_setup.png|center|500px]]
[[File:command_line_snapshot_setup.png|center]]
 
</center>
 
  
 
== Monitorización y visualización de imágenes ==
 
== Monitorización y visualización de imágenes ==
  
Este método permite definir módulos de tipo cadena (generic_data_string o async_string) que contengan imágenes en formato texto con una codificación base64, pudiendo mostrar dicha imagen en lugar de un resultado concreto. Esta se almacena como información de texto, y se visualiza de una forma diferente, no como simples datos, sino reconstruyendo una imagen.
+
Este método permite definir módulos de tipo cadena (<code>generic_data_string</code> o <code>async_string</code>) que contengan imágenes en formato texto con una [https://docs.python.org/3/library/base64.html codificación base64], pudiendo mostrar dicha imagen en lugar de un resultado concreto. Esta se almacena como información de texto, y se visualiza de una forma diferente, no como simples datos, sino reconstruyendo una imagen al hacer clic en el icono especial para las capturas de imágenes:
 
 
Así es como se ve la salida de una cadena de texto con el contenido "data:image" (imagen en base64), capturado por Pandora FMS, al pinchar en el icono especial para las capturas de imágenes:
 
  
<br>
+
[[Image:Snapshot_text 1.png|center|650px]]
<center>
 
[[File:Snapshot_text 1.png|center|650px]]
 
</center><br>
 
  
<br>
+
Para capturar estas imágenes, basta con escribir un plugin que envíe todos los datos, generando los tags XML necesarios, y ejecutando el plugin como tal, con la directiva ''module_plugin''. Ejemplo:
 
 
Para capturar estas imágenes, basta con escribir un plugin que envíe todos los datos, generando los tags XML necesarios, y ejecutando el plugin como tal, con la directiva ''module_plugin''. Veamos el siguiente plugin de ejemplo, que genera la salida de una imagen, tal como acaba de ver en la captura anterior:
 
  
 
<pre>
 
<pre>
Line 1,345: Line 926:
 
Grabe ese contenido a un archivo en el agente (o distribúyalo con colecciones de ficheros) y ejecútelo de la siguiente manera:
 
Grabe ese contenido a un archivo en el agente (o distribúyalo con colecciones de ficheros) y ejecútelo de la siguiente manera:
  
module_plugin <path completo al fichero>
+
module_plugin <vía completo al fichero>
 +
 
 +
== Monitorización específica para Windows ==
 +
 
 +
El Agente Software para sistemas Windows tiene funcionalidades específicas para esta plataforma que ayudan a realizar la monitorización de una forma más sencilla. A continuación explicaremos las funcionalidades y aplicaremos unos ejemplos de las mismas. Normas comunes:
 +
 
 +
{{Tip|Si el nombre del proceso contiene espacios en blanco '''no use «" "»'''. El nombre del proceso debe ser el mismo que muestra el Administrador de Tareas ( ''taskmngr'' ) de Windows, incluyendo la extensión .exe; es importante '''respetar mayúsculas y las minúsculas'''.}}
 +
 
 +
{{Tip|El Watchdog  '''sólo funciona si el módulo es asíncrono'''.}}
 +
 
 +
=== Monitorización de procesos y watchdog de procesos ===
 +
 
 +
==== Monitorización de procesos ====
 +
 
 +
El parámetro '''module_proc''' comprueba si un determinado nombre de proceso está operando en esta máquina. Ejemplo de definición de módulo:
 +
 
 +
module_begin
 +
module_name CMDProcess
 +
module_type generic_proc
 +
module_proc cmd.exe
 +
module_description Process Command line
 +
module_end
 +
 
 +
Para que avise inmediatamente cuando un proceso deja de funcionar se debe añadir el parámetro '''module_async yes''' (ver normas comunes al principio de sección Windows):
 +
 
 +
module_begin
 +
module_name CMDProcess
 +
module_type generic_proc
 +
module_proc cmd.exe
 +
module_async yes
 +
module_description Process Command line
 +
module_end
 +
 
 +
==== Watchdog sobre procesos ====
 +
 
 +
La funcionalidad de Watchdog del Agente Software de Pandora FMS para MS Windows® permite actuar inmediatamente ante el fin abrupto de un proceso, iniciándolo de nuevo.
 +
 
 +
Ejemplo:
 +
 
 +
module_begin
 +
module_name Notepad
 +
module_type generic_data
 +
module_proc notepad.exe
 +
module_description Notepad
 +
module_async yes
 +
module_watchdog yes
 +
module_user_session yes
 +
module_start_command c:\windows\notepad.exe
 +
module_startdelay 3000
 +
module_retrydelay 2000
 +
module_retries 5
 +
module_end
 +
 
 +
Cada vez que el programa bloc de notas deje de funcionar, el Watchdog ejecutará el comando c:\windows\notepad.exe (ver normas comunes al principio de sección Windows). La reactivación del proceso se intentará 5 veces con un tiempo de espera inicial de 3 segundos y con un tiempo de espera entre reintentos de 2 segundos en la sesión activa del usuario.
 +
 
 +
=== Monitorización de servicios y watchdog de servicios ===
 +
 
 +
==== Monitorización de servicios ====
 +
 
 +
El parámetro '''module_service''' comprueba si un determinado servicio se está ejecutando en la máquina. La definición de un módulo usando este parámetro sería:
 +
 
 +
module_begin
 +
module_name Service_Dhcp
 +
module_type generic_proc
 +
module_service Dhcp
 +
module_description Service DHCP Client
 +
module_end
 +
 
 +
Para que avise inmediatamente cuando un proceso deja de funcionar se debe añadir el parámetro '''module_async yes''' (ver normas comunes al principio de sección Windows):
 +
 
 +
module_begin
 +
module_name Service_Dhcp
 +
module_type generic_proc
 +
module_service Dhcp
 +
module_description Service DHCP Client
 +
module_async yes
 +
module_end
 +
 
 +
==== Watchdog de servicios ====
 +
 
 +
Funciona de manera similar al Watchdog de procesos. Ejemplo:
 +
 
 +
module_begin
 +
module_name ServiceSched
 +
module_type generic_proc
 +
module_service Schedule
 +
module_description Service Task scheduler
 +
module_async yes
 +
module_watchdog yes
 +
module_end
 +
 
 +
La definición del watchdog para servicios no requiere ningún parámetro adicional como el de procesos, porque esa información ya está dentro de la definición del servicio.
 +
 
 +
=== Monitorización de recursos básicos ===
 +
 
 +
Este apartado muestra cómo monitorizar los recursos básicos de una máquina Windows.
 +
 
 +
==== Monitorizando la CPU ====
 +
 
 +
El parámetro '''module_cpuusage''' devuelve el porcentaje de CPU en uso. Es posible monitorizar las cpu por id con la siguiente definición de módulo:
 +
 
 +
module_begin
 +
module_name CPU_1
 +
module_type generic_data
 +
module_cpuusage 1
 +
module_description CPU usage for CPU 1
 +
module_end
 +
 
 +
También puede monitorizar la media de uso de todas las CPUs del sistema con el módulo:
 +
 
 +
module_begin
 +
module_name CPU Usage
 +
module_type generic_data
 +
module_cpuusage all
 +
module_description CPU Usage for all system
 +
module_end
 +
 
 +
==== Monitorizando la memoria ====
 +
 
 +
Para monitorizar la memoria existen dos parámetros: '''module_freememory''', que devuelve la cantidad de memoria libre del sistema, y '''module_freepercentmemory''',  que devuelve el porcentaje de memoria libre del sistema.
 +
 
 +
Módulo de ejemplo para '''module_freememory''':
 +
 
 +
module_begin
 +
module_name FreeMemory
 +
module_type generic_data
 +
module_freememory
 +
module_description Non-used memory on system
 +
module_end
 +
 
 +
Módulo de ejemplo para '''module_freepercentmemory''':
 +
 
 +
module_begin
 +
module_name FreePercentMemory
 +
module_type generic_data
 +
module_freepercentmemory
 +
module_end
 +
 
 +
==== Monitorizando el disco ====
 +
 
 +
Para monitorizar el disco disponemos de dos parámetros: '''module_freedisk''' , que devuelve la cantidad de espacio libre, y '''module_freepercentdisk''', que devuelve el porcentaje de espacio libre. Ambos módulos requieren como parámetro la unidad de disco a monitorizar, '''recuerde agregar el caracter <code>:</code>, ejemplo:
 +
 
 +
module_begin
 +
module_name FreeDisk
 +
module_type generic_data
 +
module_freedisk C:
 +
module_end
 +
 
 +
Ejemplo de módulo para '''module_freepercentdisk''':
 +
 
 +
module_begin
 +
module_name FreePercentDisk
 +
module_type generic_data
 +
module_freepercentdisk C:
 +
module_end
 +
 
 +
==== Consultas WMI ====
 +
 
 +
El Agente Software de Pandora permite extraer información a través de consultas [[Pandora:Documentation_es:Arquitectura#Servidor_WMI|WMI]], que es una fuente de información ampliamente utilizada para obtener información del sistema y externa a este.
 +
 
 +
Usando el parámetro '''module_wmiquery''' el Agente Software permite ejecutar localmente cualquier consulta WMI. Para realizar la consulta se define la query WMI en el parámetro '''module_wmiquery''' y la columna que contiene la información a monitorizar con el parámetro '''module_wmicolumn'''.
 +
 
 +
Por ejemplo, obtener una lista de los servicios instalados:
  
== Grupos protegidos por contraseña ==
+
module_begin
 +
module_name Services
 +
module_type generic_data_string
 +
module_wmiquery Select Name from Win32_Service
 +
module_wmicolumn Name
 +
module_end
  
Por defecto, cuando un agente envía datos por primera vez al servidor de Pandora FMS se añade de forma automática al grupo que se haya definido en el fichero de configuración del agente. Esto significa que, en la práctica, cualquiera puede añadir un agente a un grupo si conoce el nombre del grupo. Esto podría suponer un problema si varios clientes comparten su instancia de Pandora FMS o si quiere controlar lo que hay en cada grupo.
+
Obtener la carga actual de CPU:
  
Es posible configurar de manera opcional una contraseña para un grupo desde la Consola de pandora FMS. Un agente no se añadirá a un grupo a menos que se haya especificado la contraseña correcta en el fichero de configuración del agente.
+
module_begin
 +
module_name CPU_Load
 +
module_type generic_data
 +
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
 +
module_wmicolumn LoadPercentage
 +
module_end
  
=== Ejemplo ===
+
== Versiones anteriores a 7 NG ==
  
Para configurar una contraseña para un grupo, navege al ''editor de grupos'' y haga click en ''editar'', introduzca la contraseña del grupo y guarde sus cambios:
+
=== Nombre de los agentes ===
  
<center>
+
A partir de la versión 7 de Pandora FMS los agentes tienen un alias y un nombre (o identificador único). Un agente configurado por defecto generará un nombre (o identificador) basado en una cadena hexadecimal pseudoaleatoria, y un alias (o nombre visible) basado en el hostname de la máquina.
[[File:Passgr1.JPG|center]]
 
</center>
 
  
Para añadir un agente nuevo a este grupo, edite su fichero de configuración y añada la siguiente opción de configuración:
+
En versiones anteriores solo existía el "nombre" de la máquina, y el sistema anterior es totalmente compatible con las versiones más modernas de Pandora FMS, solo que si en una misma instalación de Pandora FMS encuentra dos agentes con el mismo identificador (o nombres) los datos de ambos agentes se mezclarán y/o pisarán. Por eso introdujimos a partir de la versión 7 la posibilidad que agentes con diferente nombre pudieran tener el mismo alias.
  
  group_password <password>
+
Para cambiar este comportamiento se utilizan los token de configuración siguientes:
  
No olvide reiniciar el agente para hacer efectivos los cambios. El agente debería crearse correctamente en la consola de Pandora FMS.
+
pandora_agent
 +
pandora_alias
  
 +
Por defecto, el fichero de configuración no utiliza ninguno de los dos, de forma que obtiene el hostname de la máquina como alias y un numero hexadecimal aleatorio muy grande como nombre o identificador. El nombre del agente no es ya visible (excepto en la vista detallada del agente) y NO se puede cambiar. El Alias del agente se puede cambiar en cualquier momento, sin tener que preocuparse de la configuración del agente software, ya que el que se usa para identificar unívocamente al agente es el "nombre" de agente.
  
[[Pandora:Documentation|Volver a Indice de Documentación Pandora FMS]]
+
[[Pandora:Documentation|Volver al Índice de Documentación Pandora FMS]]
  
 
[[Category: Pandora FMS]]
 
[[Category: Pandora FMS]]
 
[[Category:Documentation]]
 
[[Category:Documentation]]
 +
 +
<!-- Fin de 3° revisión (ver correcciones de la sra. Julia) JJOS 2020-dic-02 -->

Latest revision as of 12:45, 17 December 2020

Volver al Índice de Documentación Pandora FMS


Contents

1 Monitorización con Agentes Software

1.1 Monitorización con Agente Software

Agent-monitoring.png

Los Agentes Software se encuentran en ejecución en los sistemas operativos de los cuales recogen información. Cada uno de los chequeos que hacen sobre el sistema, como uso de CPU, memoria libre o espacio en disco, corresponde a un módulo. Así, por cada módulo se recoge un único dato en cada ejecución.

Las directivas propias del Agente Software sirven para recoger ciertos datos directamente del sistema operativo (ej. uso de CPU, memoria, eventos, etcétera), ejecutando comandos propios del sistema operativo siguiendo instrucciones de scripts predefinidos. También es posible ejecutar estos comandos de manera directa así como cualquier otro software siempre y cuando devuelvan datos de una manera estándar.

El Dataserver Pandora FMS procesa y almacena en la base de datos toda la información generada por los agentes software, que le hacen llegar sus datos en un fichero XML.

Esquema-3.png
Esquema lógico de un agente/agente físico.

Info.png

Si ejecutan versiones anteriores a 7 NG consulte acerca del nombrado de los Agentes Software a final de este artículo.

 


1.1.1 Configuración de Agentes Software

Toda la configuración y los parámetros se encuentran almacenados en el fichero pandora_agent.conf, el cual está instalado también localmente junto a su Agente Software. La configuración básica está tratada en "Configuración de los Agentes Pandora FMS", a continuación se expone la configuración avanzada.

1.1.1.1 Configuración local

En el archivo de configuración del Agente Software los módulos están definidos con la siguiente estructura básica de texto:

module_begin 
module_name your module name
module_type generic_data
module_exec your command 
module_description your description
module_end
1.1.1.1.1 Ejemplo 1
module_begin 
module_name Files in var spool
module_type generic_data
module_exec ls /var/spool | wc -l
module_description Number of files incoming dir
module_end

En ambiente *nix el comando ls lista ficheros de un directorio y es ejecutado con la línea module_exec para entregar el valor al comando wc que contará el números de palabras recibidas para igual número de archivos. El valor devuelto por esa última ejecución será el dato que obtendrá el módulo y será mostrado en la monitorización.

1.1.1.1.2 Ejemplo 2
module_exec vmstat 1 2 | tail -1 | awk '{ print $13 }'

El comando vmstat reporta estadísticas de la memoria virtual, en este ejemplo son dos los comandos adicionales para "refinar" la información deseada. Se recomienda primero lanzar el comando manualmente y analizar la salida.

$> vmstat 1 2 | tail -1 | awk '{ print $13 }'

Si el resultado satisface el requerimiento se podrá agregar al fichero de configuración; posteriormente el valor devuelto por la ejecución mediante el Agente Software será almacenado en el XML como dato del módulo.

1.1.1.1.3 Ejemplo 3

Cualquier comando o software puede ser ejecutado mediante module_exec mientras la salida sea compatible con los valores aceptados por Pandora FMS (numérico, alfanumérico o booleano), por lo que es posible indicar scripts personalizados:

module_exec myScript.pl --h 127.0.0.1 -v cpu

De nuevo el agente ejecutará el comando en la shell y recogerá el resultado, igual que si fuera ejecutado por un operador:

$> myScript.pl --h 127.0.0.1 -v cpu

1.1.1.2 Configuración remota

En la versión Enterprise es posible gestionar remotamente los ficheros de los Agentes Software desde la Consola Web de Pandora FMS. Esto permite la administración centralizada de todos nuestros agentes software sin necesidad de acceder físicamente a los sistemas donde se encuentran instalados.

La configuración de cada agente se almacena en el servidor de Pandora FMS en dos ficheros: <md5>.conf y <md5>.md5, donde <md5> es el hash del nombre del Agente software. Estos ficheros son almacenados respectivamente en /var/spool/pandora/data_in/conf y /var/spool/pandora/data_in/md5. La Consola se encarga de mantener sincronizados dichos ficheros en el servidor Pandora FMS y los respectivos locales donde esté instalado cada Agente Software.

Sw-agent.png

Para habilitar la configuración remota solo hay que habilitar el parámetro correspondiente en el fichero de configuración local del agente en primer lugar. A partir de este momento todos los cambios deberán hacerse desde la consola de Pandora FMS:

remote_config 1

Info.png

Una vez que la configuración remota del agente está activada, cualquier cambio que se haga localmente en el fichero de configuración será sobreescrita por la configuración almacenada en la consola. Para volver a la administración local del Agente Software, detenga su servicio, restablezca remote_config a cero e inicie el servicio de nuevo.

 


1.1.1.2.1 Custom fields
Administrador de campos personalizados para agentes

Los campos personalizados permiten añadir información adicional al agente. Puede crear campos personalizados en Resources > Custom fields.

Info.png

Es posible incluir enlaces en los custom fields usando las etiquetas [url]enlace[/url] o [url=enlace]Nombre web[/url].

 


De manera predeterminada los campos Display up front y Enabled combo vienen deshabilitados:

"Display up front" y "Enabled combo" deshabilitados
  • Al activar el campo Display up front la información del campo personalizado se mostrará en la vista general del agente. Además, será necesario activar este token para enviar la información de los Custom Fields a la Metaconsola y poder mostrarla en la vista de la Metaconsola y trabajar en la Custom Field View con estos datos:
"Display up front" activado


EqyIkxu4qJ.png
X1fYvcHCZt.png
  • Enabled combo: Una vez activado, en la ventana de configuración del custom field correspondiente aparecerá un nuevo campo para introducir los valores del combo separados por comas. Este parámetro permite activar la configuración de parámetros seleccionables desde un desplegable.

Template warning.png

Si se activa el parámetro "Enabled combo", "Password type" quedará inhabilitado.

 


Los custom fields también se pueden pasar desde el fichero de configuración del agente, utilizando el siguiente token de configuración, por ejemplo:

custom_field1_name Model
custom_field1_vale i386

1.1.1.3 Parámetros de configuración comunes

Parámetros más importantes para la configuración básica del agente (mayores detalles en Agentes software de Pandora FMS):

  • server_ip: Dirección IP del servidor de Pandora FMS.
  • server_path: Ruta de la carpeta de entrada incoming del servidor Pandora FMS, por defecto /var/spool/pandora/data_in.
  • temporal: Carpeta, por defecto /tmp.
  • logfile: Archivo de log del Agente Software, por defecto /var/log/pandora/pandora_agent.log.
  • interval: Intervalo de ejecución del agente, por defecto 300 segundos.
  • debug: Al estar activado (valor 1) fija el modo de depuración debug, así no envía los XML al servidor para poder analizar el XML generado.
  • agent_name: Nombre, por defecto el hostname.


Ejemplo en ambiente *nix:

server_ip       192.168.1.1 
server_path     /var/spool/pandora/data_in 
temporal        /tmp 
logfile         /var/log/pandora/pandora_agent.log 
interval        300 
debug           0 
agent_name      box01 
server_port     41121 
transfer_mode   tentacle 
remote_config    1 

Ejemplo en ambiente MS Windows®:

server_ip       192.168.1.1 
server_path     /var/spool/pandora/data_in 
temporal        "C:\Program Files\pandora_agent\temp"
logfile         "C:\Program Files\pandora_agent\pandora_agent.log"
interval        300 
debug           0 
agent_name      box02
server_port     41121 
transfer_mode   tentacle 
remote_config   1

1.1.1.4 Grupos protegidos por contraseña

Por defecto, cuando un agente envía datos por primera vez al servidor de Pandora FMS se añade de forma automática al grupo que se haya definido en el fichero de configuración del agente. Esto significa que, en la práctica, cualquiera puede añadir un agente a un grupo si conoce el nombre del grupo. Esto podría suponer un problema si varios clientes comparten su instancia de Pandora FMS o si quiere controlar lo que hay en cada grupo.

Es posible configurar de manera opcional una contraseña para un grupo desde la Consola de pandora FMS. Un agente no se añadirá a un grupo a menos que se haya especificado la contraseña correcta en el fichero de configuración del agente.

1.1.1.4.1 Ejemplo

Para configurar una contraseña para un grupo, vaya al editor de grupos y haga clic en editar, introduzca la contraseña del grupo y guarde sus cambios:

Passgr1.JPG

Para añadir un agente nuevo a este grupo, edite su fichero de configuración y añada la siguiente opción de configuración:

 group_password <password>

Info.png

Recuerde reiniciar el servicio del Agente Software para hacer efectivos los cambios. Luego el agente debe crearse correctamente en la Consola de Pandora FMS.

 


1.1.2 Módulos en Agentes y Agentes Software

1.1.2.1 Tipos de módulos

En función del tipo de dato devuelto:

  • generic_data: datos numéricos y de coma flotante.
  • generic_data_inc: tipo de datos numéricos crecientes. Almacena la diferencia entre el dato anterior y el dato actual dividida por el tiempo transcurrido en segundos, mostrando la tasa por segundo. Se utiliza para contar los ciclos por segundo (Hertz) de algo, como por ejemplo, entradas en un log/seg, bytes recibidos/seg, conexiones entrantes/seg, etc.
  • generic_data_inc_abs: tipo de datos numéricos crecientes absolutos. Almacena la diferencia entre el dato anterior y el dato actual, sin realizar la división entre los segundos transcurridos, por lo que el valor corresponderá al incremento total entre las dos ejecuciones, sin importar el factor tiempo. Este tipo de datos se utiliza para contar el número de veces de algo, como por ejemplo, entradas en un log, bytes totales recibidos, cantidad de conexiones entrantes, etc.
  • generic_proc: tipo de datos booleano, cero (0) significa Falso o incorrecto (preconfigurado como "estado crítico") y valores por encima de cero significan Cierto o correcto.
  • generic_data_string: tipo de datos alfanuméricos (texto).
  • async_data: contiene un valor generic_data pero solo se actualizan cuando existe un cambio. Los tipos de datos asíncronos no tienen una periodicidad de tiempo definida.
  • async_string: igual que async_data pero con dato tipo generic_string. Útil para monitorizar búsquedas dentro de logs o visores de eventos.
  • async_proc: igual que async_data pero con dato tipo generic_proc (booleano).
  • Modulo de imagen: utilizan como base un módulo de tipo cadena de texto (generic_data_string o async_string). Si el dato que contiene el módulo es una imagen codificada en base64,(encabezado "data:image") será identificado como una imagen y habilitará en las vistas un enlace a una ventana para recuperar la imagen. Además se mostrarán en su respectivo histórico un contenido de las distintas imágenes que conforman las cadenas almacenadas.

1.1.2.2 Intervalos en los módulos locales

Los módulos locales (o de agente software) tienen todos como "base" el intervalo de su agente. Sin embargo, pueden tomar valores múltiplos de esa base si modifica el parámetro module_interval con un multiplicar entero mayor que cero; por ejemplo:

module_interval 2

Si un agente tiene un intervalo de 300, el módulo del intervalo será de 300x2 (600).

1.1.2.3 Interfaz de creación de módulos

Info.png

Funcionalidad solo para versión Enterprise; la configuración remota del Agente Software respectivo debe estar habilitada.

 


La creación de módulos locales en la consola se realiza mediante un formulario donde, además de la configuración común de todo módulo (umbrales, tipo, grupo, etcétera) dispone de una caja de texto donde especificar los datos de configuración a establecer en el fichero de configuración del Agente Software.

Local module editor.png
  • Al hacer clic en el botón Load basic (template), se borrará el contenido de Data configuration con una plantilla básica que deberemos modificar de acuerdo a la necesidad de monitorización.
  • Una vez modificado, al hacer clic en Check (syntax) verificará que la sintaxis de plantilla siga siendo correcta, sin embargo, el resto de los comando no serán comprobados.

Cuando un módulo es cargado desde un componente local, puede tener macros. Si tiene macros, la caja de configuración estará oculta y aparecerá un campo por cada macro, ver más información en Plantillas y componentes

1.1.3 Monitorización condicionada

1.1.3.1 Postcondiciones

El Agente Software soporta la ejecución de comandos y scripts en modo de postcondiciones. Esto quiere decir que se pueden realizar acciones dependiendo del valor obtenido en la ejecución del módulo.

1.1.3.1.1 Ejemplo 1

Mediante el parámetro module_condition indicaremos un valor (o rango de valores) y la ejecución a realizar en caso de que el dato obtenido cumpla con la condición (uso de CPU menor al 20%):

module_begin
module_name CPU_Usage_Condition
module_type generic_data
module_exec get_cpu_usage.pl
module_condition < 20 add_processes.sh
module_end
1.1.3.1.2 Ejemplo 2

Se pueden especificar múltiples condiciones para un mismo módulo, en un rango y con un umbral mínimo (matemáticamente, se ejecuta una o ninguna de las dos opciones ) :

module_begin
module_name CPU_Usage_Condition
module_type generic_data
module_exec get_cpu_usage.pl
module_condition (90, 100) remove_processes.sh
module_condition < 20 add_processes.sh
module_end
1.1.3.1.3 Ejemplo 3

Similar al ejemplo anterior, pero puede ejecutar ambas condiciones o una o ninguna (probar con valores escogidos: si es 5, 15 ó 30):

module_begin
module_name CPU_Usage_Condition
module_type generic_data
module_exec get_cpu_usage.pl
module_condition < 10 start_new_server.sh
module_condition < 20 add_processes.sh
module_end

1.1.3.2 Precondiciones

El parámetro module_precondition permite evaluar una condición antes de la ejecución del módulo y con el resultado decidir si el módulo se debe ejecutar o no.

Info.png

Se debe hacer la abstracción mental de asignar el valor a module_precondition y luego comparar con la condición

 


1.1.3.2.1 Ejemplo 1

Según el uso de CPU, si los procesos activos son más de diez, obtener el porcentaje de uso del CPU y reportar al servidor Pandora FMS:

module_begin
module_name CPU_Usage
module_type generic_data
module_precondition > 10 number_active_processes.sh
module_exec get_cpu_usage.pl
module_end
1.1.3.2.2 Ejemplo 2

Se pueden especificar múltiples precondiciones para un mismo módulo y se deben cumplir todas:

module_begin
module_name CPU_Usage
module_type generic_data
module_precondition > 10 number_active_processes.sh
module_precondition > 1 important_service_enabled.sh
module_exec get_cpu_usage.pl
module_end

En este caso el módulo se ejecuta solo si hay más de diez procesos activos y si al menos uno de ellos es un proceso importante.

1.1.4 Monitorización intensiva

Existen ciertos módulos que tienen una importancia especial, tales como procesos o servicios críticos en ejecución. Para poder tener una monitorización más controlada de estos casos existe la monitorización intensiva.

Consiste en avisar en un intervalo más corto de que ha aparecido un problema serio sin necesidad de reducir el intervalo general del agente.

Configuración en Agente Software:

  • interval: obligatorio, tiempo de muestreo del agente en segundos, es el intervalo general para todos los módulos locales.
  • intensive_interval: opcional, tiempo en que avisará si existe algún problema.

Configuración en módulo:

  • module_intensive_condition = <valor>: si el módulo obtiene como resultado el <valor> indicado en este parámetro, notificará en el intervalo intensivo antes definido.

1.1.4.1 Ejemplo

El servicio sshd es muy importante pues es utilizado para conectar por shell de manera remota, necesitamos monitorizar su funcionamiento:

intensive_interval 10
interval 300
module_begin
module_name SSH Daemon
module_type generic_data
module exec ps aux | grep sshd | grep -v grep | wc -l
module_intensive_condition = 0
module_end

Si el servicio está ausente, se notificará en los próximos 10 segundos, si está funcionando notificará cada 5 minutos (intervalo normal, 300 segundos).

1.1.5 Monitorización programada

El Agente Software soporta la definición de módulos programados que se ejecutan en los instantes definidos. La sintaxis usada es la misma que la del fichero crontab. Un ejemplo de la definición del módulo para que ejecute todos los días lunes entra las 12 y las 15 horas:

module_begin
module_name crontab
module_type generic_data
module_exec script.sh
module_crontab * 12-15 * * 1
module_end

Para ejecutar en el minuto 10 de cada hora:

module_begin
module_name crontab
module_type generic_data
module_exec script.sh
module_crontab 10 * * * *
module_end

Info.png

Si utilizamos un intervalo que ocasione que el módulo no reporte datos, este módulo se pondrá en estado "desconocido". Para estos casos utilice módulos asíncronos.

 


1.2 Chequeos remotos con el agente software

Cuando servidor principal de Pandora FMS no tiene acceso para realizar chequeos remotos (generalmente por cuestiones de seguridad), un Agente Software es capaz de tomar su lugar para dichas tareas e incluso puede distribuirlos en agentes broker

1.2.1 Chequeos ICMP

Los chequeos ICMP o ping son muy útiles para saber si una máquina está conectada o no a una red. De esta forma, un solo agente software podría monitorizar el estado de todas las máquina de una forma sencilla.

Unix

Usando los comandos del sistema (todos los parámetros en la "línea de comando" module_exec):

module_begin
module_name Ping
module_type generic_proc
module_exec ping -c 1 192.168.100.54 >/dev/null 2>&1; if [ $? -eq 0 ]; then echo 1; else echo 0; fi
module_end

Nota: sustituir "192.168.100.54" por la dirección IP a monitorizar.

MS Windows®.

Los parámetros se deben especificar en module_ping_count (número de paquetes, 1 por defecto) y module-ping_timeout (tiempo límite en segudos, 1 por defecto); ejemplo:

module_begin
module_name Ping
module_type generic_proc
module_ping 192.168.100.54
module_ping_count 2
module_ping_timeout 5
module_end

Nota: module_advanced_options permite opciones avanzadas para ping.exe.

1.2.2 Chequeos TCP

Los chequeos TCP son útiles para verificar que los puertos de una máquina permanecen abiertos y permiten conocer si una aplicación conecta o no a la red.

Unix

Con el comando nmap y sus parámetros de configuración en la línea de comando, a una dirección IP chequeamos si el puerto 80 está abierto (tiempo de espera de respuesta de 5 segundos):

module_begin
module_name PortOpen
module_type generic_proc
module_exec nmap 192.168.100.54 -p 80 | grep open > /dev/null 2>&1; echo $?; if [ $? == 0 ]; then echo 1; else echo 0; fi
module_timeout 5
module_end
MS Windows®.

Los parámetros se deben especificar en:

  • module_tcpcheck: dirección IP del dispositivo.
  • module_port: número de puerto.
  • module_timeout: tiempo de espera para la respuesta.

Ejemplo:

module_begin
module_name PortOpen
module_type generic_proc
module_tcpcheck 192.168.100.54
module_port 80
module_timeout 5
module_end

1.2.3 Chequeos SNMP

Los chequeos SNMP son muy comunes en la monitorización de dispositivos de red para comprobar el estado de interfaces, bytes de entrada/salida, etc.

Unix

Utilizando el comando snmpget, por ejemplo:

module_begin
module_name SNMP get
module_type generic_data
module_exec snmpget 192.168.100.54 -v 1 -c public .1.3.6.1.2.1.2.2.1.1.148 | awk '{print $4}'
module_end

Este módulo devuelve el valor del OID .1.3.6.1.2.1.2.2.1.1.148 del host 192.168.100.54.

MS Windows®.

Configuración de los parámetros:

  • module_snmpversion [1,2c,3]: Versión de SNMP (1 por defecto).
  • module_snmp_community <community>: Comunidad SNMP (public por defecto).
  • module_snmp_agent <host>: Agente SNMP objetivo.
  • module_snmp_oid <oid>: OID objetivo.
  • module_advanced_options: Opciones avanzadas para snmpget.exe.

Ejemplo que realiza lo mismo que el ejemplo anterior:

module_begin
module_name SNMP get
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.148
module_end

1.3 Modo Proxy

Template warning.png

Para usar el modo proxy del agente de Pandora FMS en Linux/Unix no puede ser ejecutado por el usuario root, por ello es necesario una instalación especial del agente de Pandora FMS. Para ello consulte la Instalación personalizada del Agente

 


Los Agentes Software de Pandora FMS tienen un Modo Proxy que les permite redirigir los ficheros de datos generados por otros Agentes Software al servidor de Pandora FMS. El agente software que actúa en Modo Proxy también puede realizar tareas de monitorización.

Proxy-mode.png

El modo proxy fue creado para redes de área local donde un solo ordenador está expuesto al Internet, donde se encuentra el servidor de Pandora FMS. Es necesario monitorizar con Agentes Software el resto de equipos de esa red; los otros equipos se comunicarán con el proxy en lugar de con el server. El Modo Proxy también soporta las características de Configuración Remota y Colecciones de Ficheros.

Configuración de los parámetros:

  • server_ip: IP del servidor de Pandora FMS.
  • proxy_mode: activado (1) o desactivado (0).
  • proxy_max_connection: número de conexiones simultáneas del proxy, por defecto 10.
  • proxy_timeout: tiempo de espera de respuesta para el proxy, por defecto 1 segundo.
  • proxy_address: dirección en la que escucha el proxy.
  • proxy_port: puerto en el que escucha el proxy.

Ejemplo:

server_ip 172.17.100.230
proxy_mode 1
proxy_max_connection 20
proxy_timeout 3

Para redirigir la conexión de un agente software sólo se debe colocar como dirección del servidor de Pandora FMS la del Agente proxy con el Modo Proxy activado.

Por ejemplo, el Agente Software en Modo Proxy tiene la dirección IP 192.168.100.24, el resto de los Agentes Software deben ser configurados con:

server_ip 192.168.100.24

1.4 Modo Broker

EL Modo Broker de los Agentes Software permite a un solo agente realizar chequeos y gestionar la configuración como si se tratara de varios distintos.

Modo-broker.png

Cuando se activa el Modo Broker en un Agente Software, se crea un nuevo fichero de configuración. A partir de ese momento, el Agente Software original y el nuevo broker se gestionarán de forma separada con sus ficheros de configuración independientes, como si fuesen dos Agentes Software totalmente separados en la misma máquina.

Finalidades principales:

  • Enviar datos locales como otro agente. Muy útil para monitorizar instancias software como agente independientes.
  • Enviar datos recolectados de chequeos remotos a otras máquinas como si hubiera un agente software instalado en ella.

Para crear un broker sólo tiene que añadir una línea con el parámetro broker_agent <nombre_broker>. Es posible crear tantos agentes Broker como se quiera, añadiendo las correspondientes líneas broker_agent:

broker_agent dev_1
broker_agent dev_2

Una vez creados los brokers se crearán sus archivos de configuración dev_1.conf y dev_2.conf con el mismo contenido que el agente software original, pero con su nombre correspondiente. Añadiendo o quitando módulos de los archivos de configuración dev_1.conf y dev_2.conf podemos personalizar los chequeos realizados por los brokers.

En la consola de Pandora FMS los brokers se ven y gestionan como agentes independientes, de forma que si tenemos un agente software instalado con dos brokers en la consola veremos tres agentes diferentes con sus módulos, configuraciones, etc.

NOTA: Las instancias del modo broker no pueden utilizar colecciones. Si desea utilizar colecciones, debe distribuirlas y/o usarlas en el agente "real" que se utiliza como base en al agente broker, no en una de sus instancias.

Template warning.png

Los módulos que guardan datos en memoria entre ejecuciones (module_logevent y module_regexp en MS Windows®) no funcionan cuando hay agentes broker configurados.

 


1.4.1 Ejemplos de uso del modo Broker

1.4.1.1 Monitorizar una base de datos local como otro agente

Como ejemplo, existe un Agente Software instalado que realiza monitorización de CPU, memoria y disco de un ordenador que además ejecuta una base de datos. Para realizar monitorización de forma independiente, añadimos la línea:

broker_agent DBApp

Con esto creamos el agente broker con nombre DBApp que genera el archivo de configuración dbapp.conf. Allí agregamos, para monitorizar la base de datos (número de usuarios conectados y número de consultas lentas):

module_begin
module_name Num Users
module_type generic_data
module_exec get_db_users.pl
module_end

module_begin
module_name Num slows queries
module_type generic_data
module_exec get_db_slows_queries.pl
module_end

La Consola de Pandora FMS mostrará uno con el nombre de la máquina y los módulos de CPU, memoria y disco y, además, otro llamado DBApp con los módulos Num Users y Num slows queries.

1.4.1.2 Monitorizar dispositivos de forma remota usando brokers

Como ejemplo, existe un Agente Software instalado en una máquina con MS Windows® que monitoriza CPU, memoria y disco. Necesitamos monitorizar un router con IP 192.168.100.54 sin instalar un agente dentro. Para ello creamos un broker con el parámetro:

broker_agent routerFloor5

Con esto creamos el Agente Broker de nombre routerFloor5. Luego al fichero routerFloor5.conf modificar las líneas para albergar los módulos disponibles de ping y snmp:

module_begin
module_name Ping
module_type generic_proc
module_ping 192.168.100.54
module_ping_count 2
module_ping_timeout 500
module_end

module_begin
module_name Eth 1 up
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.1
module_end

module_begin
module_name Eth 2 up
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.2
module_end

La Consola web mostrará dos agentes: uno es la máquina Windows con los módulos de CPU, memoria y disco y otro es routerFloor5 con los módulos: "Ping", "Eth 1 up" y "Eth 2 up".

1.4.1.3 Monitorización remota de redes inaccesibles

En algunas situaciones es necesario monitorizar dispositivos de forma remota, pero el Servidor Remoto de Pandora FMS no puede acceder directamente a ellos.

Broker example no access.png

El agente Software en Modo Broker permite enviar los XMLs al servidor de Pandora como si se tratase de varios dispositivos distintos. Para ello añadiremos tantos brokers como dispositivos a monitorizar, por ejemplo:

broker_agent device_1
broker_agent device_2
broker_agent device_3
broker_agent device_4
...

Una vez creados los brokers podemos personalizar la monitorización para cada dispositivo accediendo a los archivos de configuración de cada broker tal como se ha explicado para cada Agente Software en modo de chequeo remoto.

1.4.1.4 Distribuir la carga de monitorización con brokers

Broker scalation example.png

La capacidad del Servidor Remoto de Pandora FMS está en torno a 2000 agentes, trabajando con Agentes Broker podemos elevar a 3000 y liberar de gran parte del trabajo al servidor principal. En el gráfico, cada una de las redes tiene un Agente Software con el Modo Broker activado, en él crearemos tantos broker como dispositivos tengamos que monitorizar. Por ejemplo, la configuración para el agente Broker_Agent_Net_A sería:

broker_agent device_1
broker_agent device_2
broker_agent device_3
broker_agent device_4
...

Además para cada uno de los brokers añadiríamos los módulos correspondientes para monitorizar los dispositivos, como se ha explicado anteriormente.

1.5 Inventario con agente software

El Agente Software de Pandora FMS soporta funciones de inventario tanto de hardware como de software. El sistema de inventario permite mantener un histórico de CPU, tarjetas, memoria RAM, parches, software, etc. usados en los servidores de la compañía. Además es posible generar alertas ante cambios en el inventario, como por ejemplo un reemplazo no autorizado de disco duro o la desinstalación de una aplicación.

Para más información visite la sección Inventario local con agentes software.

1.6 Acciones remotas por UDP

Un Agente Software es capaz de recibir peticiones remotas y ejecutar órdenes.

Template warning.png

Tenga presente que UDP es por naturaleza inseguro (pero eficiente para enviar mensajes sin comprometer una respuesta cierta).

 


Para permitir que el servidor PFMS envie órdenes a los Agentes Software a su cargo, se debe configurar:

  • udp_server: cero por defecto, valor en uno (1) para activar esta funcionalidad.
  • udp_server_port: puerto de escucha en Agente Software.
  • udp_server_auth_address: dirección IP del servidor Pandora FMS

Reinicie el Agente Software para que los cambios se apliquen.

Template warning.png

Aunque puede establecerse a 0.0.0.0 para que acepte desde todos los orígenes, dicha práctica no es recomendada. Si tiene varios Servidores PFMS y/o utiliza IPv6 puede colocar diferentes direcciones IP separadas por comas. Por ejemplo si tiene en IPv6 2001:0db8:0000:130F:0000:0000:087C:140B, su abreviatura es 2001:0db8:0:130F::87C:140B utilice ambas separadas por comas.

 

.

1.6.1 Cómo solicitar reinicio de servicio de Agentes Software

Se debe utilizar el script udp_client.pl, presente en el servidor de Pandora FMS y normalmente ubicado en /usr/share/pandora_server/util. Se puede ejecutar desde línea de comando o bien utilizarlo en una alerta, mediante el comando que viene preconfigurado en la consola "Remote agent control".

Existe también una acción de alerta por defecto llamada Restart agent sobre este script, empleando la acción REFRESH AGENT.

Agent restart action.png

Luego puede forzar la ejecución de la alerta o bien forzar un estado incorrecto del módulo para que la alerta se dispare y comprobar así la configuración.

1.6.2 Acciones remotas personalizadas

Además de la acción de reiniciar servicio de Agente Software, se pueden especificar acciones personalizadas. Para ello se debe añadir una línea por cada comando a ejecutar, con el siguiente esquema:

process_<nombredelaorden>_start comando


Por ejemplo, si queremos una orden remota para iniciar el servicio sshd:

process_sshd_start /etc/init.d/sshd start

A continuación, se debe crear una acción de alerta en Pandora FMS Console para cada comando remoto que hayamos creado. El comando a utilizar será "Remote agent control" (creado por defecto, está preparado para mandar órdenes UDP) e insertar en el campo 1 "START PROCESS sshd":

Udp process.JPG

Luego crear una nueva alerta manual con la nueva acción en el agente cuyo servicio sshd deseemos iniciar; al forzar la alerta, la orden se enviará y el Agente software iniciará el servicio.

Info.png

También pueden crearse órdenes que llamen a scripts. Esto permite realizar una gran cantidad de acciones remotas en un Agente Software con sólo pulsar un botón.

 


1.7 Plugins en agentes software

Se caracterizan por realizar comprobaciones avanzadas complejas desde los agentes software, pudiendo devolver como resultado varios módulos en lugar de un único valor. A diferencia de los plugins de servidor, que se ejecutan por el servidor de Pandora FMS, los de Agente Software devuelven sus datos en un XML, reportando uno o varios módulos a la vez.

1.7.1 Ejecución en sistemas Windows

En MS Windows®, todos los plugins por defecto están programados en VBScript, para ejecutarlos es necesario usar el intérprete adecuado indicando la ruta completa.

Ejemplos:

module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\logevent_log4x.vbs" Aplicacion System 300
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" iexplore.exe myapp.exe

El Agente Software para Windows trae diversos plugins listos para utilizarse.

1.7.2 Ejecución en sistemas Unix

Los plugins de Unix se buscan por defecto en el directorio del agente, en /etc/pandora/plugins, por lo que se invocan y a continuación se le pasan los parámetros que sean necesarios:

 module_plugin grep_log /var/log/syslog Syslog .
 module_plugin pandora_df tmpfs /dev/sda1

El agente software Unix trae varios plugins listos para funcionar.

1.7.3 Gestión de plugins de Agente Software desde la Consola

En la versión Enterprise es posible administrar sin editar directamente el fichero de configuración. Al tener la configuración remota activada, un Agente Software en su vista de administración dispondrá de la pestaña del editor de plugins.

Plugin editor tab.png

Este apartado muestra el listado de los plugins activos en el agente, y permite eliminarlos, añadirlos y desactivarlos. En el caso de los plugins de política puede ser útil desactivarlos porque al volver a aplicar la política se mantendrán desactivados.

Plugin editor.png

Los plugins administrados en este editor pueden ser, a su vez, editados desde el fichero de configuración del agente.

Plugin editor conf.png

1.7.4 Ejemplo 1

Los plugin para el agente software puede devolver un dato o un grupo de ellos. Un ejemplo de plugin que devuelve un dato es ps.vbs en ambiente Windows, el cual comprueba si un proceso se encuentra en ejecución.

module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" IEXPLORE.EXE

El resultado será un módulo que devuelve 0 si el proceso no está activo y 1 si está activo:

<module>
    <name><![CDATA[IEXPLORE.EXE]]></name>
    <description><![CDATA[Process IEXPLORE.EXE status]]></description>
    <data><![CDATA[1]]></data>
</module>

1.7.5 Ejemplo 2

El plugin df.vbs en ambiente Windows devuelve el espacio libre en cada dispositivo de almacenamiento con la siguiente orden:

module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"

Resultado:

<module>
    <name><![CDATA[C:]]></name>
    <description><![CDATA[Drive C: free space in MB]]></description>
    <data><![CDATA[805000]]></data>
</module>

<module>
    <name><![CDATA[D:]]></name>
    <description><![CDATA[Drive D: free space in MB]]></description>
    <data><![CDATA[90000]]></data>
</module>

1.7.6 Cómo crear plugins personalizados para Agente Software

Los plugin pueden ser creados en cualquier lenguaje de programación. Solo se debe tener en cuenta las normas generales y las normas específicas para su desarrollo.


1.7.7 Utilizando plugins de Nagios desde Agente Software

Nagios tiene un gran número de plugins que puede utilizar con Pandora FMS. Un modo de hacerlo es utilizar los plugins remotos con el Plugin Server, usando la compatibilidad de Nagios. Pero de este modo, sólo conseguirá sus estados, ya que no utiliza la salida descriptiva que tienen algunos plugin para Nagios.

Para ello fue creado el wrapper de plugins de Nagios que lidia con esta situación. El wrapper viene por defecto con el agente de Unix 3.2, en ambiente Windows debe descargar un equivalente desde la librería de recursos de Pandora FMS.

Funcionamiento general

El wrapper ejecuta el plugin de Nagios, utilizando sus parámetros originales y convirtiendo su salida en datos útiles para Pandora FMS. Contiene dos tipos de información:

  • Información acerca del estado teniendo en cuenta los niveles de error de Nagios: NORMAL (1), CRITICAL (0), WARNING (2), UNKNOWN () y otras (4). Por defecto, utilizarán un módulo proc, con lo que los valores NORMAL y CRITICAL están trabajando "por defecto"; si usted desea tener información acerca de WARNING y otros valores, deberá configurar los umbrales del módulo de manera manual.
  • Información de tipo descriptivo: Generalmente información de cadenas. Se situará en el campo de descripción del módulo, por ejemplo:
<![CDATA["OK: successfully logged in"]]>


1.8 Monitorización con KeepAlive

Un módulo singular en Pandora FMS es el tipo llamado keep_alive, utilizado para alertar si un Agente Software ha dejado de enviar información (véase anteriormente Acciones remotas por UDP). Dicha alerta ocurre cuando no ha actualizado su fecha de último contacto en el doble de tiempo de su intervalo, disparándose y marcando el monitor en estado Critical.

Info.png

El módulo KeepAlive se puede crear solo desde la consola (aunque no tengamos configuración remota habilitada) y no deja ninguna traza en el fichero pandora_agent.conf

 


Creación de un nuevo módulo de tipo "KeepAlive":

Keepalive.JPG

Funcionamiento en estado "NORMAL" (verde):

Keepalive1.png

Si el agente deja de enviar datos (para este ejemplo tenía un intervalo de 1 minuto), entonces automáticamente saltará y cambiará a estado CRITICAL (rojo):

Keepalive2.png

Cabe destacar que si tenemos un módulo remoto, por ejemplo, un Ping, además de los datos reportados por el agente, el módulo KeepAlive nunca saltaría, ya que estamos actualizando el agente constantemente mediante el Ping. Por lo demás se comporta como cualquier otro módulo: se le puede asociar una alerta y se puede usar para cualquier otro elemento como informes, mapas, etcétera.

1.9 Monitorización de capturas de comandos (Command snapshots)

Snapshot 1.png

Comandos que presenten salidas extensas, como top o netstat -n pueden ser capturados completamente por un módulo y reproducidos tal cual. El módulo debe configurarse como tipo texto.

Template warning.png

Para que esto funcione así, hay que configurar adecuadamente tanto la consola de Pandora (setup) como el agente que recoge esa información, asegurándose de que es texto sin tratar.

 


En la Consola, se debe activar la opción:

Command line snapshot setup.png

1.10 Monitorización y visualización de imágenes

Este método permite definir módulos de tipo cadena (generic_data_string o async_string) que contengan imágenes en formato texto con una codificación base64, pudiendo mostrar dicha imagen en lugar de un resultado concreto. Esta se almacena como información de texto, y se visualiza de una forma diferente, no como simples datos, sino reconstruyendo una imagen al hacer clic en el icono especial para las capturas de imágenes:

Snapshot text 1.png

Para capturar estas imágenes, basta con escribir un plugin que envíe todos los datos, generando los tags XML necesarios, y ejecutando el plugin como tal, con la directiva module_plugin. Ejemplo:

#!/bin/bash
echo "<module>"
echo "<name>Líder actual de la liga</name>"
echo "<type>async_string</type>"
echo "<data><![CDATA[data:image/jpeg;base64,/9j/4AAQSkZ....]]></data>"

// El dato anterior sería generado por un dispositivo/aplicación dando imágenes en base64.

echo "</module>"

Grabe ese contenido a un archivo en el agente (o distribúyalo con colecciones de ficheros) y ejecútelo de la siguiente manera:

module_plugin <vía completo al fichero>

1.11 Monitorización específica para Windows

El Agente Software para sistemas Windows tiene funcionalidades específicas para esta plataforma que ayudan a realizar la monitorización de una forma más sencilla. A continuación explicaremos las funcionalidades y aplicaremos unos ejemplos de las mismas. Normas comunes:

Info.png

Si el nombre del proceso contiene espacios en blanco no use «" "». El nombre del proceso debe ser el mismo que muestra el Administrador de Tareas ( taskmngr ) de Windows, incluyendo la extensión .exe; es importante respetar mayúsculas y las minúsculas.

 


Info.png

El Watchdog sólo funciona si el módulo es asíncrono.

 


1.11.1 Monitorización de procesos y watchdog de procesos

1.11.1.1 Monitorización de procesos

El parámetro module_proc comprueba si un determinado nombre de proceso está operando en esta máquina. Ejemplo de definición de módulo:

module_begin
module_name CMDProcess
module_type generic_proc
module_proc cmd.exe
module_description Process Command line
module_end

Para que avise inmediatamente cuando un proceso deja de funcionar se debe añadir el parámetro module_async yes (ver normas comunes al principio de sección Windows):

module_begin
module_name CMDProcess
module_type generic_proc
module_proc cmd.exe
module_async yes
module_description Process Command line
module_end

1.11.1.2 Watchdog sobre procesos

La funcionalidad de Watchdog del Agente Software de Pandora FMS para MS Windows® permite actuar inmediatamente ante el fin abrupto de un proceso, iniciándolo de nuevo.

Ejemplo:

module_begin
module_name Notepad
module_type generic_data
module_proc notepad.exe
module_description Notepad
module_async yes
module_watchdog yes
module_user_session yes
module_start_command c:\windows\notepad.exe
module_startdelay 3000
module_retrydelay 2000
module_retries 5
module_end

Cada vez que el programa bloc de notas deje de funcionar, el Watchdog ejecutará el comando c:\windows\notepad.exe (ver normas comunes al principio de sección Windows). La reactivación del proceso se intentará 5 veces con un tiempo de espera inicial de 3 segundos y con un tiempo de espera entre reintentos de 2 segundos en la sesión activa del usuario.

1.11.2 Monitorización de servicios y watchdog de servicios

1.11.2.1 Monitorización de servicios

El parámetro module_service comprueba si un determinado servicio se está ejecutando en la máquina. La definición de un módulo usando este parámetro sería:

module_begin
module_name Service_Dhcp
module_type generic_proc
module_service Dhcp
module_description Service DHCP Client
module_end

Para que avise inmediatamente cuando un proceso deja de funcionar se debe añadir el parámetro module_async yes (ver normas comunes al principio de sección Windows):

module_begin
module_name Service_Dhcp
module_type generic_proc
module_service Dhcp
module_description Service DHCP Client
module_async yes
module_end

1.11.2.2 Watchdog de servicios

Funciona de manera similar al Watchdog de procesos. Ejemplo:

module_begin
module_name ServiceSched
module_type generic_proc
module_service Schedule
module_description Service Task scheduler
module_async yes
module_watchdog yes
module_end

La definición del watchdog para servicios no requiere ningún parámetro adicional como el de procesos, porque esa información ya está dentro de la definición del servicio.

1.11.3 Monitorización de recursos básicos

Este apartado muestra cómo monitorizar los recursos básicos de una máquina Windows.

1.11.3.1 Monitorizando la CPU

El parámetro module_cpuusage devuelve el porcentaje de CPU en uso. Es posible monitorizar las cpu por id con la siguiente definición de módulo:

module_begin
module_name CPU_1
module_type generic_data
module_cpuusage 1
module_description CPU usage for CPU 1
module_end

También puede monitorizar la media de uso de todas las CPUs del sistema con el módulo:

module_begin
module_name CPU Usage
module_type generic_data
module_cpuusage all
module_description CPU Usage for all system
module_end

1.11.3.2 Monitorizando la memoria

Para monitorizar la memoria existen dos parámetros: module_freememory, que devuelve la cantidad de memoria libre del sistema, y module_freepercentmemory, que devuelve el porcentaje de memoria libre del sistema.

Módulo de ejemplo para module_freememory:

module_begin
module_name FreeMemory
module_type generic_data
module_freememory
module_description Non-used memory on system
module_end

Módulo de ejemplo para module_freepercentmemory:

module_begin
module_name FreePercentMemory
module_type generic_data
module_freepercentmemory
module_end

1.11.3.3 Monitorizando el disco

Para monitorizar el disco disponemos de dos parámetros: module_freedisk , que devuelve la cantidad de espacio libre, y module_freepercentdisk, que devuelve el porcentaje de espacio libre. Ambos módulos requieren como parámetro la unidad de disco a monitorizar, recuerde agregar el caracter :, ejemplo:

module_begin
module_name FreeDisk
module_type generic_data
module_freedisk C:
module_end

Ejemplo de módulo para module_freepercentdisk:

module_begin
module_name FreePercentDisk
module_type generic_data
module_freepercentdisk C:
module_end

1.11.3.4 Consultas WMI

El Agente Software de Pandora permite extraer información a través de consultas WMI, que es una fuente de información ampliamente utilizada para obtener información del sistema y externa a este.

Usando el parámetro module_wmiquery el Agente Software permite ejecutar localmente cualquier consulta WMI. Para realizar la consulta se define la query WMI en el parámetro module_wmiquery y la columna que contiene la información a monitorizar con el parámetro module_wmicolumn.

Por ejemplo, obtener una lista de los servicios instalados:

module_begin
module_name Services
module_type generic_data_string
module_wmiquery Select Name from Win32_Service
module_wmicolumn Name
module_end

Obtener la carga actual de CPU:

module_begin
module_name CPU_Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_end

1.12 Versiones anteriores a 7 NG

1.12.1 Nombre de los agentes

A partir de la versión 7 de Pandora FMS los agentes tienen un alias y un nombre (o identificador único). Un agente configurado por defecto generará un nombre (o identificador) basado en una cadena hexadecimal pseudoaleatoria, y un alias (o nombre visible) basado en el hostname de la máquina.

En versiones anteriores solo existía el "nombre" de la máquina, y el sistema anterior es totalmente compatible con las versiones más modernas de Pandora FMS, solo que si en una misma instalación de Pandora FMS encuentra dos agentes con el mismo identificador (o nombres) los datos de ambos agentes se mezclarán y/o pisarán. Por eso introdujimos a partir de la versión 7 la posibilidad que agentes con diferente nombre pudieran tener el mismo alias.

Para cambiar este comportamiento se utilizan los token de configuración siguientes:

pandora_agent
pandora_alias

Por defecto, el fichero de configuración no utiliza ninguno de los dos, de forma que obtiene el hostname de la máquina como alias y un numero hexadecimal aleatorio muy grande como nombre o identificador. El nombre del agente no es ya visible (excepto en la vista detallada del agente) y NO se puede cambiar. El Alias del agente se puede cambiar en cualquier momento, sin tener que preocuparse de la configuración del agente software, ya que el que se usa para identificar unívocamente al agente es el "nombre" de agente.

Volver al Índice de Documentación Pandora FMS