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

From Pandora FMS Wiki
Jump to: navigation, search
(Introducción)
(Ejemplo de uso)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Pandora:Documentation|Volver a Indice de Documentacion Pandora FMS]]
 +
 +
 
= Introducción =  
 
= Introducción =  
 
<br>
 
<br>
En un primer paso hacia la orquestación/automatización IT, <b>Pandora FMS</b> presenta <b>Omnishell</b>.  
+
En un primer paso hacia la orquestación/automatización TI, <b>Pandora FMS</b> presenta <b>Omnishell</b>.  
  
 
Es una herramienta que permite definir comandos o bloques de comandos y seleccionar objetivos donde poder ejecutarlos.
 
Es una herramienta que permite definir comandos o bloques de comandos y seleccionar objetivos donde poder ejecutarlos.
Line 15: Line 18:
 
</center>
 
</center>
  
Omnishell se basa en la comunicación entre los distintos componentes de Pandora FMS a través de Tentacle para coordinar de forma segura las ejecuciones y respuestas de los comandos que se desee programar.  
+
Omnishell se basa en la comunicación entre los distintos componentes de Pandora FMS a través de Tentacle, para coordinar de forma segura las ejecuciones y respuestas de los comandos que se desee programar.  
  
 
Para configurarlo, deberá instalar los siguientes paquetes:  
 
Para configurarlo, deberá instalar los siguientes paquetes:  
Line 30: Line 33:
 
== Tentacle, nuevas opciones ==
 
== Tentacle, nuevas opciones ==
 
<br>
 
<br>
Con la inclusión de Omnishell, se habilitarán nuevas opciones para Tentacle:  
+
Con la inclusión de Omnishell se habilitarán nuevas opciones para Tentacle:  
  
 
*Tentacle necesita un cambio en la configuración para poder direccionar los archivos '.rcmd'.  
 
*Tentacle necesita un cambio en la configuración para poder direccionar los archivos '.rcmd'.  
Line 56: Line 59:
  
 
  chown pandora:apache -R /var/spool/pandora/data_in/commands
 
  chown pandora:apache -R /var/spool/pandora/data_in/commands
  chown g+s /var/spool/pandora/data_in/commands
+
  chmod g+s /var/spool/pandora/data_in/commands
  
 
<br>
 
<br>
Line 65: Line 68:
 
Este sistema está presente en el agente de Pandora FMS a partir de la versión 741.  
 
Este sistema está presente en el agente de Pandora FMS a partir de la versión 741.  
  
Requiere la librería perl YAML::Tiny para funcionar. Si esta librería no está disponible, el sistema ignora esta funcionalidad y sigue funcionando con total normalidad.  
+
Requiere la librería perl YAML::Tiny para funcionar. Si esta librería no está disponible, el sistema ignora esta funcionalidad y sigue trabajando con total normalidad.  
  
La instalación de esta librería habilita la funcionalidad. No debería ser necesario reiniciar el agente y este debería empezar a fnucionar directamente.  
+
La instalación de esta librería habilita la funcionalidad. No debería ser necesario reiniciar el agente y este debería empezar a funcionar directamente.  
  
No es necesario ningún cambio salvo tener activa la configuración remota. El sistema Omnishell utiliza un procedimiento similar al de las colecciones de ficheros.  
+
No es necesario ningún cambio, salvo tener activa la configuración remota. El sistema Omnishell utiliza un procedimiento similar al de las colecciones de ficheros.  
 
<br>
 
<br>
 
<br>
 
<br>
Line 77: Line 80:
 
Veamos un ejemplo para comprender mejor el funcionamiento de la nueva herramienta Omnishell.  
 
Veamos un ejemplo para comprender mejor el funcionamiento de la nueva herramienta Omnishell.  
  
<b>Problema</b>: Queremos configurar el auto inicio del servicio HTTPD en sistemas CentOS 6 de forma masiva.  
+
<b>Problema</b>: queremos configurar el autoinicio del servicio HTTPD en sistemas CentOS 6 de forma masiva.  
  
*<b>¿Cuál es nuestra precondición?</b> Que el servicio figure como instalado, e instalarlo en caso de que no lo esté:
+
*<b>¿Cuál es nuestra precondición?</b> : que el servicio figure como instalado, e instalarlo en caso de que no lo esté.
  
 
Por ejemplo:  
 
