====== Network Config Management (NCM) ======
{{indexmenu_n>16}}
===== Introducción =====
El Servidor NCM (**Network Config Management**) de Pandora FMS permite poder interactuar con cualquier dispositivo de red, mediante los protocolos **Telnet** y **SSH**, para gestionar su configuración, realizar //backups//, restaurar la configuración de los dispositivos a partir de los //backups// realizados e incluso poder realizar ejecuciones personalizadas con los mismos.
Para la realización de todas estas tareas se basa en un sistema de plantillas por **Fabricante**-**Modelo** que permitirá personalizar todas las ejecuciones que realizarán los dispositivos de red, teniendo el control y conocimiento de todas las ejecuciones que se realizarán en cada uno de dichos dispositivos de red.
===== Habilitar el servidor NCM =====
Para la activación de esta funcionalidad en Pandora FMS es necesario que esté habilitado el servicio NCM en el servidor de ''pandorafms''.
Para ello deben estar los siguientes parámetros correctamente configurados dentro del fichero ''pandora_server.conf'':
# Network manager configuration server.
ncmserver 1
# Threads for NCM server.
ncmserver_threads 1
# NCM utility to execute SSH and Telnet connections.
ncm_ssh_utility /usr/share/pandora_server/util/ncm_ssh_extension
Una vez habilitados aparecerá en la vista de servidores un nuevo servidor y se habilitarán en la consola todas las secciones correspondientes a esta funcionalidad.
Para que aparezcan los menús correspondientes a todo lo relacionado con NCM server //[[#acl|cada usuario debe tener los derechos ACL correspondientes]]// .
==== Enterprise Alternative Server packages ====
Si utiliza los [[:es:documentation:pandorafms:installation:01_installing#enterprise_alternative_server_packages|Enterprise Alternative Server packages]], para el correcto funcionamiento de esta funcionalidad **se debe instalar** ''libnsl'' **y** ''openssh-clients''.
===== Definiendo vendedores y modelos =====
Antes de empezar a trabajar, se debe asegurar de que el sistema tiene definido el fabricante y el o los modelos de dispositivos que se van a utilizar. Para ello utilice el editor de Vendedor (//Vendor//) y Modelo (//Model//).
Encontrará estos editores en la sección **Management** → **Configuration** → **Network Config Manager**.
Esta es solo una definición descriptiva. La lógica se aplica en las Plantillas de equipo de red.
===== Plantillas de equipo de red =====
Las plantillas se aplican sobre un Fabricante y uno o varios modelos. **Las plantillas definen cómo se interactúa con un equipo de red**. La conexión entre NCM y el equipo se puede hacer a través de **Telnet** o **SSH**. En ambos casos habrá que proporcionar uno o varios juegos de credenciales (en el caso del fabricante Cisco el usuario/contraseña de acceso y el //password// de modo ''enable''). En otros dispositivos pueden ser dos pares de credenciales.
Para las credenciales utilice el [[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#almacen_de_credenciales|sistema interno de Pandora FMS de credenciales]] que permite reutilizarlas sin conocer los detalles. De esta manera el administrador puede especificar diferentes “parejas” de usuario/contraseña con un identificador, **y un operador puede emplearlas sin ver el contenido**. En NCM estos usuarios y contraseñas se pasan al diálogo con el dispositivo a través de macros.
**Macros en el diálogo con el dispositivo de red**
* ''_enablepass_'' : Se sustituirá por el campo ''password'' de la clave avanzada asociada al agente.
* ''_username_'' : Se sustituirá por el campo ''username'' de la clave de acceso al agente.
* ''_password_'' : Se sustituirá por el campo ''password'' de la clave de acceso al agente.
* ''_advusername_'' : Se sustituirá por el campo ''username'' de la clave avanzada de ''enable''.
* ''_advpassword_'' : Se sustituirá por el campo ''password'' de la clave avanzada de ''enable''. Es un alias de ''_enablepass_'' y se pueden usar ambos indistintamente en las plantillas ya que equivalen al mismo valor.
* ''_applyconfigbackup_'' : Expande en tantos comandos como líneas de configuración tenga el //backup// actual, se aplica línea por línea, tal y como se aplican en los dispositivos de Cisco®.
* ''_SOURCE_FILE_NAME_'': Se sustituirá por la ruta al último //firmware// subido para un fabricante y modelo concreto en el servidor de Pandora FMS, para poder ser descargado usando la dirección IP del servidor FTP (campo **FTP server IP**).
* ''_TFTP_SERVER_IP_'': Se sustituirá por la dirección IP configurada para el servidor FTP desde el que se podrán descargar los //firmware// a utilizar por dispositivos NCM. La dirección IP se puede indicar en la [[:es:documentation:pandorafms:management_and_operation:12_console_setup#ncm_configuration|configuración general de Pandora FMS]].
==== Creación de una plantilla NCM ====
Haga clic en el botón **Define a NCM template** (menú **Management** → **Configuration** → **Network Config Manager**) y** **haga clic en el botón **Create.**
Rellene los campos solicitados:
* **Vendors** (Fabricantes): Separado por comas, una lista de proveedores compatible con //scripts//.
* **Models** (Modelos): Separado por comas, una lista de modelos compatibles con //scripts//.
* **Script: Test** (Prueba): Este //script// se utilizará para probar la disponibilidad de los dispositivos.
* **Script: Get configuration** (Obtener configuración): Este //script// se utilizará para recuperar la configuración de los dispositivos.
* **Script: set configuration** (Establecer la configuración): Este //script// se utilizará para aplicar la configuración, previamente respaldada, a los dispositivos.
* **Script: get firmware** (Obtener //firmware//): Este //script// se utilizará para recuperar la versión del //firmware// de los dispositivos.
* **Script: set firmware** (Fijar //firmware//): Este //script// se utilizará para reinstalar la versión de //firmware// de los dispositivos previamente almacenada.
* **Script: custom task** (Tarea personalizada): Este //script// se ejecutará en los dispositivos al seleccionar la tarea **CUSTOM**.
==== Ejemplo de uso en un dispositivo Cisco 7200 ====
Estos //scripts// solo funcionan si el usuario con el que va a hacer //login// (vía Telnet o SSH) funciona mediante //user// y //password// y no tiene ''enable'' habilitado por defecto.
=== Test ===
Se realiza una conexión de prueba al dispositivo y se finaliza la misma sin realizar ninguna operación.
enable
expect:Password:\s*
_enablepass_
exit
La conexión de prueba se utiliza para verificar que se puede conectar al dispositivo. Se puede modificar (''expect:xxxx'') para esperar una respuesta determinada, tal como ''Ready''. Este solo es un ejemplo básico.
=== Recuperar configuración actual ===
Este bloque sirve para definir la manera de obtener la configuración del dispositivo activo. En este ejemplo (de Cisco®) se obtiene la configuración que se está ejecutando en el dispositivo mediante la ejecución del comando ''show running-config'' dentro del mismo:
enable
expect:Password:\s*
_enablepass_
sleep:2
term length 0
capture:show running-config
exit
''capture:'' : Sirve para capturar como configuración activa lo que devuelve por pantalla.
''sleep:2'': (Versión 772 o posterior) Sirve para introducir un "//tiempo de espera//", en segundos, entre dos comandos de una plantilla.
=== Recuperar versión de firmware ===
De manera similar al caso anterior, ejecutamos el comando ''show version | i IOS Software'' para obtener la versión del //firmware// del dispositivo, y al igual que en el caso anterior, se usa el comando ''capture'' para capturar la salida del comando.
enable
expect:Password:\s*
_enablepass_
term length 0
capture:show version | i IOS Software
exit
=== Restaurar el respaldo de configuración ===
En esta ejecución se hace uso de la macro ''_applyconfigbackup_'' aplicando así toda la configuración almacenada en el //Backup// que previamente se haya almacenado en Consola.
enable
expect:Password:\s*
_enablepass_
term length 0
config terminal
_applyconfigbackup_
exit
=== Script personalizado de ejemplo ===
Ejemplo de //script// personalizado en el que se cambia el valor máximo de intentos de autentificación por SSH del dispositivo. Se puede aplicar cualquier modificación o ejecución de comandos que sea necesaria.
enable
expect:Password:\s*
_enablepass_
conf term
ip ssh authentication-retries 4
end
exit
Todo cambio registrado en el dispositivo quedará grabado **al realizar un respaldo de //firmware//** y se tendrá control de los cambios realizados, [[:es:documentation:pandorafms:management_and_operation:08_data_presentation_reports#informes_de_ncm|tanto por informes]] como por pantalla (Consola web PFMS).
===== Plantillas de datos de agentes =====
Estas plantillas permiten obtener datos de un dispositivo NCM y actualizar la información del agente para el que se ejecutan con dichos datos. El funcionamiento y configuración es idéntico al de las plantillas de equipo de red, pero indicando en este caso el campo del agente que actualizará el resultado de cada //script//. Los campos que se pueden actualizar en un agente son:
* **OS version**.
==== Creación de una plantilla de datos de agente ====
Se hace clic en el botón **Create** (menú **Management → Configuration → Network Config Manager → NCM Agents data templates** y se rellenan los campos solicitados:
* **Vendors** (Fabricantes): Separado por comas, una lista de proveedores compatible con //scripts//.
* **Models** (Modelos): Separado por comas, una lista de modelos compatibles con //scripts//.
* **Script OS version**: Este //script// se utilizará para actualizar el campo OS versión del agente.
===== Setup en Agentes =====
Dentro de cada uno de los agentes cuya configuración remota se deba administrar, es necesario asociar un modelo al mismo.
Esta asociación la tendrá que realizar en la sección NCM del agente:
* **Device manufacturer**: Fabricante del dispositivo.
* **Device model**: Modelo del dispositivo.
* **Connection method**: Tipo de conexión a realizar ( Telnet o SSH ). //Si utiliza SSH con pares de clave, es importante que mantenga actualizado,//**borrando o agregando**//cada dirección IP y su respectiva clave en el fichero//''/etc/.ssh/known_hosts'' .
* **Port**: Puerto a utilizar en la conexión Telnet o SSH.
* **Credentials to access device**: Credenciales almacenadas dentro de la sección [[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#almacen_de_credenciales|Credential Store de Pandora FMS]], que servirán para hacer la conexión inicial por Telnet o SSH. Es necesario que el usuario a la hora de conectarse necesite ambos parámetros.
* **Credentials to admin device**: Credenciales almacenadas dentro de la sección [[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#almacen_de_credenciales|Credential Store de Pandora FMS]], y que se identificarán dentro de la plantilla o //template// seleccionada en **NCM template to be used**, con las macros ''_advusername_'' para el usuario y ''_enablepass_'' o ''_advpassword_'' para la contraseña.
* **NCM template to be used**: De haber alguna plantilla definida, escoja una compatible con el modelo escogido.
* Si la plantilla elegida tiene configurado **Script: Get configuration** se podrá respaldar periódicamente mediante la opción **Backup schedule (if defined)**. Para crear un evento si hay cambios entre respaldos de la configuración, marque la opción justo al lado derecho de la lista de selección de períodos (diario, semanal, mensual o no agendado).
Para cargar los ficheros que contengan //firmware// y crear respaldos de los mismos con FTP, debe hacerlo de manera cifrada para tener la mayor seguridad posible. Consulte la sección "[[:es:documentation:pandorafms:technical_annexes:01_ssh_and_ftp_setup#configuracion_ftp_para_recibir_datos_en_pandora_fms|Configuración FTP para recibir datos en Pandora FMS]]" y el uso de **vsFTPd**. Debe usar **SFTP** con **chroot** exclusivo en:
/var/spool/pandora/data_in/firmware/
Consulte la "[[:es:documentation:pandorafms:technical_annexes:15_security_architecture|Arquitectura de seguridad]]" de Pandora FMS.
* **NCM Agents data templates to be used**: De haber alguna plantilla que actualice datos de agente definida, escoja una compatible con el modelo escogido. Se podrá programar la ejecución de dicha plantilla con la opción **Agents data templates schedule (if defined)**. Para crear un evento si hay cambios entre los datos obtenidos y los actuales, marque la opción justo al lado derecho de la lista de selección de períodos (diario, semanal, mensual o no agendado).
Esta configuración se puede realizar de forma masiva para varios agentes que cumplan las mismas características desde el menú **Management → Configuration → Network Config Manager → Manage NCM devices**.
===== Gestión de configuraciones en los dispositivos =====
Después de haber configurado los dispositivos NCM se podrá acceder a la vista del agente o bien a la sección **Management → Configuration → Network Config Manager → NCM Devices** para realizar toda la gestión posible en cada uno de ellos.
{{ :wiki:pfms-management-configuration-network_config_manager-ncm_devices-01.png }}
{{ :wiki:pfms-management-configuration-network_config_manager-ncm_devices-02.png }}
Desde ambas vista se podrán encolar todas las tareas definidas en el template, descargar la configuración actual, visualizar los //backups// generados para el dispositivo y compararlos con el último //backup// obtenido.
{{ :wiki:pfms-management-configuration-network_config_manager-ncm_devices-03.png }}
==== Ejecución de snippets ====
También se podrán ejecutar //snippets// en cualquier dispositivo NCM, es decir, //scripts// que no estarían definidos en las plantillas y que permiten ejecutar bloques de código bajo demanda. Estos son //scripts// de una sola ejecución que no se almacenan.
{{ :wiki:pfms-management-configuration-network_config_manager-ncm_devices-snippet_script.png }}
===== ACL =====
Para la funcionalidad NCM existen tres bits de [[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#perfiles_en_pandora_fms|ACL]] distintos en los que podrá definir los diferentes usuarios a partir de los siguientes bits definidos:
**View NCM data** → Solo podrá visualizar la vista del agente y ver la información reflejada en ella sin poder aplicar ningún cambio sobre la misma.
**Operate NCM** → Podrá además de visualizar la vista, realizar las ejecuciones que quiera sobre los agentes y en la vista NCM.
**Manage NCM** → Con este permiso se podrán generar plantillas, modelos y nuevos fabricantes a parte de las ejecuciones que ya realiza Operate NCM.
[[:es:documentation:start| Volver al índice de documentación de Pandora FMS]]