Integraciones

Para Open-AudIT 4.2.0 en adelante

Introducción

Esto es como era antes de 4.2.0. Con 4.2.0 en adelante, hemos reescrito el código desde cero para que funcione de una manera independiente del sistema externo. Con la versión 4.2.0 enviamos con una Integración predeterminada ya creada para NMIS. En el futuro, se admitirán otros sistemas externos. Todo lo que se requiere es un nuevo archivo para implementar las funciones requeridas que necesita una integración. No hay dependencias externas ni requisitos previos.

Por motivos de brevedad, puede sustituir cualquier sistema externo cuando se refiera a NMIS a continuación (cuando esté implementado).

NOTA: Los usuarios de RedHat 8 deberán editar la integración y agregar credenciales. Las integraciones no funcionarán localmente para RedHat 8 en este momento (sin credenciales). Nuestro objetivo es abordar esto lo antes posible. Agregue credenciales y el problema estará resuelto. Disculpas por los inconvenientes que esto pueda ocasionar.

"Simplemente funciona" con NMIS

Nuestro objetivo con el lanzamiento de las integraciones iniciales era específicamente que la integración de NMIS a Open-AudIT "simplemente funcionara". Si está utilizando los programas en Linux, puede literalmente hacer clic en un solo botón para ejecutar la integración. No se requiere nada más. Dicho esto, la integración en sí es extremadamente configurable, por lo que si algo no es de su preferencia, se puede cambiar fácilmente.

Si está utilizando Open-AudIT en Windows o si su servidor NMIS no está en su servidor Open-AudIT (en el caso de algunas instalaciones de Linux), deberá proporcionar las credenciales de acceso y una URL al NMIS remoto y ¡eso es todo! Sí, las integraciones entre NMIS y Open-AudIT incluso funcionan ahora con Open-AudIT basado en Windows.

Creando una Integración

Como de costumbre, vaya a Menu → Manage → Integrations → Create Integration. Como se indicó anteriormente, si se está ejecutando en Linux y tiene NMIS en el mismo servidor, no necesita hacer nada más que hacer clic en 'Submit'.

Si está en Windows o su servidor NMIS es remoto, deberá proporcionar la URL, el nombre de usuario y la contraseña para acceder a ese servidor.

Arriba están los únicos elementos obligatorios.

Si desea profundizar y personalizar la Integración, haga clic en el botón Advanced.

Puede personalizar toda la integración hasta qué sistema (NMIS o Open-AudIT) es la autoridad por campo. Hay opciones para crear y/o actualizar dispositivos en Open-AudIT o NMIS. ¿Deberíamos ejecutar un descubrimiento en un dispositivo creado o actualizado y mucho más? Hay explicaciones para cada elemento en el lado derecho de la página.

Puede seleccionar los dispositivos que se integrarán eligiendo cualquier atributo en la tabla del sistema (dispositivo) y haciendo coincidir (consulte el Menu → Admin → Database → List Tables → System for a list of fields). Una coincidencia de atributo solo puede coincidir con un valor único.

Si desea ejecutar un Descubrimiento en un dispositivo proporcionado externamente, seleccione la opción y cuando se cree la Integración, verá el Descubrimiento.

¿Qué pasa con los campos que quiero de NMIS que no están en Open-AudIT? Cualquier campo del sistema externo (NMIS) que no exista en Open-AudIT se creará automáticamente, como campos personalizados de Open-AudIT.


Nuestra integración predeterminada

De forma predeterminada, integramos todos los dispositivos con su atributo nmis_manage establecido en 'y'. Con la versión 4.2.0 también enviamos una regla que dice "si descubrimos un dispositivo y tiene un OID SNMP válido, marque ese dispositivo como administrado por NMIS". Obviamente, puede desactivar esto si no es lo que desea.

Para seleccionar los dispositivos que se integrarán, usamos nmis_manage=y, pero puede que le guste (por ejemplo) type=router. También puede utilizar un grupo o una consulta si prefiere algo más complejo.

Nuestra integración predeterminada también permite un descubrimiento en cualquier dispositivo suministrado externamente. Por lo tanto, enviamos un descubrimiento predeterminado para la Integración Predeterminada listo para usar. Estos utilizan las reglas de coincidencia predeterminadas, pero también permiten la coincidencia en la dirección IP.

