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

From Pandora FMS Wiki
Jump to: navigation, search
(Observaciones)
(Introducción)
 
Line 1: Line 1:
 
= Introducción =  
 
= Introducción =  
 
<br>
 
<br>
En un primer paso hacia la administración de infraestructuras, <b>Pandora FMS</b> presenta <b>Omnishell</b>.  
+
En un primer paso hacia la orquestación/automatización IT, <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.
 
<br>
 
<br>
 
<br>
 
<br>
 +
 
= Omnishell =  
 
= Omnishell =  
 
<br>
 
<br>

Latest revision as of 07:49, 4 December 2019

1 Introducción


En un primer paso hacia la orquestación/automatización IT, 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
chown 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 funcionando 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.

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 auto inicio 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 este 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 sólo 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.