Por ejemplo:  
Line 87: Line 90:
 
Esta línea verificará si el servicio se encuentra instalado y lo instalará en caso de que no lo esté.  
 
Esta línea verificará si el servicio se encuentra instalado y lo instalará en caso de que no lo esté.  
  
*<b>¿Cuál es nuestra necesidad principal?</b> Iniciar y configurar el autoinicio del servicio HTTPD.  
+
*<b>¿Cuál es nuestra necesidad principal?</b>: iniciar y configurar el autoinicio del servicio HTTPD.  
  
 
Para ello usaremos los siguientes comandos:  
 
Para ello usaremos los siguientes comandos:  
Line 96: Line 99:
 
Esto iniciará el servicio en la máquina remota y configurará el sistema para autoarrancarlo.  
 
Esto iniciará el servicio en la máquina remota y configurará el sistema para autoarrancarlo.  
  
*<b>¿Cómo validamos lo realizado?</b> Comprobaremos que el sistema ha levantado el servicio y este está escuchando.  
+
*<b>¿Cómo validamos lo realizado?</b> : comprobaremos que el sistema ha levantado el servicio y que esté escuchando.  
  
 
  [ `netstat -lptn | grep 80 | grep LISTEN | wc -l` -gt 0 ]
 
  [ `netstat -lptn | grep 80 | grep LISTEN | wc -l` -gt 0 ]
Line 142: Line 145:
 
*Si la evaluación de cada orden no es 0 (<b>error_level !=0</b>), se dejará de evaluar y se dará como fallido el comando.  
 
*Si la evaluación de cada orden no es 0 (<b>error_level !=0</b>), se dejará de evaluar y se dará como fallido el comando.  
 
*El agente tomará los valores de los parámetros 'retry' y 'timeout' para el número de reintentos y tiempo máximo de ejecución, respectivamente.  
 
*El agente tomará los valores de los parámetros 'retry' y 'timeout' para el número de reintentos y tiempo máximo de ejecución, respectivamente.  
*Independientemente del resultado, el agente se guardará una marca de ejecución. <b>Cada comando se ejecuta sólo una vez</b>.  
+
*Independientemente del resultado, el agente se guardará una marca de ejecución. <b>Cada comando se ejecuta solo una vez</b>.  
 
*Si actualiza el nombre del comando provocará que el agente lo ejecute de nuevo, dado que la referencia cambiará.  
 
*Si actualiza el nombre del comando provocará que el agente lo ejecute de nuevo, dado que la referencia cambiará.  
 
*Puede asignar tantos comandos como desee al mismo agente.  
 
*Puede asignar tantos comandos como desee al mismo agente.  
*La ejecución de comandos en el agente puede afectar a la monitorización, no utilice un timeout mayor que el intervalo del agente.
+
*La ejecución de comandos en el agente puede afectar a la monitorización; no utilice un timeout mayor que el intervalo del agente.
 +
 
 +
[[Pandora:Documentation|Volver a Indice de Documentacion Pandora FMS]]
 +
 
 +
[[Category: Pandora FMS]]
 +
[[Category:Documentation]]

Latest revision as of 12:31, 16 June 2020

Volver a Indice de Documentacion Pandora FMS


1 Introducción


En un primer paso hacia la orquestación/automatización TI, Pandora FMS presenta Omnishell.

Es una herramienta que permite definir comandos o bloques de comandos y seleccionar objetivos donde poder ejecutarlos.

2 Omnishell


Con Omnishell se permite la ejecución de cualquier comando o bloque de comandos en cualquier agente (en versiones 741 o superiores) que tenga la configuración remota habilitada.

Omnishell1.png

Omnishell se basa en la comunicación entre los distintos componentes de Pandora FMS a través de Tentacle, para coordinar de forma segura las ejecuciones y respuestas de los comandos que se desee programar.

Para configurarlo, deberá instalar los siguientes paquetes:

php-yaml 

En todas las consolas donde desee utilizar esta funcionalidad.

perl-YAML-Tiny

En todos los agentes Unix donde desee utilizar esta funcionalidad.

2.1 Tentacle, nuevas opciones


Con la inclusión de Omnishell se habilitarán nuevas opciones para Tentacle:

  • Tentacle necesita un cambio en la configuración para poder direccionar los archivos '.rcmd'.
  • Estos archivos son archivos de definición de comandos. Será el agente quien se descargue la definición y la evalúe.
  • No existe la posibilidad de realizar operaciones de tipo "push".

