Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.
Table of Contents

2 ·¡³æ±è°ù±ð²õ¾±¨®²Ô de iniciador

¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô general

Las expresiones utilizadas en iniciadores son muy flexibles. Puede utilizarlas para crear pruebas l¨®gicas complejas relacionadas con las estad¨ªsticas monitoreadas.

Una expresi¨®n simple utiliza una ´Ú³Ü²Ô³¦¾±¨®²Ô que se aplica a la m¨¦trica con algunos par¨¢metros. La ´Ú³Ü²Ô³¦¾±¨®²Ô devuelve un resultado que se compara con el umbral, utilizando un operador y una constante.

La sintaxis de una expresi¨®n simple y ¨²til es function(/host/key,parameter)<operator><constant>.

Por ejemplo:

min(/Áú»¢¶Ä²© server/net.if.in[eth0,bytes],5m)>100K

se activar¨¢ si la cantidad de bytes recibidos durante los ¨²±ô³Ù¾±³¾´Çs cinco minutos siempre fue superior a 100 kilobytes.

Si bien la sintaxis es exactamente la misma, desde el punto de vista funcional hay dos tipos de expresiones de iniciador:

  • expresi¨®n del problema: define las condiciones del problema
  • expresi¨®n de recuperaci¨®n (opcional): define condiciones adicionales de la resoluci¨®n del problema

Al definir una expresi¨®n de problema sola, esta expresi¨®n se utilizar¨¢ tanto como umbral del problema como umbral de recuperaci¨®n del problema. Tan pronto como la expresi¨®n del problema se eval¨²a como VERDADERA, hay un problema. Tan pronto como la expresi¨®n del problema se eval¨²a como FALSA, el problema se resuelve.

Al definir tanto la expresi¨®n del problema como la expresi¨®n de recuperaci¨®n complementaria, la resoluci¨®n del problema se vuelve m¨¢s compleja: no solo la expresi¨®n del problema tiene que ser FALSA, sino que tambi¨¦n la expresi¨®n de recuperaci¨®n tiene que ser VERDADERA. Esto es ¨²til para crear ³ó¾±²õ³Ù¨¦°ù±ð²õ¾±²õ y evitar la oscilaci¨®n del iniciador.

No resulta productivo utilizar la macro {TRIGGER.VALUE} en una expresi¨®n de recuperaci¨®n porque esta expresi¨®n solo se eval¨²a cuando el iniciador est¨¢ en el estado "Problema". En consecuencia, {TRIGGER.VALUE} siempre se resolver¨¢ en "1" (que indica un estado "Problema") mientras se eval¨²a la expresi¨®n.

Funciones

Las funciones permiten calcular los valores recogidos (promedio, m¨ªnimo, m¨¢ximo, suma), buscar cadenas, hacer referencia a la hora actual y otros factores.

Se incluye una lista completa de funciones admitidas. disponible.

Por lo general, las funciones devuelven valores num¨¦ricos para comparar. al regresar cadenas, la comparaci¨®n es posible con = y <> operadores (ver ejemplo).

±Ê²¹°ù¨¢³¾±ð³Ù°ù´Çs de la ´Ú³Ü²Ô³¦¾±¨®²Ô

Los par¨¢metros de ´Ú³Ü²Ô³¦¾±¨®²Ô permiten especificar:

  • clave de host y elemento (funciones que hacen referencia ¨²nicamente al historial del elemento del host)
  • par¨¢metros espec¨ªficos de la ´Ú³Ü²Ô³¦¾±¨®²Ô
  • otras expresiones (no disponible para funciones que hacen referencia al host) historial de elementos, consulte otras expresiones para ejemplos)

La clave del host y del elemento se puede especificar como /host/key. el referenciado el elemento debe estar en un estado compatible (excepto para la ´Ú³Ü²Ô³¦¾±¨®²Ô nodata(), que tambi¨¦n se calcula para art¨ªculos no admitidos).

Mientras que otras expresiones de activaci¨®n como par¨¢metros de ´Ú³Ü²Ô³¦¾±¨®²Ô se limitan a funciones no hist¨®ricas en disparadores, esta limitaci¨®n no se aplica en elementos calculados.

