3 Descubrimiento de bajo nivel

Descripción general

El descubrimiento de bajo nivel proporciona una manera de crear automáticamente métricas, iniciadores y gráficos para diferentes entidades en una computadora. Por ejemplo, Zabbix puede comenzar a monitorear automáticamente los sistemas de archivos o las interfaces de red en su máquina, sin la necesidad de crear métricas para cada sistema de archivos o interfaz de red manualmente. Además, es posible configurar Zabbix para eliminar entidades innecesarias automáticamente según los resultados reales de los descubrimientos realizados periódicamente.

Un usuario puede definir sus propios tipos de descubrimiento, siempre que siga un protocolo JSON particular.

La arquitectura general del proceso de descubrimiento es la siguiente.

Primero, un usuario crea una regla de descubrimiento en Recopilación de datos → Plantillas, en la columna Descubrimiento. Una regla de descubrimiento consta de (1) una métrica que descubre las entidades necesarias (por ejemplo, sistemas de archivos o interfaces de red) y (2) prototipos de métricas, iniciadores y gráficos que deben crearse en función del valor de esa métrica.

Una métrica que descubre las entidades necesarias es como una métrica normal usada en otros lugares: el servidor le pregunta a un agente de Zabbix (o cualquier otro tipo de métrica que esté configurado) por un valor de esa métrica, el agente responde con un valor textual. La diferencia es que el valor con el que responde el agente debe contener una lista de entidades descubiertas en formato JSON. Mientras que los detalles de este formato sólo son importantes para los implementadores de comprobaciones de descubrimiento personalizadas, es necesario saber que el valor devuelto contiene una lista de parejas macro → valor. Por ejemplo, la métrica "net.if.discovery" puede devolver dos pares: "{#IFNAME}" → "lo" y "{#IFNAME}" → "eth0".

Estas macros se utilizan en nombres, claves y otros campos del prototipo donde luego se sustituyen con los valores recibidos para crear métricas reales, iniciadores, gráficos o incluso equipos para cada entidad descubierta. Ver la lista completa de opciones para usar Macros LLD.

Cuando el servidor recibe un valor para una métrica de descubrimiento, mira a las parejas macro → valor y para cada par genera métricas reales, iniciadores, y gráficos, basados en sus prototipos. En el ejemplo de arriba con "net.if.discovery" , el servidor generaría un conjunto de métricas, iniciadores y gráficos para la interfaz loopback "lo", y otro conjunto para la interfaz "eth0".

Tenga en cuenta que desde Zabbix 4.2, el formato del JSON devuelto por las reglas de descubrimiento de bajo nivel ha sido modificado. Ya no se espera que el JSON contenga el objeto "datos". El descubrimiento de bajo nivel ahora acepta un JSON normal que contenga una matriz, para admitir nuevas características como el preprocesamiento del valor de la métrica y rutas personalizadas a valores de macro de descubrimiento de bajo nivel en un documento JSON.