Hablando de descubrimientos, en la versión 4.2.0 también enviamos un descubrimiento de subred para la subred en la que está instalado el servidor Open-AudIT; consulte aquí las Notas de la versión de Open-AudIT v4.2.0.

Las integraciones se pueden programar según Descubrimientos, Consultas, etc.


Explicación del atributo de Integración

A continuación, se muestran explicaciones de los atributos utilizados por una integración.


create_internal_from_externalAl integrar dispositivos del sistema externo, si el dispositivo no existe en Open-AudIT, ¿debemos crearlo?
update_internal_from_externalAl integrar dispositivos del sistema externo, si el dispositivo se ha actualizado en el sistema externo, ¿debemos actualizarlo en Open-AudIT?
discovery_runCuando recuperamos un dispositivo externo, ¿deberíamos ejecutar el descubrimiento en él?

select_internal_type¿Cómo debemos seleccionar los dispositivos para integrarlos (usando un Atributo, una Consulta o un Grupo)?
select_internal_attributeEl atributo a probar (de la tabla 'sistema').
select_internal_valueEste artículo debe coincidir con el valor del atributo seleccionado.

create_external_from_internalSi un dispositivo Open-AudIT no está en el sistema externo, ¿deberíamos crearlo?
update_external_from_internalSi se ha cambiado un dispositivo Open-AudIT, deberíamos actualizar el sistema externo.
delete_external_from_internalSi un dispositivo remoto no existe en los dispositivos seleccionados de Open-AudIT, ¿deberíamos eliminarlo del sistema remoto?

select_external_typeQué dispositivos debe crear Open-AudIT desde el sistema remoto (si corresponde). Usando Todo, Ninguno o un Atributo dado.
select_external_attributeEl atributo a probar (debe coincidir con un nombre de campo externo de abajo).
select_external_valueEste artículo debe coincidir con el valor del atributo seleccionado.

fields: Una matriz JSON de objetos, como se muestra a continuación.


Los campos

Los campos asociados con una integración se almacenan en la base de datos como una matriz JSON de objetos. Cada campo tiene los siguientes atributos:

internal_field_name: Este debe ser el nombre de campo completo en la base de datos. Actualmente se admiten columnas del sistema, campos y tablas de credenciales. Por ejemplo: system.nmis_role.

external_field_name: El nombre completo devuelto por el sistema externo. Por ejemplo: para NMIS usamos configuration.roleType.

prioridad: Cuando se combinan dispositivos, qué sistema es la fuente autorizada de información.

valor_predeterminado: Si no hay ningún valor presente, proporcione este valor. Por ejemplo: para system.nmis_group/configuraion.group usamos Open-AudIT.

matching_attribute: ¿Deberíamos usar este valor para hacer coincidir los dispositivos externos e internos? Nuestra integración predeterminada usa IP y UUID aquí. Si alguno de estos coincide entre el dispositivo externo y el interno, consideramos que son el mismo dispositivo.

external_field_type: Cuando estamos convirtiendo un dispositivo seleccionado internamente en un objeto para el sistema externo, ¿cuáles deberían ser los datos externos? Por ejemplo: integer, string, etc.


Tipos de campos externos

texto: Un campo de texto.

entero: Un número.

bool: Verdadero o Falso (en contexto JSON).

bool_one_zero: Si el campo local es verdadero (bool) o y (string) o Y (string) o 1 (integer), establezca los datos externos en 1.

bool_y_n: Si el campo local es verdadero (bool) o y (string) o Y (string) o 1 (integer), establezca los datos externos en y.

capitalize: Establece el texto externo en la versión en mayúscula de los datos internos.

lower: Establece el texto externo en minúsculas.

upper: Establece el texto externo en mayúsculas.

datetime_now: La fecha y hora actuales en el formato "Y-m-d H:i:s".

datetime_Y-m-d H:i:s: El valor interno, reformateado en este formato.

date_now: La fecha actual en formato "Y-m-d".

date_Y-m-d: El valor interno, reformateado en este formato.

date_m-d-Y: el valor interno, reformateado en este formato.

date_d-m-Y: el valor interno, reformateado en este formato.

NOTA: para obtener más información sobre los formatos de fecha y hora, consulte https://www.php.net/manual/en/datetime.createfromformat.php


Solución de problemas