±Ê²¹°ù¨¢³¾±ð³Ù°ù´Çs espec¨ªficos de la ´Ú³Ü²Ô³¦¾±¨®²Ô

Los par¨¢metros espec¨ªficos de la ´Ú³Ü²Ô³¦¾±¨®²Ô se colocan despu¨¦s de la clave de la m¨¦trica y se separan de la clave de la m¨¦trica por una coma. Ver las funciones compatibles para obtener una lista completa de estos par¨¢metros.

La mayor¨ªa de funciones num¨¦ricas aceptan el tiempo como par¨¢metro. Puede utilizar segundos o sufijos de tiempo para indicar la hora. Precedido por una almohadilla, el par¨¢metro tiene un significado diferente:

·¡³æ±è°ù±ð²õ¾±¨®²Ô ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô
sum(/host/key,10m) Suma de valores en los ¨²±ô³Ù¾±³¾´Çs 10 minutos.
sum(/host/key,#10) Suma de los ¨²±ô³Ù¾±³¾´Çs diez valores.

Los par¨¢metros con una almohadilla tienen un significado diferente con la ´Ú³Ü²Ô³¦¾±¨®²Ô ¨²±ô³Ù¾±³¾´Ç: denotan el en¨¦simo valor anterior, por lo que dados los valores 3, 7, 2, 6, 5 (del m¨¢s reciente al menos reciente):

  • last(/host/key,#2) devolver¨ªa '7'
  • last(/host/key,#5) devolver¨ªa '5'
Desplazamiento de hora

Se admite un desplazamiento de hora opcional con recuento de tiempo o valor como par¨¢metro de ´Ú³Ü²Ô³¦¾±¨®²Ô. Este par¨¢metro permite referenciar datos de un per¨ªodo de tiempo en el pasado.

El desplazamiento de hora comienza con "now", especificando la hora actual, y es seguido de +N<unidad de tiempo> o -N<unidad de tiempo> - para sumar o restar N unidades de tiempo.

Por ejemplo, avg(/host/key,1h:now-1d) devolver¨¢ el valor promedio durante una hora hace un d¨ªa.

El desplazamiento de hora especificado en meses (M) y a?os (y) solo se admite para funciones de tendencia. Otras funciones admiten segundos (s), minutos (m), horas (h), d¨ªas (d) y semanas (w).

Desplazamiento de tiempo con per¨ªodos de tiempo absolutos

Se admiten per¨ªodos de tiempo absolutos en el par¨¢metro de desplazamiento de hora, por ejemplo, medianoche a medianoche por un d¨ªa, de lunes a domingo por una semana, del primer al ¨²±ô³Ù¾±³¾´Ç d¨ªa del mes por un mes.

El desplazamiento de tiempo para per¨ªodos de tiempo absolutos comienza con "now", especificando la hora actual, y va seguido de cualquier n¨²mero de operaciones de tiempo: /<unidad de tiempo> - define el principio y el final de la unidad de tiempo, por ejemplo, de medianoche a medianoche para un d¨ªa, +N<unidad de tiempo> o -N<unidad de tiempo> - para sumar o restar N unidades de tiempo.

Tenga en cuenta que el valor del desplazamiento de tiempo puede ser mayor o igual a 0, mientras que el valor m¨ªnimo del per¨ªodo de tiempo es 1.

±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô
1d:now/d Ayer
1d:now/d+1d Hoy
2d:now/d+1d ?ltimos 2 d¨ªas
1w:now/s La semana pasada
1w:now/s+1s Esta semana
Otras expresiones

Los par¨¢metros de ´Ú³Ü²Ô³¦¾±¨®²Ô pueden contener otras expresiones, como en la siguiente sintaxis:

min(min(/host/clave,1h),min(/host2/key2,1h)*10)

Tenga en cuenta que no se pueden usar otras expresiones, si la ´Ú³Ü²Ô³¦¾±¨®²Ô hace referencia a historial de art¨ªculos. Por ejemplo, la siguiente sintaxis no est¨¢ permitida:

min(/host/clave,#5*10)

Operadores

Los siguientes operadores son compatibles con los iniciadores (en orden descendente por prioridad de ejecuci¨®n):

Prioridad Operador ¶Ù±ð´Ú¾±²Ô¾±³¦¾±¨®²Ô Notas para valores desconocidos Forzar que el operando de conversi¨®n flote 1
1 - Unario menos -Desconocido ¡ú Desconocido ³§¨ª
2 not NO l¨®gico no Desconocido ¡ú Desconocido ³§¨ª
3 * ²Ñ³Ü±ô³Ù¾±±è±ô¾±³¦²¹³¦¾±¨®²Ô 0 * Desconocido ¡ú Desconocido
(s¨ª, Desconocido, no 0 - para no perder
Desconocido en operaciones aritm¨¦ticas)<br >1.2 * Desconocido ¡ú Desconocido
³§¨ª
/ ¶Ù¾±±¹¾±²õ¾±¨®²Ô Desconocido / 0 ¡ú error
Desconocido / 1.2 ¡ú Desconocido
0.0 / Desconocido ¡ú Desconocido
³§¨ª
4 + Aritm¨¦tica m¨¢s 1.2 + Desconocido ¡ú Desconocido ³§¨ª
- Aritm¨¦tica menos 1.2 - Desconocido ¡ú Desconocido ³§¨ª
5 < Menos de. El operador se define como:

A<B ? (A<B-0.000001)
1.2 < Desconocido ¡ú Desconocido ³§¨ª
<= Menor o igual que. El operador se define como:

A<=B ? (A¡ÜB+0.000001)
Desconocido <= Desconocido ¡ú Desconocido ³§¨ª
> M¨¢s que. El operador se define como:

A>B ? (A>B+0.000001)
³§¨ª
>= Mayor o igual a. El operador se define como:

A>=B ? (A¡ÝB-0.000001)
³§¨ª
6 = Es igual. El operador se define como:

A=B ? (A¡ÝB-0.000001) y (A¡ÜB+0.000001)
No 1
<> No iguales. El operador se define como:

A<>B ? (A<B-0.000001) o (A>B+0.000001)
No 1
7 and Y l¨®gico 0 y Desconocido ¡ú 0
1 y Desconocido ¡ú Desconocido
Desconocido y Desconocido ¡ú Desconocido
³§¨ª
8 or L¨®gico O 1 o Desconocido ¡ú 1
0 o Desconocido ¡ú Desconocido
Desconocido o Desconocido ¡ú Desconocido
³§¨ª

1 El operando de cadena todav¨ªa se convierte en num¨¦rico si:

  • otro operando es num¨¦rico
  • se utiliza un operador distinto de = o <> en un operando

(Si la conversi¨®n falla, el operando num¨¦rico se convierte en un operando de cadena y ambos operandos se comparan como cadenas).

Los operadores not, and y or distinguen entre may¨²sculas y min¨²sculas y deben estar en min¨²scula. Tambi¨¦n deben estar rodeados de espacios o par¨¦ntesis.

Todos los operadores, excepto unario - y not, tienen operaci¨®n de asociatividad de izquierda a derecha. Unario - y not no son asociativos (es decir -(-1) y not (not 1) deben usarse en lugar de --1 y not not 1).

Resultado de la evaluaci¨®n:

  • <, <=, >, >=, =, <> Los operadores producir¨¢n '1' en la expresi¨®n de activaci¨®n si el valor especificado la relaci¨®n es verdadera y '0' si es falsa. Si al menos un operando es Desconocido el resultado es Desconocido;
  • and para operandos conocidos producir¨¢ '1' si ambos operandos comparar desigual con '0'; en caso contrario, da '0'; por desconocido operandos y produce '0' solo si un operando se compara igual a '0'; de lo contrario, arroja 'Desconocido';
  • or para operandos conocidos producir¨¢ '1' si cualquiera de sus operandos comparar desigual con '0'; en caso contrario, da '0'; por desconocido operandos o produce '1' solo si un operando no es igual a '0'; de lo contrario, arroja 'Desconocido';
  • El resultado del operador de negaci¨®n l¨®gica not para un valor conocido el operando es '0' si el valor de su operando no es igual a '0'; '1' si el valor de su operando se compara con '0'. Para desconocido El operando not produce 'Desconocido'.

Almacenamiento en cach¨¦ de valores Los valores necesarios para la evaluaci¨®n del activador se almacenan en cach¨¦ en el servidor Áú»¢¶Ä²©. Debido a esta evaluaci¨®n del activador, se produce una mayor carga de la base de datos durante alg¨²n tiempo despu¨¦s de que se reinicia el servidor. El cach¨¦ de valores no se borra cuando se eliminan los valores del historial de elementos (ya sea manualmente o mediante el ama de llaves), por lo que el servidor usar¨¢ los valores almacenados en cach¨¦ hasta que sean m¨¢s antiguos que los per¨ªodos de tiempo definidos en las funciones de activaci¨®n o se reinicie el servidor.::: noteclassic Si no hay datos recientes en el cach¨¦ y no hay un per¨ªodo de consulta definido en la ´Ú³Ü²Ô³¦¾±¨®²Ô, Áú»¢¶Ä²©, de forma predeterminada, retroceder¨¢ hasta una semana en el pasado para consultar la base de datos en busca de valores hist¨®ricos.:::

Ejemplos de disparadores

Ejemplo 1

La carga del procesador es demasiado alta en el servidor Áú»¢¶Ä²©.

¨²ltimo(/Servidor Áú»¢¶Ä²©/sistema.cpu.cargar[todos,avg1])>5

Al usar la ´Ú³Ü²Ô³¦¾±¨®²Ô 'last()', estamos haciendo referencia a la m¨¢s reciente valor. /Áú»¢¶Ä²© server/system.cpu.load[all,avg1] da un nombre corto de el par¨¢metro monitoreado. Especifica que el host es 'servidor Áú»¢¶Ä²©' y la clave que se supervisa es 'system.cpu.load[all,avg1]'. Finalmente, >5 significa que el gatillo est¨¢ en el estado PROBLEMA siempre que sea m¨¢s La medici¨®n reciente de la carga del procesador del servidor Áú»¢¶Ä²© es superior a 5.

Ejemplo 2

www.example.com est¨¢ sobrecargado.

last(/www.example.com/system.cpu.load[all,avg1])>5 o min(/www.example.com/system.cpu.load[all,avg1],10m)>2

La expresi¨®n es verdadera cuando la carga actual del procesador es m¨¢s de 5 o la carga del procesador fue superior a 2 durante los ¨²±ô³Ù¾±³¾´Çs 10 minutos.

Ejemplo 3

/etc/passwd ha sido cambiado.

last(/www.example.com/vfs.file.cksum[/etc/passwd],#1)<>last(/www.example.com/vfs.file.cksum[/etc/passwd],#2)

La expresi¨®n es verdadera cuando el valor anterior del checksum de /etc/passwd difiere del m¨¢s reciente.

Expresiones similares podr¨ªan ser ¨²tiles para monitorear cambios en archivos importantes, como /etc/passwd, /etc/inetd.conf, /kernel, etc.

Ejemplo 4

Alguien est¨¢ descargando un archivo grande de Internet.

Uso de la ´Ú³Ü²Ô³¦¾±¨®²Ô min:

min(/www.ejemplo.com/net.if.in[eth0,bytes],5m)>100K

La expresi¨®n es verdadera cuando el n¨²mero de bytes recibidos en eth0 es mayor de 100 KB en los ¨²±ô³Ù¾±³¾´Çs 5 minutos.

Ejemplo 5

Ambos nodos del servidor SMTP en cl¨²ster est¨¢n inactivos.

Tenga en cuenta el uso de dos hosts diferentes en una expresi¨®n:

¨²ltimo(/smtp1.ejemplo.com/net.tcp.servicio[smtp])=0 y ¨²±ô³Ù¾±³¾´Ç(/smtp2.ejemplo.com/net.tcp.servicio[smtp])=0

La expresi¨®n es verdadera cuando ambos servidores SMTP est¨¢n inactivos en ambos smtp1.ejemplo.com y smtp2.ejemplo.com.

Ejemplo 6

El agente de Áú»¢¶Ä²© debe actualizarse.

Uso de la ´Ú³Ü²Ô³¦¾±¨®²Ô buscar():

find(/ejemplo.ejemplo.com/agente.version,"me gusta","beta8")=1

La expresi¨®n es verdadera si el agente Áú»¢¶Ä²© tiene la versi¨®n beta8.

Ejemplo 7

El servidor es inalcanzable.

cuenta(/ejemplo.ejemplo.com/icmpping,30m,,"0")>5

La expresi¨®n es verdadera si el host "example.example.com" es inalcanzable m¨¢s de 5 veces en los ¨²±ô³Ù¾±³¾´Çs 30 minutos.

Ejemplo 8

No hay latidos en los ¨²±ô³Ù¾±³¾´Çs 3 minutos.

Uso de la ´Ú³Ü²Ô³¦¾±¨®²Ô nodata():

nodata(/ejemplo.ejemplo.com/tick,3m)=1

Para hacer uso de este activador, 'tick' debe definirse como un Áú»¢¶Ä²© trampero elemento. El anfitri¨®n debe env¨ªe peri¨®dicamente datos para este art¨ªculo usando zabbix_sender. Si no hay datos recibido dentro de los 180 segundos, el valor de activaci¨®n se convierte en PROBLEMA.

Tenga en cuenta que 'nodata' se puede utilizar para cualquier tipo de elemento.

Ejemplo 9

Actividad de la CPU durante la noche.

Uso de la ´Ú³Ü²Ô³¦¾±¨®²Ô time():

min(/Áú»¢¶Ä²© server/system.cpu.load[all,avg1],5m)>2 and time()<060000

El iniciador puede cambiar su estado a problema solo durante la noche (00:00 - 06:00).

Ejemplo 10

Actividad de la CPU en cualquier momento con excepci¨®n.

Uso de la ´Ú³Ü²Ô³¦¾±¨®²Ô time() y operador not:

min(/zabbix/system.cpu.load[all,avg1],5m)>2
       and not (dayofweek()=7 and time()>230000)
       and not (dayofweek()=1 and time()<010000)

El iniciador puede cambiar su estado a problema en cualquier momento, excepto 2 horas en el cambio de semana (domingo, 23:00 - lunes, 01:00).

Ejemplo 11

Compruebe si la hora local del cliente est¨¢ sincronizada con la hora del servidor Áú»¢¶Ä²©.

Uso de la ´Ú³Ü²Ô³¦¾±¨®²Ô fuzzytime():

fuzzytime(/MySQL_DB/system.localtime,10s)=0

El iniciador cambiar¨¢ al estado de problema en caso de que la hora local est¨¦ activada. El servidor MySQL_DB y el servidor Áú»¢¶Ä²© difieren en m¨¢s de 10 segundos. Tenga en cuenta que 'system.localtime' debe configurarse como comprobaci¨®n pasiva.

Ejemplo 12

Comparando la carga promedio actual con la carga promedio del mismo tiempo ayer (usando el cambio de tiempo como now-1d).

avg(/server/system.cpu.load,1h)/avg(/server/system.cpu.load,1h:now-1d)>2

Este iniciador se activar¨¢ si la carga promedio de la ¨²ltima hora supera el carga promedio de la misma hora ayer m¨¢s de dos veces.

Ejemplo 13

Usar el valor de otra m¨¦trica para obtener un umbral de activaci¨®n:

last(/Template PfSense/hrStorageFree[{#SNMPVALUE}])<last(/Template PfSense/hrStorageSize[{#SNMPVALUE}])*0.1

El iniciador se activar¨¢ si el almacenamiento gratuito cae por debajo del 10 por ciento.

Ejemplo 14

Usar resultado de la evaluaci¨®n para obtener el n¨²mero de iniciadores que superan un umbral:

(last(/server1/system.cpu.load[all,avg1])>5) + (last(/server2/system.cpu.load[all,avg1])>5) + (last(/server3/system.cpu.load[all,avg1])>5)>=2

El iniciador se activar¨¢ si al menos dos de los iniciadores en la expresi¨®n se encuentran en un estado problem¨¢tico.

Ejemplo 15

Comparar valores de cadena de dos m¨¦tricas: aqu¨ª los operandos son funciones que retornan cadenas.

Problema: cree una alerta si la versi¨®n de Ubuntu es diferente en diferentes equipos

last(/NY Áú»¢¶Ä²© server/vfs.file.contents[/etc/os-release])<>last(/LA Áú»¢¶Ä²© server/vfs.file.contents[/etc/os-release])
Ejemplo 16 Comparaci¨®n de dos valores de cadena: los operandos son: -una ´Ú³Ü²Ô³¦¾±¨®²Ô que devuelve una cadena -una combinaci¨®n de macros y cadenasProblema: detectar cambios en la consulta DNSLa clave del elemento es:net.dns.record[192.0.2.0,{ $WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1]con macros definidas como{$WEBSITE_NAME} = example.com{$DNS_RESOURCE_RECORD_TYPE} = MXy normalmente devuelve:example.comMX0 mail.example.comAs¨ª que nuestra expresi¨®n de activaci¨®n para detectar si el DNS El resultado de la consulta desviado del resultado esperado es: last(/Áú»¢¶Ä²© server/net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1])<>"{$WEBSITE_NAME}{$DNS_RESOURCE_RECORD_TYPE} 0 mail.{$WEBSITE_NAME}"Observe las comillas alrededor del segundo operando.
Ejemplo 17

Comparando dos valores de cadena, los operandos son:

  • una ´Ú³Ü²Ô³¦¾±¨®²Ô que devuelve una cadena
  • una cadena constante con caracteres especiales \ y "

Problema: detecta si el contenido del archivo /tmp/hello es igual a:

\" //hello ?\"

Opci¨®n 1) escribir la cadena directamente

last(/Áú»¢¶Ä²© server/vfs.file.contents[/tmp/hello])="\\\" //hello ?\\\""

Observe c¨®mo se escapan los caracteres \ y " cuando se compara la cadena directamente.

Opci¨®n 2) usar una macro

{$HELLO_MACRO} = \" //hello ?\"

en la expresi¨®n:

last(/Áú»¢¶Ä²© server/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}
Ejemplo 18

Comparaci¨®n de per¨ªodos de largo plazo.

Problema: la carga del servidor Exchange aument¨® m¨¢s del 10% el mes pasado

trendavg(/Exchange/system.cpu.load,1M:now/M)>1.1*trendavg(/Exchange/system.cpu.load,1M:now/M-1M)

Tambi¨¦n puede usar el campo de nombre de evento en la configuraci¨®n del iniciador para crear un mensaje de alerta significativo, por ejemplo para recibir algo como

"La carga del servidor Exchange aument¨® un 24% en julio (0,69) en comparaci¨®n con junio (0,56)"

el nombre del evento debe definirse como:

La carga del servidor {HOST.HOST} aument¨® en {{?100*trendavg(//system.cpu.load,1M:now/M)/trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(0)}% en {{TIME}.fmttime(%B,-1M)} ({{?trendavg(//system.cpu.load,1M:now/M)}.fmtnum(2)} ) en comparaci¨®n con {{TIME}.fmttime(%B,-2M)} ({{?trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(2)})

Tambi¨¦n es ¨²til permitir el cierre manual en la configuraci¨®n del iniciador para este tipo de problema.

?Tiene un ejemplo de expresiones de iniciador que pueda ser ¨²til para otros? Utilice el formulario de sugerencia de ejemplos para enviarlo a los desarrolladores de Áú»¢¶Ä²©.

±á¾±²õ³Ù¨¦°ù±ð²õ¾±²õ

A veces se necesita un intervalo entre el problema y los estados de recuperaci¨®n, en lugar de un simple umbral. Por ejemplo, si queremos definir un disparador que informa un problema cuando la temperatura de la sala del servidor sube 20¡ãC y queremos que permanezca en el estado problem¨¢tico hasta que la temperatura cae por debajo de 15¡ãC, un simple umbral de activaci¨®n a 20¡ãC no ser¨¢ suficiente.

En su lugar, necesitamos definir una expresi¨®n desencadenante para el evento del problema. primero (temperatura superior a 20¡ãC). Entonces necesitamos definir un adicional condici¨®n de recuperaci¨®n (temperatura por debajo de 15¡ãC). Esto se hace definiendo un par¨¢metro Recovery expression adicional cuando definiendo un disparador.

En este caso, la recuperaci¨®n del problema se llevar¨¢ a cabo en dos pasos:

  • Primero, la expresi¨®n del problema (temperatura superior a 20¡ãC) deber¨¢ evaluar a FALSO
  • En segundo lugar, la expresi¨®n de recuperaci¨®n (temperatura inferior a 15¡ãC) tendr¨¢ para evaluar a VERDADERO

La expresi¨®n de recuperaci¨®n se evaluar¨¢ solo cuando el evento del problema sea resuelto primero.

::: nota de advertencia La expresi¨®n de recuperaci¨®n siendo VERDADERA por s¨ª sola no resolver un problema si la expresi¨®n del problema sigue siendo VERDADERA! :::

Ejemplo 1

La temperatura en la sala de servidores es demasiado alta.

·¡³æ±è°ù±ð²õ¾±¨®²Ô del problema:

¨²ltimo(/servidor/temp)>20

·¡³æ±è°ù±ð²õ¾±¨®²Ô de recuperaci¨®n:

¨²ltimo(/servidor/temp)<=15
Ejemplo 2

El espacio libre en disco es demasiado bajo.

·¡³æ±è°ù±ð²õ¾±¨®²Ô del problema: son menos de 10 GB durante los ¨²±ô³Ù¾±³¾´Çs 5 minutos

max(/servidor/vfs.fs.tama?o[/,gratis],5m)<10G

·¡³æ±è°ù±ð²õ¾±¨®²Ô de recuperaci¨®n: son m¨¢s de 40 GB durante los ¨²±ô³Ù¾±³¾´Çs 10 minutos

min(/servidor/vfs.fs.tama?o[/,gratis],10m)>40G

Expresiones con operandos desconocidos

Generalmente, un operando desconocido (como una m¨¦trica no soportada) en la expresi¨®n representar¨¢ inmediatamente el valor de activaci¨®n como "Desconocido".

Sin embargo, en algunos casos se admiten operandos desconocidos (m¨¦tricas no soportadas, errores de ´Ú³Ü²Ô³¦¾±¨®²Ô) en la evaluaci¨®n de expresiones:

  • La ´Ú³Ü²Ô³¦¾±¨®²Ô nodata() se eval¨²a independientemente de si la m¨¦trica a la que se hace referencia es compatible o no.
  • Las expresiones l¨®gicas con OR y AND se pueden evaluar con valores conocidos en dos casos independientemente de los operandos desconocidos:
    • Caso 1: "1 or some_function(unsupported_item1) or some_function(unsupported_item2) or ..." can be evaluated to known result ('1' or "Problem"),
    • Caso 2: "0 and some_function(unsupported_item1) and some_function(unsupported_item2) and ..." can be evaluated to known result ('0' or "OK").
      Áú»¢¶Ä²© intenta evaluar tales expresiones l¨®gicas tomando m¨¦tricas no soportadas como operandos desconocidos. En los dos casos anteriores se producir¨¢ un valor conocido ("Problema" u "OK", respectivamente); en todos los dem¨¢s casos, el iniciador se evaluar¨¢ como "Desconocido".
  • Si la evaluaci¨®n de la ´Ú³Ü²Ô³¦¾±¨®²Ô de una m¨¦trica soportada da como resultado un error, el valor de la ´Ú³Ü²Ô³¦¾±¨®²Ô se vuelve "desconocido" y participa como operando desconocido en una evaluaci¨®n adicional de la expresi¨®n.

Tenga en cuenta que los operandos desconocidos pueden "desaparecer" s¨®lo en expresiones l¨®gicas como las descritas arriba. En expresiones aritm¨¦ticas los operandos desconocidos siempre conducen al ?resultado "Desconocido" (excepto la divisi¨®n por 0).

Una expresi¨®n que da como resultado "Desconocido" no cambia el estado del iniciador ("Problema/OK"). Entonces, si fue "Problema" (ver Caso 1), permanece en el mismo estado de problema incluso si la parte conocida se resuelve ("1" se convierte en "0"), porque la expresi¨®n ahora se eval¨²a como "Desconocida". y eso no cambia el estado de activaci¨®n.

Si una expresi¨®n de iniciador con varias m¨¦tricas no soportadas se eval¨²a como Desconocido el mensaje de error en la interfaz se refiere a la ¨²ltima m¨¦trica no soportada evaluada.