Las claves de descubrimiento integradas se han actualizado para devolver una serie de filas LLD en la raíz del documento JSON. Zabbix extraerá automáticamente una macro y valor si un campo de matriz usa la sintaxis {#MACRO} como clave. Cualquier nueva comprobación de descubrimiento nativa utilizarán la nueva sintaxis sin los elementos "data". Cuando se procesa primero un valor de descubrimiento de bajo nivel, la raíz es ubicada (matriz en $. o $.data).

Si bien el elemento "data" se ha eliminado de todos las métricas nativas relacionadas al descubrimiento, por compatibilidad con versiones anteriores, Zabbix seguirá aceptando la notación JSON con un elemento "data", aunque se desaconseja su uso. Si el JSON contiene un objeto con un solo elemento de matriz de "data", entonces extraerá automáticamente el contenido del elemento usando JSONPath $.data. El descubrimiento de bajo nivel ahora acepta macros LLD definidas por el usuario opcionales con una ruta personalizada especificada en la sintaxis JSONPath.

Como resultado de los cambios anteriores, los agentes más nuevos ya no podrán trabajar con un servidor Zabbix más antiguo.

Ver también: Entidades descubiertas

Configuración del descubrimiento de bajo nivel

Ilustraremos el descubrimiento de bajo nivel basándonos en un ejemplo de descubrimiento de sistemas de archivos.

Para configurar el descubrimiento, haga lo siguiente:

  • Vaya a: Recopilación de datosPlantillas o Equipos
  • Haga clic en Descubrimiento en la fila de una plantilla/equipo apropiado

  • Haga clic en Crear regla de descubrimiento en la esquina superior derecha de la pantalla
  • Complete el formulario de la regla de descubrimiento con los detalles requeridos.

Regla de descubrimiento

El formulario de regla de descubrimiento contiene cinco pestañas que representan, de izquierda a a la derecha, el flujo de datos durante el descubrimiento:

  • Regla de descubrimiento - especifica, lo más importante, la métrica integrada o script personalizado para recuperar los datos de descubrimiento
  • Preprocesamiento: aplica cierto preprocesamiento a los datos descubiertos.
  • Macros LLD - permite extraer algunos valores de macro para usar en las métricas descubiertas, iniciadores, etc.
  • Filtros - permite filtrar los valores descubiertos
  • Anulaciones - permite modificar los prototipos de métricas, iniciadores, gráficos o equipos cuando se aplican a objetos descubiertos específicos

La pestaña Regla de descubrimiento contiene la clave de la métrica que se utilizará para el descubrimiento. (así como algunos atributos generales de las reglas de descubrimiento):

Todos los campos de entrada obligatorios están marcados con un asterisco rojo.

Parámetro Descripción
Nombre Nombre de la regla de descubrimiento.
Tipo El tipo de verificación para realizar el descubrimiento.
En este ejemplo estamos usando un tipo de métrica Agente Zabbix.
La regla de descubrimiento también puede ser una métrica dependiente, dependiendo de una métrica normal. No puede depender de otra regla de descubrimiento. Para una métrica dependiente, seleccione el tipo respectivo (Métrica dependiente) y especifique la métrica principal en el campo 'Métrica principal'. La métrica principal debe existir.
Clave Ingrese la clave de la métrica de descubrimiento (hasta 2048 caracteres).
Por ejemplo, puede usar la clave de la métrica incorporada "vfs.fs.discovery" para devolver un JSON con la lista de sistemas de archivos presentes en la computadora, sus tipos y opciones de montaje.
Tenga en cuenta que otra opción para el descubrimiento del sistema de archivos es utilizar los resultados del descubrimiento mediante la clave del agente "vfs.fs.get", compatible desde Zabbix 4.4.5 (consulte el ejemplo).
Intervalo de actualización Este campo especifica con qué frecuencia Zabbix realiza el descubrimiento. Al principio, cuando esté configurando el descubrimiento del sistema de archivos, es posible que desee configurarlo en un intervalo pequeño, pero una vez que sepa que funciona, puede configurarlo en 30 minutos o más, porque los sistemas de archivos generalmente no cambian con mucha frecuencia. .
Se admiten sufijos de tiempo, p. 30s, 1m, 2h, 1d, desde Zabbix 3.4.0.
Macros de usuario son compatibles, desde Zabbix 3.4.0.
Nota: El intervalo de actualización solo se puede establecer en '0' si existen intervalos personalizados con un valor distinto de cero. Si se establece en '0' y existe un intervalo personalizado (flexible o programado) con un valor distinto de cero, la métrica se sondeará durante la duración del intervalo personalizado.
Las nuevas reglas de descubrimiento se verificarán dentro de los 60 segundos de su creación. , a menos que tengan un intervalo de actualización programado o flexible y el Intervalo de actualización esté establecido en 0.
Tenga en cuenta que para una regla de descubrimiento existente, el descubrimiento se puede realizar inmediatamente presionando el botón Ejecutar ahora.
Intervalos personalizados Puedes crear reglas personalizadas para verificar el elemento:
Flexible: crea una excepción al Intervalo de actualización (intervalo con diferente frecuencia)
Programación: crea un cronograma de sondeo personalizado.
Para obtener información detallada, consulte Intervalos personalizados. La programación es compatible desde Zabbix 3.0.0.
Período de conservación de recursos perdidos Este campo le permite especificar el período durante el cual se retendrá (no se eliminará) la entidad descubierta una vez que su estado de descubrimiento pase a ser "Ya no descubierto" (entre 1 hora y 25 años; o "0").
Se admiten sufijos de tiempo, p. 2h, 1d, desde Zabbix 3.4.0.
Las macros de usuario son compatibles, desde Zabbix 3.4.0.
Nota: Si se establece en "0", Las entidades se eliminarán inmediatamente. No se recomienda usar "0", ya que simplemente editar incorrectamente el filtro puede terminar en que la entidad se elimine con todos los datos históricos.
Descripción Ingrese una descripción.
Habilitado Si está marcado, la regla será procesada.

El historial de reglas de descubrimiento no se conserva.

Preprocesamiento

La pestaña Preprocesamiento permite definir las reglas de transformación que se aplicarán al resultado del descubrimiento. Son posibles una o varias transformaciones en este paso. Las transformaciones se ejecutan en el orden en que están definidas. Todo el preprocesamiento lo realiza el servidor Zabbix.

Ver también:

Tipo
Transformación Descripción
Texto
Expresión regular Haga coincidir el valor recibido con la expresión regular <patrón> y reemplace el valor con la <salida> extraída. La expresión regular admite la extracción de un máximo de 10 grupos capturados con la secuencia \N.
Parámetros:
patrón - expresión regular
salida - plantilla de formato de salida. Una secuencia de escape \N (donde N=1…9) se reemplaza con el enésimo grupo coincidente. Una secuencia de escape \0 se reemplaza con el texto coincidente.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor específico o establecer un mensaje de error especificado.
Reemplazar Busque la cadena de búsqueda y reemplácela con otra (o nada). Se reemplazarán todas las apariciones de la cadena de búsqueda.
Parámetros:
cadena de búsqueda: la cadena para buscar y reemplazar, distingue entre mayúsculas y minúsculas (obligatorio)
reemplazo: la cadena para reemplace la cadena de búsqueda con. La cadena de reemplazo también puede estar vacía, lo que permite eliminar la cadena de búsqueda cuando se encuentre.
Es posible utilizar secuencias de escape para buscar o reemplazar saltos de línea, retornos de carro, tabulaciones y espacios "\n \r \ t\s"; La barra invertida se puede escapar como "\\" y las secuencias de escape se pueden escapar como "\\n". El escape de saltos de línea, retorno de carro y tabulaciones se realiza automáticamente durante el descubrimiento de bajo nivel.
Compatible desde 5.0.0.
Datos estructurados
JSONPath Extraiga el valor o fragmento de datos JSON usando la funcionalidad JSONPath.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar opciones de manejo de errores: descartar el valor, establecer un valor específico o establecer un mensaje de error específico.
XML XPath Extrae valor o fragmento de datos XML usando la funcionalidad XPath.
Para que esta opción funcione, el servidor Zabbix debe estar compilado con soporte libxml.
Ejemplos:
number(/document /item/value) extraerá 10 de <document><item><value>10</value></item></document>
number(/document/item/@attribute) extraerá 10 de <document><item atributo="10"></item></document>
/document/item extraerá <item><valor>10</valor ></item> de <document><item><value>10</value></item></document>
Tenga en cuenta que los espacios de nombres no son compatibles.
Soportados desde 4.4.0.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor específico o establecer un mensaje de error específico.
CSV a JSON Convierta los datos del archivo CSV al formato JSON.
Para obtener más información, consulte: Preprocesamiento de CSV a JSON.
Compatible desde 4.4.0.
XML a JSON Convierta datos en formato XML a JSON.
Para obtener más información, consulte: Reglas de serialización.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor específico o establecer un mensaje de error específico.
SNMP
Valor de SNMP walk Extraiga el valor por el nombre OID/MIB especificado y aplique las opciones de formato:
Sin cambios: devuelve Hex-STRING como cadena hexadecimal sin escape;
UTF-8 de Hex- STRING - convierte Hex-STRING a cadena UTF-8;
MAC de Hex-STRING - convierte Hex-STRING a cadena de dirección MAC (que tendrá ' ' reemplazado por ':' );
Entero de BITS: convierte los primeros 8 bytes de una cadena de bits expresada como una secuencia de caracteres hexadecimales (por ejemplo, "1A 2B 3C 4D") en un entero sin signo de 64 bits. En cadenas de bits de más de 8 bytes, los bytes siguientes se ignorarán.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor específico o establecer un mensaje de error especificado.
SNMP walk a JSON Convierte valores SNMP a JSON. Especifique un nombre de campo en el JSON y la ruta SNMP OID correspondiente. Los valores de campo se completarán con los valores en la ruta de OID SNMP especificada.
Puede utilizar este paso de preprocesamiento para descubrimiento de OID SNMP.
Opciones de formato de valores similares a en el paso Valor de caminata SNMP están disponibles.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor específico o establecer un mensaje de error específico. .
Scripts personalizados
JavaScript Ingrese el código JavaScript en el bloque que aparece al hacer clic en el campo de parámetro o en el ícono de lápiz.
Tenga en cuenta que la longitud de JavaScript disponible depende de la base de datos utilizada.
Para obtener más información, consulte: Preprocesamiento de Javascript
Validación
No coincide con la expresión regular Especifique una expresión regular con la que un valor no debe coincidir.
Por ej. Error:(.*?)\.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor específico o establecer un valor específico. mensaje de error.
Compruebe si hay errores en JSON Compruebe si hay un mensaje de error a nivel de aplicación ubicado en JSONPath. Detenga el procesamiento si tuvo éxito y el mensaje no está vacío; de lo contrario, continúe procesando con el valor que estaba antes de este paso de preprocesamiento. Tenga en cuenta que estos errores de servicios externos se informan al usuario tal cual, sin agregar información del paso de preprocesamiento.
P. $.errores. Si se recibe un JSON como {"errors":"e1"}, no se ejecutará el siguiente paso de preprocesamiento.
Si marca la casilla de verificación Personalizado en caso de error, es posible especificar un manejo de errores personalizado opciones: descartar el valor, establecer un valor específico o establecer un mensaje de error específico.
Compruebe si hay errores en XML Compruebe si hay un mensaje de error a nivel de aplicación ubicado en xpath. Detenga el procesamiento si tuvo éxito y el mensaje no está vacío; de lo contrario, continúe procesando con el valor que estaba antes de este paso de preprocesamiento. Tenga en cuenta que estos errores de servicios externos se informan al usuario tal cual, sin agregar información sobre los pasos de preprocesamiento.
No se informará ningún error en caso de no poder analizar XML no válido.
Compatible desde 4.4.0.
Si marque la casilla de verificación Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: ya sea para descartar el valor, establecer un valor específico o establecer un mensaje de error específico.
Aceleración
Descartar sin cambios con latido Descartar un valor si no ha cambiado dentro del período de tiempo definido (en segundos).
Se admiten valores enteros positivos para especificar los segundos (mínimo - 1 segundo). En este campo se pueden utilizar sufijos de tiempo (por ejemplo, 30 s, 1 m, 2 h, 1 d). En este campo se pueden utilizar macros de usuario y macros de descubrimiento de bajo nivel.
Solo se puede especificar una opción de limitación para un elemento de descubrimiento.
P. 1 millón. Si se pasa texto idéntico a esta regla dos veces en 60 segundos, se descartará.
Nota: Cambiar los prototipos de elementos no restablece la limitación. La limitación se restablece sólo cuando se cambian los pasos de preprocesamiento.
Prometheus
Prometheus a JSON Convierta las métricas requeridas de Prometheus a JSON.
Consulte Comprobaciones de Prometheus para obtener más detalles.

Tenga en cuenta que si la regla de descubrimiento se ha aplicado al equipo a través de plantilla, el contenido de esta pestaña es de solo lectura.

Macros personalizadas

La pestaña Macros LLD permite especificar macros de descubrimiento de bajo nivel personalizadas.

Las macros personalizadas son útiles en los casos en que el JSON devuelto no tiene las macros requeridas ya definidas. Así por ejemplo:

  • La clave nativa vfs.fs.discovery para el descubrimiento del sistema de archivos devuelve un JSON con algunas macros LLD predefinidas como {#FSNAME}, {#FSTYPE}. Estas macros se pueden utilizar directamente en prototipos de métricas e iniciadores (ver secciones siguientes de la página) ; no se requiere definir macros personalizadas;
  • La métrica del agente vfs.fs.get también devuelve un JSON con los datis dek sistema de archivos, pero sin macros LLD predefinidas. En este caso usted puede definir las macros usted mismo y asignarlas a los valores en el JSON usando JSONPath:

Los valores extraídos se pueden utilizar en métricas descubiertas, iniciadores, etc. Tenga en cuenta que los valores se extraerán del resultado del descubrimiento y de cualquiera de los pasos de preprocesamiento hasta el momento.

Parámetro Descripción
Macro LLD Nombre de la macro de descubrimiento de bajo nivel, utilizando la siguiente sintaxis: {#MACRO}.
JSONPath Ruta que se utiliza para extraer el valor de la macro LLD de una fila LLD, usando la sintaxis JSONPath.
Por ejemplo, $.foo extraerá "bar" y "baz" de este JSON: [{ "foo":"bar"}, {"foo":"baz"}]
Los valores extraídos del JSON devuelto se utilizan para reemplazar las macros LLD en los campos de prototipo de métricas, iniciadores, etc.
JSONPath se puede especificar utilizando la notación de puntos o la notación de corchetes. La notación entre corchetes debe usarse en caso de caracteres especiales y Unicode, como $['unicode + caracteres especiales #1']['unicode + caracteres especiales #2'].

Filtro

Se puede utilizar un filtro para generar métricas, iniciadores y gráficos reales solamente para las entidades que cumplan los criterios. La pestaña Filtros contiene las definiciones de filtros de las reglas de descubrimiento que permiten filtrar valores de descubrimiento:

Parámetro Descripción
Tipo de cálculo Las siguientes opciones para calcular los filtros están disponibles:
Y - se deben pasar todos los filtros;
O - suficiente si se pasa un filtro;
Y/O - utiliza Y con diferentes nombres de macro y O con el mismo nombre de macro;
Expresión personalizada - ofrece la posibilidad de definir un cálculo personalizado de filtros. La fórmula debe incluir todos los filtros de la lista. Limitado a 255 símbolos.
Filtros Los siguientes operadores de condición de filtro están disponibles: coincide, no coincide, existe, no existe.
Los operadores coincide y no coincide esperan un Perl Expresión regular compatible (PCRE). Por ejemplo, si solo está interesado en los sistemas de archivos C:, D: y E:, puede colocar {#FSNAME} en "Macro" y "^C|^D|^E" normal. expresión en los campos de texto "Expresión regular". También es posible filtrar por tipos de sistema de archivos usando la macro {#FSTYPE} (por ejemplo, "^ext|^reiserfs") y por tipos de unidades (compatibles solo con el agente de Windows) usando la macro {#FSDRIVETYPE} (por ejemplo, " fijo").
Puede ingresar una expresión regular o hacer referencia a una expresión regular en el campo "Expresión regular".
Para probar una expresión regular, puede usar "grep - E", por ejemplo: para f en ext2 nfs reiserfs smbfs; hacer eco $f | grep -E '^ext|^reiserfs' || echo "SALTAR: $f"; done

Los operadores Existe y no existe permiten filtrar entidades según la presencia o ausencia de la macro LLD especificada en la respuesta.
Tenga en cuenta que si una macro del falta el filtro en la respuesta, la entidad encontrada se ignorará, a menos que se especifique una condición "no existe" para esta macro.

Se mostrará una advertencia si la ausencia de una macro afecta el resultado de la expresión . Por ejemplo, si falta {#B} en:
{#A} coincide con 1 y {#B} coincide con 2 - dará una advertencia
{#A} coincide con 1 o {#B} coincide con 2 - sin previo aviso

Un error o una errata en la expresión regular utilizada en la regla LLD (por ejemplo, una expresión regular de "Sistemas de archivos para descubrimiento" incorrecta ) puede causar la eliminación de miles de configuraciones de métricas, valores históricos y eventos para muchos equipos.

La base de datos Zabbix en MySQL debe crearse con distinción entre mayúsculas y minúsculas si los nombres de los sistemas de archivos que difieren sólo en mayúsculas y minúsculas deben ser descubiertos correctamente.

Anular

La pestaña Anular permite establecer reglas para modificar la lista de métricas, iniciadores, gráficos y prototipos de equipos o sus atributos para objetos descubiertos que cumplen los criterios dados.

Las anulaciones (si las hay) se muestran en una lista reordenable de arrastrar y soltar y son ejecutados en el orden en que están definidos. Para configurar los detalles de una nueva anulación, haga clic en bloquear Anulaciones. Para editar una anulación existente, haga clic en el nombre de la anulación. Se abrirá una ventana emergente que permitirá editar los detalles de la regla de anulación.

Todos los parámetros obligatorios están marcados con asteriscos rojos.

Parámetro Descripción
Nombre Un nombre de anulación único (según la regla LLD).
Si el filtro coincide Define si se deben procesar las siguientes anulaciones cuando se cumplan las condiciones del filtro:
Continuar anulaciones: se procesarán las anulaciones posteriores.
Detener procesamiento: operaciones anteriores ( si corresponde) y se ejecutará esta anulación, las anulaciones posteriores se ignorarán para las filas LLD coincidentes.
Filtros Determina a qué entidades descubiertas se debe aplicar la anulación. Los filtros de anulación se procesan después de la regla de descubrimiento filtros y tienen la misma funcionalidad.
Operaciones Las operaciones de anulación se muestran con estos detalles:
Condición: un tipo de objeto (prototipo de elemento/prototipo de activador/prototipo de gráfico/prototipo de host) y una condición que se debe cumplir (es igual/no es igual /contiene/no contiene/coincide/no coincide)
Acción: se muestran enlaces para editar y eliminar una operación.

Configurando una operación

Para configurar los detalles de una nueva operación, haga clic en bloquear Operaciones. Para editar una operación existente, haga clic en junto a la operación. Aparecerá una ventana emergente donde puede editar los detalles de la operación.

Parámetro Descripción
Objeto Hay cuatro tipos de objetos disponibles:
Prototipo de métrica
Prototipo de iniciador
Prototipo de gráfico
Prototipo de equipo
Condición Permite filtrar entidades a las que se debe aplicar la operación.
Operador Operadores admitidos:
es igual a: se aplica a este prototipo
no es igual a: se aplica a todos los prototipos, excepto este
contiene: se aplica, si el nombre del prototipo contiene esta cadena
no contiene - aplicar, si el nombre del prototipo no contiene esta cadena
coincide - aplicar, si el nombre del prototipo coincide con la expresión regular
no no coincide - aplicar si el nombre del prototipo no coincide con la expresión regular
Patrón Una expresión regular o una cadena para buscar.
Objeto: Prototipo de métrica
Crear habilitado Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán anular la configuración original del prototipo de la métrica:
: la métrica se agregará en un estado habilitado.
No: La métrica se agregará a una entidad descubierta pero en un estado deshabilitado.
Descubrir Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán anular la configuración original del prototipo de la métrica:
: la métrica se agregará.
No: la métrica no se agregará.
Intervalo de actualización Cuando la casilla de verificación esté marcada, aparecerán dos opciones que permitirán establecer diferentes intervalos para la métrica:
Retraso - Intervalo de actualización de la métrica. Se admiten las macros de usuario y los sufijos de tiempo (por ejemplo, 30 s, 1 m, 2 h, 1 d). Debe establecerse en 0 si se utiliza Intervalo personalizado.
Intervalo personalizado: haga clic en para especificar intervalos flexibles de programación. Para obtener información detallada, consulte Intervalos personalizados.
Período de almacenamiento del historial Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán establecer diferentes períodos de almacenamiento del historial para la métrica:
No conservar el historial: si se selecciona, el historial no ser almacenado.
Período de almacenamiento: si se selecciona, aparecerá un campo de entrada para especificar el período de almacenamiento a la derecha. Se admiten las macros de usuario y las macros LLD.
Período de almacenamiento de tendencias Cuando se marca la casilla de verificación, aparecerán los botones que permitirán establecer diferentes períodos de almacenamiento de tendencias para la métrica:
No conservar tendencias - si se selecciona, las tendencias no serán almacenadas.
Período de almacenamiento: si se selecciona, aparecerá un campo de entrada para especificar el período de almacenamiento a la derecha. Se admiten las macros de usuario y las macros LLD.
Etiquetas Cuando se marca la casilla de verificación, aparecerá un nuevo bloque que permitirá especificar pares de etiqueta-valor.
Estas etiquetas se agregarán a las etiquetas especificadas en el prototipo de la métrica, incluso si en la etiqueta los nombres coinciden.
Objeto: Prototipo de iniciador
Crear habilitado Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán anular la configuración original del prototipo del iniciador:
: el iniciador se agregará en un estado habilitado.
No: el El iniciador se agregará a una entidad descubierta, pero en un estado deshabilitado.
Descubrir Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán anular la configuración original del prototipo del iniciador:
: se agregará el iniciador.
No: el iniciador no se agregará.
Gravedad Cuando la casilla de verificación está marcada, aparecerán botones de gravedad del iniciador que permitirán modificar la gravedad del iniciador.
Etiquetas Cuando se marca la casilla de verificación, aparecerá un nuevo bloque que permitirá especificar pares de etiqueta-valor.
Estas etiquetas se agregarán a las etiquetas especificadas en el prototipo del iniciador, incluso si en la etiqueta los nombres coinciden.
Objeto: Prototipo de gráfico
Descubrir Cuando se marca la casilla de verificación, aparecerán los botones que permitirán anular la configuración original del prototipo del gráfico:
: se agregará el gráfico.
No: no se agregará el gráfico .
Objeto: Prototipo de equipo
Crear habilitado Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán anular la configuración original del prototipo del equipo:
: el equipo se creará en un estado habilitado.
No - el El equipo se creará en un estado deshabilitado.
Descubrir Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán anular la configuración original del prototipo del equipo:
: se descubrirá el equipo.
No: el equipo no será descubierto.
Plantillas de enlaces Cuando se marca la casilla de verificación, aparecerá un campo de entrada para especificar plantillas. Comience a escribir el nombre de la plantilla o haga clic en Seleccionar junto al campo y seleccione plantillas de la lista en una ventana emergente.
Todas las plantillas vinculadas a un prototipo de host serán reemplazadas por plantillas de esta anulación.
Etiquetas Cuando se marca la casilla de verificación, aparecerá un nuevo bloque que permitirá especificar pares de etiqueta-valor.
Estas etiquetas se agregarán a las etiquetas especificadas en el prototipo del equipo, incluso si en la etiqueta los nombres coinciden.
Inventario de equipo Cuando la casilla de verificación esté marcada, aparecerán los botones que permitirán seleccionar los diferentes modos de inventario para el prototipo de equipo:
Desactivado - no completar el inventario de equipos
Manual - proporcionar detalles manualmente
Automatizado - completar automáticamente los datos del inventario de equipos según las métricas recopiladas.

Botones de formulario

Los botones en la parte inferior del formulario permiten realizar varias operaciones.

Agregar una regla de descubrimiento. Este botón sólo está disponible para nuevas reglas de descubrimiento.
Actualizar las propiedades de una regla de descubrimiento. Este botón sólo está disponible para reglas de descubrimiento existentes.
Crear otra regla de descubrimiento basada en las propiedades de la regla de descubrimiento actual.
Realizar el descubrimiento según la regla de descubrimiento inmediatamente. La regla de descubrimiento ya debe existir. Consulte más detalles.
Tenga en cuenta que cuando se realiza el descubrimiento inmediatamente, la caché de configuración no se actualiza, por lo que el resultado no reflejará cambios muy recientes en la configuración de la regla de descubrimiento.
Eliminar la regla de descubrimiento.
Cancelar la edición de las propiedades de la regla de descubrimiento.

Entidades descubiertas

Las capturas de pantalla siguientes ilustran cómo las métricas, los iniciadores y los gráficos descubiertos se ven en la configuración del equipo. Las entidades descubiertas están prefijadas con un enlace naranja a una regla de descubrimiento de la que provienen.

Tenga en cuenta que las entidades descubiertas no se crearán en caso de que haya entidades ya existentes con los mismos criterios de unicidad, por ejemplo, una métrica con la misma clave o gráfico con el mismo nombre. En este caso se muestra un mensaje de error en la interfaz de que la regla de descubrimiento de bajo nivel no pudo crear ciertas entidades. La regla del descubrimiento, sin embargo, no quedará sin soporte porque alguna entidad no pueda ser creada y haya tenido que ser omitida. La regla de descubrimiento continuará creando/actualizando otras entidades.

Las métricas (de manera similar, iniciadores y gráficos) creadas por una regla de descubrimiento de bajo nivel se eliminarán automáticamente si una entidad descubierta (sistema de archivos, interfaz, etc) deja de estar descubierto (o ya no pasa el filtro). En este caso se eliminarán las métricas, iniciadores y gráficos después de que pasen los días definidos en el campo Período de conservación de recursos perdidos.

Cuando las entidades descubiertas pasan a ser 'Ya no descubiertas', se muestra un indicador de "tiempo de vida" en la lista de elementos. Mueva el puntero del mouse sobre él. y se mostrará un mensaje indicando cuantos días faltan para que la métrica se elimine.

Si las entidades se marcaron para su eliminación, pero no se eliminaron en el tiempo esperado (regla de descubrimiento deshabilitada o métrica de equipo), serán eliminadas la próxima vez que se procese la regla de descubrimiento.

Las entidades que contengan otras entidades, que estén marcadas para su eliminación, no se actualizarán si se modifican en el nivel de la regla de descubrimiento. Por ejemplo, los iniciadores basados en LLD no se actualizarán si contienen métricas marcadas para su eliminación.

Otros tipos de descubrimiento

Más detalles e instrucciones sobre otros tipos de descubrimientos listos para usar están disponibles en las siguientes secciones:

Para obtener más detalles sobre el formato JSON para elementos de descubrimiento y un ejemplo de cómo implementar su propio descubridor de sistema de archivos con un script Perl, consulte creando reglas LLD personalizadas.

Creación de reglas LLD personalizadas

También es posible crear una regla LLD completamente personalizada, descubriendo cualquier tipo de entidades, por ejemplo, bases de datos en un servidor de bases de datos.

Para hacerlo, se debe crear un elemento personalizado que devuelva JSON, especificando objetos encontrados y, opcionalmente, algunas propiedades de los mismos. La cantidad de macros por entidad no está limitada, mientras que las reglas de descubrimiento integradas devuelven una o dos macros (por ejemplo, dos para el descubrimiento del sistema de archivos), es posible devolver más.

El formato JSON requerido se ilustra mejor con un ejemplo. Supongamos que queremos ejecutar un agente antiguo Zabbix 1.8 (uno que no admite "vfs.fs.discovery"), pero necesitamos descubrir los sistemas de archivos. Aquí tenemos un script Perl simple para Linux que descubre sistemas de archivos montados y genera el JSON, que incluye tanto el nombre como el tipo del sistema de archivos. Una manera de usarlo sería como un parámetro de usuario con la clave "vfs.fs.discovery_perl":

#!/usr/bin/perl
       
       $first = 1;
       
       print "[\n";
       
       for (`cat /proc/mounts`)
       {
           ($fsname, $fstype) = m/\S+ (\S+) (\S+)/;
       
           print "\t,\n" if not $first;
           $first = 0;
       
           print "\t{\n";
           print "\t\t\"{#FSNAME}\":\"$fsname\",\n";
           print "\t\t\"{#FSTYPE}\":\"$fstype\"\n";
           print "\t}\n";
       }
       
       print "]\n";

Los símbolos permitidos para los nombres de macros LLD son 0-9, A-Z , _ , .

No se admiten letras minúsculas en los nombres.

A continuación se muestra un ejemplo de su resultado (reformateado para mayor claridad). El JSON para las comprobaciones de descubrimiento personalizadas debe seguir el mismo formato.

[
           { "{#FSNAME}":"/", "{#FSTYPE}":"rootfs" },
           { "{#FSNAME}":"/sys", "{#FSTYPE}":"sysfs" },
           { "{#FSNAME}":"/proc", "{#FSTYPE}":"proc" },
           { "{#FSNAME}":"/dev", "{#FSTYPE}":"devtmpfs" },
           { "{#FSNAME}":"/dev/pts", "{#FSTYPE}":"devpts" },
           { "{#FSNAME}":"/lib/init/rw", "{#FSTYPE}":"tmpfs" },
           { "{#FSNAME}":"/dev/shm", "{#FSTYPE}":"tmpfs" },
           { "{#FSNAME}":"/home", "{#FSTYPE}":"ext3" },
           { "{#FSNAME}":"/tmp", "{#FSTYPE}":"ext3" },
           { "{#FSNAME}":"/usr", "{#FSTYPE}":"ext3" },
           { "{#FSNAME}":"/var", "{#FSTYPE}":"ext3" },
           { "{#FSNAME}":"/sys/fs/fuse/connections", "{#FSTYPE}":"fusectl" }
       ]

En el ejemplo anterior se requiere que las claves coincidan con los nombres de macro LLD utilizados en los prototipos, la alternativa es extraer los valores de macro LLD usando JSONPath {#FSNAME}$.fsname y {#FSTYPE}$.fstype, haciendo así posible dicho script:

#!/usr/bin/perl
        
       $first = 1;
        
       print "[\n";
        
       for (`cat /proc/mounts`)
       {
           ($fsname, $fstype) = m/\S+ (\S+) (\S+)/;
        
           print "\t,\n" if not $first;
           $first = 0;
        
           print "\t{\n";
           print "\t\t\"fsname\":\"$fsname\",\n";
           print "\t\t\"fstype\":\"$fstype\"\n";
           print "\t}\n";
       }
        
       print "]\n";

A continuación se muestra un ejemplo de su resultado (reformateado para mayor claridad). El JSON para comprobaciones de descubrimiento personalizadas debe seguir el mismo formato.

[
           { "fsname": "/", "fstype": "rootfs" },
           { "fsname": "/sys", "fstype": "sysfs" },
           { "fsname": "/proc", "fstype": "proc" },
           { "fsname": "/dev", "fstype": "devtmpfs" },
           { "fsname":"/dev/pts", "fstype":"devpts" },
           { "fsname": "/lib/init/rw", "fstype": "tmpfs" },
           { "fsname": "/dev/shm", "fstype": "tmpfs" },
           { "fsname":"/home", "fstype":"ext3" },
           { "fsname": "/tmp", "fstype": "ext3" },
           { "fsname": "/usr", "fstype": "ext3" },
           { "fsname": "/var", "fstype": "ext3" },
           { "fsname":"/sys/fs/fuse/connections", "fstype":"fusectl" }
       ]

Luego, en el campo "Filtro" de la regla de descubrimiento, podríamos especificar "{#FSTYPE}" como macro y "rootfs|ext3" como expresión regular.

No es necesario utilizar nombres de macro FSNAME/FSTYPE con las reglas de LLD personalizadas, tiene la libertad de usar los nombres que quiera. En caso de que se use JSONPath, la fila LLD será un elemento de matriz que puede ser un objeto, pero también puede ser otra matriz o un valor.

Tenga en cuenta que, si utiliza un parámetro de usuario, el valor de retorno está limitado a 16 MB. Para obtener más detalles, consulte los límites de datos para valores de retorno de LLD.