Deberá actualizar la definición de filtros del archivo:

/etc/tentacle/tentacle_server.conf
# Filters (regexp:dir,regexp:dir...)
filters .*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.lock:trans;.*\.rcmd:commands

También se puede utilizar el archivo tentacle_server.conf.new que se distribuye al instalar el servidor pandora_server.

Los archivos .rcmd se publicarán en la nueva carpeta /var/spool/pandora/data_in/commands

Se utilizará un hash basándose en ciertos parámetros de la definición del comando. Se puede mejorar la seguridad securizando su instalación en Tentacle:

https://pandorafms.com/docs/index.php?title=Pandora:Documentation_es:Tentacle

Es importante recordar que esta carpeta debe tener permisos para los usuarios que mueven el servidor de Pandora FMS y el Apache que mueve la consola:

chown pandora:apache -R /var/spool/pandora/data_in/commands
chmod g+s /var/spool/pandora/data_in/commands



2.2 Actualización del agente


Este sistema está presente en el agente de Pandora FMS a partir de la versión 741.

Requiere la librería perl YAML::Tiny para funcionar. Si esta librería no está disponible, el sistema ignora esta funcionalidad y sigue trabajando con total normalidad.

La instalación de esta librería habilita la funcionalidad. No debería ser necesario reiniciar el agente y este debería empezar a funcionar directamente.

No es necesario ningún cambio, salvo tener activa la configuración remota. El sistema Omnishell utiliza un procedimiento similar al de las colecciones de ficheros.

2.3 Ejemplo de uso


Veamos un ejemplo para comprender mejor el funcionamiento de la nueva herramienta Omnishell.

Problema: queremos configurar el autoinicio del servicio HTTPD en sistemas CentOS 6 de forma masiva.

  • ¿Cuál es nuestra precondición? : que el servicio figure como instalado, e instalarlo en caso de que no lo esté.

Por ejemplo:

[ `rpm -qa | grep -i httpd | wc -l` -lt 1 ] || yum install -y httpd

Esta línea verificará si el servicio se encuentra instalado y lo instalará en caso de que no lo esté.

  • ¿Cuál es nuestra necesidad principal?: iniciar y configurar el autoinicio del servicio HTTPD.

Para ello usaremos los siguientes comandos:

/etc/init.d/httpd restart
chkconfig httpd on

Esto iniciará el servicio en la máquina remota y configurará el sistema para autoarrancarlo.

  • ¿Cómo validamos lo realizado? : comprobaremos que el sistema ha levantado el servicio y que esté escuchando.
[ `netstat -lptn | grep 80 | grep LISTEN | wc -l` -gt 0 ]

Una vez tenemos claro qué queremos que hagan los agentes, crearemos el comando en Omnishell:

Omnishell2.png

Tras la creación del comando asignaremos los agentes que necesitemos.

Omnishell3.png

Podremos ver el progreso de la ejecución del comando en los agentes seleccionados:

Omnishell4.png

Accediendo a la vista, veremos el tiempo estimado pendiente para la ejecución del comando:

Omnishell5.png

Cuando aplicamos de manera masiva la ejecución del comando, la vista será como la que sigue en el ejemplo:

Omnishell7.png

Una vez se reciba respuesta del agente, veremos los resultados de la ejecución. Haciendo clic en su caja podemos sacar un modal con información extra:

Omnishell6.png


2.4 Observaciones


  • El agente ejecutará cada orden de cada bloque.
  • Si la evaluación de cada orden no es 0 (error_level !=0), se dejará de evaluar y se dará como fallido el comando.
  • El agente tomará los valores de los parámetros 'retry' y 'timeout' para el número de reintentos y tiempo máximo de ejecución, respectivamente.
  • Independientemente del resultado, el agente se guardará una marca de ejecución. Cada comando se ejecuta solo una vez.
  • Si actualiza el nombre del comando provocará que el agente lo ejecute de nuevo, dado que la referencia cambiará.
  • Puede asignar tantos comandos como desee al mismo agente.
  • La ejecución de comandos en el agente puede afectar a la monitorización; no utilice un timeout mayor que el intervalo del agente.

Volver a Indice de Documentacion Pandora FMS