Después de que se haya creado una Integración, cuando vea los detalles de una Integración, verá un campo llamado Debug. Está configurado en no de forma predeterminada. Cambiarlo a yes proporciona un registro adicional cuando se ejecuta una integración. La depuración no debe dejarse como yes. Esto se debe a que la salida de depuración contendrá todo lo recuperado de sistemas externos, incluidos elementos como las credenciales WMI y SNMP. La opción de depuración debe usarse solo cuando ha ocurrido un problema y desea profundizar para ver si puede determinar por qué.


Ejemplos con capturas de pantalla

Crear una nueva integración (después de hacer clic en el botón Avanzado)

Los registros de una ejecución de Integración

Esquema de base de datos

El esquema de la base de datos se puede encontrar en la aplicación si el usuario tiene el permiso de lectura (database::read), yendo al menú: Admin -> Database -> List Tables, luego haciendo clic en el botón de detalles de la tabla.

CREATE TABLE `integrations` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL DEFAULT '',
  `org_id` int(10) unsigned NOT NULL DEFAULT '1',
  `description` text NOT NULL,
  `type` varchar(45) NOT NULL DEFAULT 'nmis',
  `additional_items` longtext NOT NULL,
  `attributes` longtext NOT NULL,
  `create_external_count` int(10) unsigned DEFAULT NULL,
  `create_external_from_internal` enum('y','n') NOT NULL DEFAULT 'n',
  `create_internal_count` int(10) unsigned DEFAULT NULL,
  `create_internal_from_external` enum('y','n') NOT NULL DEFAULT 'n',
  `devices` longtext NOT NULL,
  `locations` longtext NOT NULL,
  `debug` enum('y','n') NOT NULL DEFAULT 'n',
  `discovery_id` int(10) unsigned DEFAULT NULL,
  `discovery_run` enum('y','n') NOT NULL DEFAULT 'n',
  `fields` longtext NOT NULL,
  `select_external_attribute` varchar(200) NOT NULL DEFAULT '',
  `select_external_count` int(10) unsigned DEFAULT NULL,
  `select_external_type` enum('','all','none','attribute') DEFAULT 'all',
  `select_external_value` varchar(200) NOT NULL DEFAULT '',
  `select_internal_attribute` varchar(200) NOT NULL DEFAULT '',
  `select_internal_count` int(10) unsigned DEFAULT NULL,
  `select_internal_type` enum('','none','attribute','group','query') DEFAULT 'attribute',
  `select_internal_value` varchar(200) NOT NULL DEFAULT '',
  `update_external_count` int(10) unsigned DEFAULT NULL,
  `update_external_from_internal` enum('y','n') NOT NULL DEFAULT 'y',
  `update_internal_count` int(10) unsigned DEFAULT NULL,
  `update_internal_from_external` enum('y','n') NOT NULL DEFAULT 'y',
  `delete_external_from_internal` enum('y','n') NOT NULL DEFAULT 'n',
  `status` varchar(200) NOT NULL DEFAULT '',
  `last_run` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  `duration` int(10) unsigned DEFAULT NULL,
  `edited_by` varchar(200) NOT NULL DEFAULT '',
  `edited_date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 
CREATE TABLE `integrations_log` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `integrations_id` int(10) unsigned DEFAULT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `microtime` decimal(16,6) DEFAULT NULL,
  `severity_text` enum('debug','info','notice','warning','error','critical','alert','emergency') NOT NULL DEFAULT 'notice',
  `message` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

API / acceso web

Puede acceder a la colección utilizando la API normal basada en Open-AudIT JSON. Como cualquier otra colección. Consulte la documentación de la API de Open-AudIT para obtener más detalles.



Pre Open-AudIT 4.2.0

Introducción

El punto final de Integraciones, le permite definir una Integración que luego puede usar para importar y exportar datos de Open-AudIT a un sistema externo. En la actualidad, el único tipo de integración admitido es "nmis".

Las integraciones son una característica Profesional y Empresarial.

Se están introduciendo integraciones en Open-AudIT 3.1.0 con el fin de ampliar el concepto a medida que se avanza en el desarrollo.

Prerrequisitos

Para ejecutar una Integración, deberá descargar oa-nmis-integration.exe (este es un binario de Linux) y colocarlo en /usr/local/omk/bin

El binario está disponible aquí: https://dl-openaudit.opmantek.com/oa-nmis-integration.exe

Asegúrese de que sea ejecutable mediante el siguiente comando:

chmod +x /usr/local/omk/bin/oa-nmis-integration.exe

Este archivo se incluirá en versiones futuras de Open-AudIT para Linux.

¿Cómo funciona?

Puede definir una Integración y utilizarla para exportar dispositivos Open-AudIT a NMIS. De forma predeterminada, solo se exportarán los dispositivos con el atributo nmis_manage establecido en 'y'. Esto es completamente personalizable.

Para obtener una vista más detallada, consulte Integración OpenAudIT-NMIS.

Las integraciones se pueden programar como otras tareas. Primero defina su Integración, luego cree la tarea y seleccione Integration en el menú desplegable de Type.

Configurar dispositivos para administrar

De forma predeterminada, solo los dispositivos con el atributo "nmis_manage" establecido en y 'se exportarán a NMIS. Puede usar la funcionalidad Bulk Edit dentro de Open-AudIT para configurar rápidamente el atributo "Manage in NMIS" solo en los dispositivos que necesita. También puede configurar dispositivos individuales para que se administren en la pantalla de detalles del dispositivo. Seleccione el elemento del menú "Details" de Opmantek en el lado izquierdo y edite el campo "Manage in NMIS".

También puede configurar los otros campos para que se envíen a NMIS como desee, ya sea de forma individual o mediante el Bulk Edit.

Verificar la lista de dispositivos

Una vez que haya establecido el atributo en los dispositivos seleccionados, puede ejecutar la consulta de integración predeterminada para asegurarse de que la lista de dispositivos resultante sea la que espera. Vaya al menú → Report → Other → Integration Default for NMIS. 

Creando una Integración

Se puede crear una entrada de Integración usando la interfaz web si el usuario actual que inició sesión tiene un rol que contiene el permiso para crearla (integrations::create). Vaya al menú: Manage -> Integrations -> Create Integrations. Proporcione un nombre para la integración, seleccione una organización y proporcione sus credenciales. De forma predeterminada, todos los dispositivos con su atributo nmis_manage se seleccionarán para la integración. Si desea otra selección de dispositivos, haga clic en el botón Advanced y seleccione una consulta diferente que se utilizará para seleccionar su lista de dispositivos. Puede crear una consulta personalizada de la misma manera que lo hace con cualquier otra consulta normal, vea: Consultas.


 



Ejecutando una integración

Después de crear la entrada de Integración, debería estar en la página de detalles de la entrada de Integraciones. En el encabezado del panel en la parte superior derecha de la página hay un grupo de botones. El botón que parece un icono de "reproducción" antiguo (un triángulo) ejecutará esta Integración.

Si está en la página de la lista de Integraciones, en el lado izquierdo hay un triángulo verde, el mismo icono que en la página de detalles. Haga clic en eso y se ejecutará la Integración.



En breve, debería ver los registros de la Integración en ejecución (es posible que deba hacer clic en el botón "actualizar" de su navegador para ver los registros actualizados).

Los dispositivos seleccionados se importarán a NMIS, incluidas sus credenciales. Serán asignados al grupo Open-AudIT dentro de NMIS. Esto se puede configurar por dispositivo; consulte Cómo editar en bloque los atributos del dispositivo para obtener más información. 

También puede utilizar Tasks para programar una Integración para que se ejecute cuando lo necesite.

Una vez que los dispositivos se hayan exportado a NMIS, después de que NMIS haya ejecutado un collect o un poll cycle, deberían aparecer los datos relevantes dentro de NMIS.

Ver detalles de Integraciones

Vaya al menú: Manage-> Integrations -> List Integrations.
Verá una lista de Integraciones. Puede ver una Integración haciendo clic en el icono de vista azul. También puede editar o eliminar Integraciones.


Esquema de base de datos

El esquema de la base de datos se puede encontrar en la aplicación si el usuario tiene permiso de lectura (database::read) yendo al menú: Admin -> Database -> List Tables, luego haciendo clic en el botón de detalles de la tabla.


API / acceso web

Puede acceder a la colección utilizando la API normal basada en Open-AudIT JSON. Como cualquier otra colección. Consulte la  documentación de la API de Open-AudIT para obtener más detalles.