This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. El principio básico
1.1. Una mirada al pasado
Dado que Checkmk realiza continuamente la monitorización de todos los hosts y servicios a intervalos regulares, ofrece una base excepcional para la evaluación posterior de su disponibilidad. Y no solo eso: también permite calcular durante qué porcentaje de un intervalo de tiempo determinado un objeto se encontraba en uno o varios estados específicos, con qué frecuencia se produjo ese estado, la duración de su interrupción más larga y mucho más.
Cada cálculo se basa en una selección de objetos y un intervalo de tiempo específico en el pasado. A continuación, Checkmk reconstruye, dentro de este intervalo de tiempo, una secuencia cronológica de los estados de todos los objetos seleccionados. Por cada estado, se suman los tiempos y se muestran en una tabla. Esta tabla puede, por ejemplo, mostrar que un servicio concreto experimentó estados del 99,95 % OK y del 0,005 % WARN durante el intervalo de tiempo definido.
Al realizar estos cálculos, Checkmk también tiene en cuenta correctamente factores como los tiempos de mantenimiento programados, los tiempos de mantenimiento de servicio, los intervalos de tiempo no monitorizados y otros factores especiales, permite resumir los estados e ignorar las «breves interrupciones». También hay disponibles numerosas opciones de personalización. También es posible disponer de Agregaciones BI.
1.2. Estados posibles
Al incluir tiempos de mantenimiento programados y estados especiales similares, en teoría hay un gran número de combinaciones posibles de estados, por ejemplo: CRIT + In Planned Maintenance + In Service Time + Inestable. Como la mayoría de estas combinaciones no son muy útiles, Checkmk las reduce a un número reducido y, al hacerlo, sigue un principio de prioridades. Dado que en el ejemplo anterior el servicio se encontraba en un tiempo de mantenimiento programado, simplemente se aplica el estado «in scheduled downtime», y se ignora el estado real. Esto reduce la lista de estados posibles a lo siguiente:

Este gráfico muestra el orden en el que se priorizan los estados. Más adelante mostraremos cómo se pueden ignorar o combinar algunos estados. Aquí están los estados de nuevo, en detalle:
| Estado | Abreviatura | Descripción |
|---|---|---|
unmonitored |
N/A |
Intervalos de tiempo durante los cuales el objeto no estaba siendo supervisado. Hay dos posibles razones para esto: el objeto no estaba en la configuración de la monitorización, o la monitorización en sí no se estaba ejecutando durante el intervalo de tiempo especificado. |
out of service period |
El objeto estaba fuera de su periodo de servicio |
|
in scheduled downtime |
Downtime |
El objeto se encontraba en un periodo de tiempo de mantenimiento programado |
on down host |
H.Down |
Este estado solo está disponible para servicios —cuando el host del servicio está (DOWN). No es posible realizar la monitorización del servicio en este momento. Para la mayoría de los servicios, esto tiene el mismo significado que si el servicio estuviera inactivo —¡pero no para todos! Por ejemplo, el estado de una comprobación de File system es, sin duda, independiente de la accesibilidad del host. |
flapping |
Fases en las que el estado es « |
|
UP DOWN UNREACH |
Estado de monitorización para hosts |
|
OK WARN CRIT UNKNOWN |
Estados de monitorización para servicios y Agregaciones BI |
2. Consulta de disponibilidad
2.1. De la vista de tabla al análisis
Generar un análisis de disponibilidad es muy sencillo. Primero, recupera cualquier vista de hosts, servicios o Agregaciones BI. Allí encontrarás en el menú «Services» o «Hosts» el elemento «Availability», que te lleva directamente al cálculo de la disponibilidad de los objetos seleccionados. Los datos se mostrarán en forma de tabla:

La tabla muestra los mismos objetos que se veían en la vista de tabla anterior. En cada columna se muestra la proporción del intervalo de tiempo solicitado en la que un objeto se encontraba en el estado que se está consultando. El valor se da en forma de porcentaje, por defecto con dos decimales, lo cual también puedes personalizar fácilmente.
La consulta del intervalo de tiempo se puede personalizar con el elemento de menú «Availability > Change display options > Time Range». Más sobre esto más adelante…
Tienes la opción de recibir la tabla en formato PDF (solo ediciones comerciales). También es posible descargar los datos en formato CSV: (Export as CSV). En el ejemplo anterior, quedaría así:
Host;Service;OK;WARN;CRIT;UNKNOWN;Flapping;H.Down;Downtime;N/A
mail.mydomain.test;Check_MK;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Check_MK Discovery;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Filesystem /;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Filesystem /var/spool;0.00%;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;HTTP https://mail.mydomain.test/;99.85%;0.15%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;HTTPS https://mail.mydomain.test/;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;MTA performance check;99.23%;0.30%;0.46%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Postfix Queue;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Postfix status;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Uptime;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
Summary;;89.91%;10.05%;0.05%;0.00%;0.00%;0.00%;0.00%;0.00%Con la ayuda de un usuario de automatización, que puede
autentificarse a través de la URL, también puedes recuperar datos —por ejemplo, con
wgeto curl— y procesarlos automáticamente bajo
el control de un script.
2.2. Visualización de la línea de tiempo
El símbolo
se encuentra en cada fila de la tabla.
Este botón te lleva a una visualización de la línea de tiempo del objeto en cuestión,
en la que se detallan con precisión los cambios de estado que se produjeron en
el intervalo de tiempo especificado (abreviado aquí):

Algunos consejos útiles:
Pasa el puntero del ratón por encima de un símbolo de la línea de tiempo en la línea de un objeto en la visualización; esto se resaltará en la tabla.
Además, en la línea de tiempo, puedes usar los elementos de menú «Availability > Change display options» o «Availability > Change computation options» para personalizar las opciones de visualización y evaluación.
Con el símbolo «
» puedes añadir un «Annotation» al item seleccionado. Aquí también puedes registrar retrospectivamente tiempos de mantenimiento (más información al respecto en la siguiente sección).En la disponibilidad de las agregaciones BI, con el símbolo de la varita mágica «
» puedes viajar en el tiempo hasta el estado del agregado para el intervalo de tiempo en cuestión. Más información sobre esto a continuación.Usando el elemento de menú «Availability > Timeline» en la vista de tabla principal, puedes ver las líneas de tiempo de todos los objetos seleccionados en una sola página larga.
2.3. Anotaciones y tiempos de mantenimiento posteriores
Como acabamos de mencionar, con el símbolo «
», las líneas de tiempo
ofrecen la posibilidad de añadir una anotación a un periodo de tiempo.
Se proporciona un formulario prellenado («Propiedades») en el que se pueden introducir comentarios:

Con esto puedes definir y ampliar el intervalo de tiempo con diferentes valores según sea necesario. Esto resulta práctico, por ejemplo, si deseas anotar un intervalo de tiempo más amplio que haya experimentado cambios de estado repetidos. Si no introduces ningún servicio, la anotación se creará para el host. Esta se relacionará automáticamente con todos los servicios del host.
En todas las vistas de tabla de disponibilidad, todas las anotaciones aplicables al intervalo de tiempo y a los objetos que se muestran serán visibles automáticamente.
Pero las anotaciones tienen una función adicional. Los tiempos de mantenimiento se pueden introducir retrospectivamente —o, por el contrario, eliminar. El análisis de disponibilidad tiene en cuenta estas correcciones exactamente de la misma manera que con los tiempos de mantenimiento «normales». Hay al menos dos justificaciones legítimas para esto:
Durante las operaciones puede ocurrir que los tiempos de mantenimiento planificados se introduzcan incorrectamente. Esto, por supuesto, afecta a la precisión de las estadísticas de disponibilidad. Mediante la introducción retrospectiva de estos tiempos, se puede rectificar así la elaboración de los informes.
Hay usuarios que abusan de los tiempos de mantenimiento durante una interrupción espontánea para suprimir una notificación. Esto, en la práctica, distorsiona el análisis posterior. Esto se puede corregir a posteriori eliminando el tiempo de mantenimiento erróneo.
Para reclasificar los tiempos de mantenimiento, solo tienes que marcar la checkbox «Reclassify downtime of this period»:

2.4. Visualización del historial de monitorización
En la tabla de disponibilidad, junto al símbolo de la línea de tiempo, se encuentra otro
símbolo: «
». Esto te lleva a una
vista del historial de monitorización con un filtro preconfigurado para el
objeto relevante y el intervalo de tiempo de la consulta. Aquí no solo verás el evento
en el que se basa el análisis de disponibilidad (los cambios de estado),
sino también las notificaciones asociadas y eventos similares:

Lo que no se ve aquí es el estado del objeto al inicio del periodo de tiempo de la consulta. El cálculo de disponibilidad se remonta aún más atrás en el tiempo para determinar de forma fiable el estado inicial.
3. Opciones de cálculo

Además del cálculo en sí, la visualización de la disponibilidad también se puede controlar mediante numerosas opciones. Las encontrarás en los elementos de menú «Availability > Change display options» y «Availability > Change computation options», respectivamente.
Una vez modificadas las opciones y confirmadas con Apply, se volverá a calcular la disponibilidad y se mostrará. Todas las opciones modificadas se guardarán en el perfil del usuario como predeterminadas, de modo que las consultas posteriores utilizarán la misma configuración.
Al mismo tiempo, las opciones se codificarán en la URL de la página actual. Si ahora guardas un marcador en la página —por ejemplo, utilizando el práctico elemento Bookmarks— las opciones formarán parte de este, y cuando más tarde hagas clic en él, se generará exactamente de la misma manera.
3.1. Elección del intervalo de tiempo

La primera y más importante opción en cualquier cálculo de disponibilidad es, por supuesto,
el intervalo de tiempo que se va a examinar. En Date range se puede especificar un intervalo de tiempo con fechas de inicio
y fin precisas.
Se incluirá el último día —hasta las 24:00—.

Mucho más prácticas son las especificaciones de tiempo relativas, como, por ejemplo, « Last week». El intervalo de tiempo exacto que se mostrará —intencionadamente— depende del momento en el que se realice el cálculo. Nota: aquí «una semana» siempre se refiere a un intervalo desde el lunes a las 00:00 hasta el domingo a las 24:00.
3.2. Opciones que afectan a las visualizaciones
Hay muchas opciones que influyen en el formato de las visualizaciones, mientras que otras, a su vez, influyen en los métodos de cálculo. Para empezar, echemos un vistazo a las visualizaciones:
Ocultar líneas con un 100 % de disponibilidad

La opción «Only show objects with outages» limita la visualización a aquellos objetos
que realmente han sufrido interrupciones, es decir, momentos en los que el estado no era «OK» o «UP».
Esto resulta útil cuando hay un gran número de servicios, de los cuales solo interesan
los pocos que realmente tienen problemas.
Opciones de etiquetado

La opción «Labelling options» permite activar o desactivar varios campos de etiqueta. Algunas de las opciones son especialmente interesantes para la generación de informes. Si, por ejemplo, se va a generar un informe para un único host, entonces la columna del nombre del host no es realmente necesaria.
Los «alternative display names» para los servicios se pueden definir mediante una regla y, al utilizarlos, por ejemplo, se puede asignar a las visualizaciones de servicios importantes un nombre que sea explícito y significativo para el lector del informe.
Uso de colores al mostrar SLA con umbrales

Con Visual levels puedes resaltar los objetos que no han mantenido una disponibilidad específica dentro del intervalo de tiempo consultado. Esto solo se aplica a la columna del estado «OK». Normalmente, esta siempre es verde. Si no se alcanza el umbral definido, el color de esta celda cambiará de verde a amarillo o a rojo. Esto podría describirse como una vista general muy sencilla de los SLA.
Visualización del número y la duración de las interrupciones individuales

La opción «Outage statistics» proporciona columnas de información adicional en la tabla de disponibilidad. En la captura de pantalla siguiente se puede ver que la información adicional para «max. duration» y «count» se ha activado para la columna de estado «Crit/Down». Esto significa que, para las interrupciones con un estado «CRIT» / «DOWN», se muestran el número de incidencias, así como la duración de la incidencia más larga, respectivamente.

En la tabla se crearán estas columnas adicionales.
Visualización de especificaciones de tiempo

No siempre es recomendable especificar las (in)disponibilidades como porcentajes. La opción «Format time ranges» permite switchar a una visualización que presenta los intervalos de tiempo como valores absolutos. Con esto, la duración total de las interrupciones se puede ver con exactitud al minuto. La visualización incluso muestra segundos, pero ten en cuenta que esto solo tiene sentido si la monitorización se realiza a intervalos de un segundo, y no como es habitual con una check por minuto. Del mismo modo, se puede definir la precisión de la especificación (el número de decimales en los valores porcentuales).

El formato de las marcas de tiempo se aplica a la configuración de Timeline. El cambio a Unix-Epochs (segundos transcurridos desde el 1 de enero de 1970) simplifica la correlación de los intervalos de tiempo con las ubicaciones correspondientes en los datos de registro del historial de monitorización.
Personalización de la línea de resumen

Con esto no solo puedes activar o desactivar el resumen de la última línea de la tabla, sino que también puedes elegir entre una suma total y una media. En las columnas que contienen un valor porcentual, si utilizas la configuración «Display total sum», se mostrará una media, ya que sumar valores porcentuales no tiene mucho sentido.
Mostrar la pequeña línea de tiempo

Esta opción añade una versión en miniatura de la línea de tiempo de disponibilidad directamente a la tabla de resultados. Se corresponde con la barra gráfica de la línea de tiempo detallada, pero es más pequeña y está integrada directamente en la tabla. Además, está a escala, por lo que se pueden comparar varios objetos en la misma tabla.
Agrupación por host, grupo del host o grupo de servicio

Independientemente de la pantalla desde la que vengas, la disponibilidad siempre muestra todos los objetos en una tabla común. Con esta opción puedes seleccionar una agrupación por host, por grupo del host o por grupo de servicio; cada grupo tendrá entonces su propia línea de Summary.
Ten en cuenta que, con una agrupación por grupo de servicio, los servicios pueden aparecer varias veces, ya que los servicios pueden asignarse a varios grupos a la vez.
Mostrar solo disponibilidad

La opción «Availability» garantiza que solo se muestre la columna de los estados «OK» o «UP», con el título «Avail.». De esta forma, solo se mostrará la disponibilidad de «actual». Esta opción se puede combinar con las opciones adicionales que se explican a continuación, con otros estados (por ejemplo, «WARN»), y también puede incluir el estado «OK» y, por lo tanto, considerarse como disponible.
3.3. Agrupación de estados
Los estados descritos en la introducción se pueden personalizar y condensar de muchas maneras. De este modo, se pueden generar de forma flexible formas de evaluación muy diferentes. Hay varias opciones para ello.
Manejo de los estados WARN, UNKNOWN y Host DOWN

La opción «Service status grouping» ofrece la posibilidad de mostrar varios «estados intermedios». Una situación habitual es forzar que «WARN» se trate como «OK». Esto puede resultar muy útil si te interesa la disponibilidad real de un servicio. A menudo, «WARN» no significa que exista aún un problema real, pero podría surgir pronto. Por lo tanto, visto de esta manera, «WARN» debe considerarse como disponible. Con servicios de red como un servidor HTTP, sin duda tiene sentido tratar los momentos en los que el host está «DOWN» de la misma manera que cuando el servicio está «CRIT».
Los estados que se omiten debido a la reagrupación, por supuesto, también faltarán en la tabla de resultados, que tendrá menos columnas.

La opción «Host status grouping» es muy similar, pero se refiere a la disponibilidad de los hosts. El estado «UNREACH» significa que un host, debido a problemas de red, no puede ser objeto de monitorización por Checkmk. En tales situaciones, a efectos de los cálculos de disponibilidad, puedes decidir si prefieres tratar el estado «UNREACH» como «UP» o «DOWN». Por defecto, se trata «UNREACH» como un estado propio.
Manejar periodos de tiempo sin monitorizar e inestables

En la opción «Status classification
» se realizarán resúmenes adicionales.
La casilla «Consider periods of flapping states
» está activada por
defecto: con ella, las fases de cambios frecuentes de estado constituyen su propio
estado: «
» — «inestable
». La idea detrás de esto es
que, aunque se pueda decir que en esos momentos el servicio afectado siempre
vuelve al estado «OK
», debido a las frecuentes interrupciones el servicio es
prácticamente inutilizable.
Al desactivar esta opción, el concepto de «inestable» quedará completamente
ignorado, y volverá a aparecer el estado real correspondiente —y la columnaflapping
también se eliminará de la tabla.
Eliminar la opción «Consider times where the host is down» funciona de manera similar. Se desactiva el concepto de «Host down». Esta opción solo tiene sentido para la disponibilidad de los servicios. En las fases en las que el host no está «UP», el estado real del servicio se tomará como base para la disponibilidad —o, más precisamente, el estado de la última check antes de que el host dejara de estar disponible. Esto puede ser útil con servicios para los que su accesibilidad a través de la red no es relevante.
La opción «Include unmonitored time» (Incluir servicios no disponibles) también es similar. Supongamos que se va a realizar un análisis para febrero y que un servicio concreto solo lleva en la monitorización desde el 15 de febrero. ¿Tiene entonces este servicio una disponibilidad de solo el 50 %? Con la configuración predeterminada —opción activa—, así será efectivamente. El 50 % que falta no se considerará una interrupción, sino que se sumará en su propia columna bajo el título «N/A». Sin la opción, corresponderá al 100 % del tiempo desde el 15 hasta el 28 de febrero. Sin embargo, esto significa que una interrupción de una hora en este servicio se reflejará como el doble del porcentaje de un servicio que ha sido objeto de monitorización durante todo el mes.
Manejo de los tiempos de mantenimiento programados

Con la opción «Scheduled Downtimes» puedes especificar cómo afectan los tiempos de mantenimiento programados al análisis de disponibilidad:
Honor scheduled downtimes es la opción predeterminada. Aquí, los tiempos de mantenimiento se tratarán como un estado propio y se resumirán en su propia columna. Con «Treat phases of UP/OK as non-downtime» puedes restar los tiempos durante los cuales, a pesar del tiempo de mantenimiento, el servicio estOKe.
Ignore scheduled downtimes se trata como si no se hubiera introducido ningún tiempo de mantenimiento. Las interrupciones son interrupciones, y punto. Por supuesto, solo si realmente se produjo una interrupción.
Exclude scheduled downtimes significa que los tiempos de mantenimiento programados simplemente se excluyen del periodo de tiempo que se está analizando. El porcentaje de disponibilidad corresponde entonces a los tiempos fuera de los tiempos de mantenimiento programados.
Agrupar fases iguales

Al pasar de un estado a otro (por ejemplo, de «WARN» a «OK»), puede ocurrir que secciones consecutivas de la línea de tiempo de un objeto tengan el mismo estado. Normalmente, esas secciones se agruparán en una sola. Esto suele ser bueno y claro, pero afecta a la visualización de los detalles en la línea de tiempo y, posiblemente, también al recuento de eventos con la opción «Outage statistics». Por lo tanto, puedes desactivar el agrupamiento con la opción Do not merge consecutive phases with equal state.
3.4. Ignorar interrupciones breves
A veces, la monitorización genera mensajes de problemas momentáneos, pero en condiciones normales el objeto ya está eOKe cuando se ejecuta la siguiente check (al cabo de un minuto)—y no se ha encontrado ninguna forma, mediante el ajuste de umbrales o medidas similares, de controlar adecuadamente estos casos. Una solución habitual es configurar el Maximum number of check attempts entre 1 y 3 para permitir más fallos antes de que se active una notificación. Así se ha desarrollado el concepto de «Soft states» —es decir, los estados WARN, CRIT o UNKNOWN— siempre que no se hayan «agotado» todos los intentos permitidos.
De vez en cuando, los usuarios que usan esta función nos preguntan por qué el módulo de disponibilidad de Checkmk no tiene una función para calcular usando solo Hard states. La razón es esta: ¡hay una solución mejor! Se podrían usar los hard states como base…
… de modo que las interrupciones reales, debidas al fracaso del primer y segundo intento de check, se evalúen como dos minutos demasiado cortas.
… y no se podría reajustar retrospectivamente el comportamiento para las interrupciones breves.

La opción «Short time Intervals» es mucho más flexible y, al mismo tiempo, muy sencilla. Solo tienes que definir un periodo de tiempo que debe superarse antes de que se evalúen los estados.
Supongamos que el valor de tiempo se ha fijado en 2,5 minutos (150 segundos). Si un servicio ha estado continuamente en estado «OK», luego en «CRIT» durante 2 minutos, y luego vuelve a «OK», el breve intervalo de tiempo «CRIT» simplemente se evaluará como «OK». ¡Por cierto, la situación opuesta también funciona! Un breve «OK» dentro de una larga fase «WARN» se evaluará igualmente como «WARN».
En términos generales, los intervalos cortos en los que antes y después prevalece el mismo estado recibirán ese mismo estado. Para una secuencia deOK , seguida de un intervalo de 2 minutosWARN y, a continuación,CRIT , elWARN persistirá, ¡incluso si su duración fue menor que el tiempo definido!
Ten en cuenta al definir el tiempo que, en Checkmk, el intervalo de comprobación estándar es de un minuto. Por lo tanto, cada estado tiene una duración de múltiplos de aproximadamente un minuto. Como los tiempos de respuesta reales del agente varían ligeramente, esto puede ser fácilmente 61 o 59 segundos. Por lo tanto, es más seguro no introducir minutos exactos como valor, sino incluir un margen de seguridad —de ahí el ejemplo de 2,5 minutos.
3.5. Efecto de los periodos de tiempo
Una función importante de los cálculos de disponibilidad en las ediciones comerciales de Checkmk es que estos cálculos pueden hacerse en función de periodos de tiempo. Con esto se pueden definir horarios para cada host o servicio individual. En esos horarios se espera que el host/servicio esté disponible y se utilizará entonces el estado para los cálculos. Por lo tanto, cada objeto tiene el atributo «Service period». El procedimiento es el siguiente:
Define un periodo de tiempo para los horarios de servicio.
Asigna estos a los objetos con los conjuntos de reglas «Host & Service parameters > Monitoring configuration > Service period for hosts» o «… for services», respectivamente.
Activa los cambios.
Usa la opción de disponibilidad «Service time» para controlar el comportamiento:

Aquí hay tres posibilidades sencillas. La configuración predeterminada de « Base report only on service times» oculta los tiempos fuera de los horarios de servicio definidos. Estos tiempos ocultos no cuentan para el 100 %. Solo se tendrán en cuenta los intervalos de tiempo dentro de los horarios de servicio. En la visualización de la línea de tiempo, los tiempos restantes aparecerán «en gris».
Base report only on non-service times hace lo contrario, y, en efecto, calcula la visualización inversa: ¿qué tal fue la disponibilidad fuera del horario de servicio?
La tercera opción, «Include both service and non-service times», desactiva por completo el concepto de horarios de servicio y muestra los cálculos para todos los tiempos desde el lunes a las 00:00 hasta el domingo a las 24:00.
Por cierto: si un host no está en el horario de servicio, para Checkmk eso no significa automáticamente que esto también se aplique a los servicios del host. Los servicios siempre requieren su propia regla en Service period for services.
El periodo de notificación

Por cierto, hay otra opción relacionada: Notification period. Aquí también se puede recurrir al periodo de notificación para la evaluación. En realidad, esto se concibió únicamente para que en determinados momentos no se generaran notificaciones por problemas, y no cubre necesariamente el horario de servicio. Esta opción se introdujo en el pasado, cuando el software aún no funcionaba con un horario de servicio, y hoy en día solo se ha mantenido por motivos de compatibilidad. Es mejor no usarla.
3.6. Limitar el tiempo de cálculo
Al calcular la disponibilidad, hay que volver a abrir todo el historial del objeto seleccionado.
Más abajo puedes ver cómo funciona esto en detalle. Especialmente en
Checkmk Community, el análisis
puede tardar un rato, ya que su core no tiene caché para los datos necesarios y hay que
buscar secuencialmente en los datos de registro basados en texto.
Para que una consulta excesivamente compleja —que posiblemente se haya iniciado sin querer— no bloquee un proceso de Apache, consuma CPU y, por lo tanto, se «cuelgue», hay dos opciones para limitar la duración del cálculo. Ambas están activadas por defecto:

La opción «Query time limit» limita la duración de la consulta subyacente al core de monitorización a un tiempo especificado. Está predefinida en treinta segundos. Si se supera este tiempo, el análisis se abortará y se mostrará un error. Si estás seguro de que el análisis puede ejecutarse durante más tiempo, simplemente aumenta el timeout manualmente.

La opción «Limit processed data» protege contra cálculos con muchos objetos. Aquí se aplicará un límite que funciona de forma análoga al de las vistas de tabla. Si la consulta al core de monitorización genera más de 5000 periodos de tiempo, el cálculo se abortará con una advertencia. La limitación se habrá procesado previamente en el core, donde se recopilan los datos.
4. Disponibilidad en Business Intelligence
4.1. El principio básico
Una potente característica del cálculo de disponibilidad de Checkmk es la posibilidad de calcular la disponibilidad a partir de Agregaciones BI. El gran atractivo aquí es que, para ello, Checkmk reconstruye retroactivamente el estado exacto de los respectivos agregados en un momento concreto utilizando los protocolos de los estados de los hosts y servicios individuales.
¿Por qué tanto tiempo y esfuerzo? ¿Por qué no simplemente consultar la Agregación BI con un check activo y luego mostrar su disponibilidad? Bueno, el esfuerzo tiene bastantes ventajas para el usuario:
La estructura de las agregaciones BI se puede adaptar a posteriori, y entonces se puede volver a calcular la disponibilidad.
El cálculo es más preciso, ya que al no utilizar un check activo no se genera una imprecisión de +/- un minuto.
Hay disponible una excelente función de análisis, con la que se puede investigar retrospectivamente la causa exacta de una interrupción.
Y lo que es más importante, no hay que crear un check adicional.
4.2. Consulta de disponibilidad
La recuperación de la vista de disponibilidad es inicialmente análoga a la de los hosts y los servicios.
Selecciona una vista con una o más Agregaciones BI y selecciona el elemento de menú «BI Aggregations > Availability».
Aquí también hay un segundo método: cada Agregación BI tiene una ruta directa
a su disponibilidad mediante el símbolo «
»:
En sí mismo, el cálculo es inicialmente similar al de los servicios, pero sin las columnas «Host down» y «flapping», ya que estos estados no existen para BI:

4.3. Viaje en el tiempo
La gran diferencia está en la vista de tabla de la línea de tiempo de «
».
El siguiente ejemplo muestra un agregado en nuestro servidor de demostración, que estuvo «CRIT»
durante un intervalo de tiempo muy breve de un segundo (este sería un buen ejemplo para el
uso de la opción «Short time intervals»).

¿Quieres saber cuál fue la causa de la interrupción? Basta con un simple clic en
en la varita mágica. Esto permite un viaje
en el tiempo hasta el momento exacto en que se produjo la interrupción,
y abre una vista de la Agregación BI en ese momento —en la siguiente imagen,
ya abierta en la ubicación correcta:

5. Disponibilidad en los informes
Las vistas de disponibilidad se pueden integrar en los informes. La forma más sencilla es a través de «Export > Add to report» en la barra de menú. Selecciona el informe al que quieres añadir la vista y confirma con «Add to».

El elemento de informe «Availability table» inserta un análisis de disponibilidad en el informe. Todas las opciones mencionadas anteriormente se pueden encontrar como parámetros directamente en el elemento, aunque con una forma gráfica ligeramente diferente:

La última opción es especial:

Aquí puedes especificar qué visualización se debe añadir al informe:
La tabla de disponibilidad
La visualización gráfica de la línea de tiempo
La línea de tiempo en detalle con los periodos de tiempo individuales
A diferencia de las vistas de tabla normales, aquí puedes integrar simultáneamente tablas y líneas de tiempo en los informes.
Una segunda característica es la especificación del periodo de tiempo de evaluación. Esta opción no aparece aquí, ya que el informe la determina automáticamente.
La selección de objetos, como en todos los elementos del informe, se toma del informe o se predefine directamente en el elemento.
6. Aspectos técnicos
6.1. Cómo funcionan los cálculos
Para calcular la disponibilidad, Checkmk accede a los registros del historial de monitorización archivados y, para ello, se basa en los cambios de estado. Si, por ejemplo, a las 17:14 del 20/10/2021 un servicio cambia su estado a «CRIT», y luego, a las 17:24, vuelve a cambiar a «OK», entonces sabes que durante ese periodo de tiempo de 10 minutos el servicio estuvo en estado «CRIT».
Estos cambios de estado se registran en el registro de monitorización, tienen el tipo de alerta
HOST ALERTo SERVICE ALERT, y tienen este aspecto, por ejemplo:
[1634742874] SERVICE ALERT: mail.mydomain.com;Filesystem /var/spool;CRITICAL;HARD;1;CRIT - 95.9% used (206.96 of 215.81 GB), (warn/crit at 90.00/95.00%), trend: 0.00 B / 24 hoursSiempre hay un archivo de registro actual que incluye entradas de la actividad más reciente hasta el momento presente, así como un directorio con un archivo de los periodos anteriores. La ubicación de estos archivos varía, dependiendo del core de monitorización que se utilice:
| Core | Archivo actual | Archivos antiguos |
|---|---|---|
|
|
|
|
|
La interfaz de usuario no accede a estos archivos directamente, sino que los consulta mediante una consulta Livestatus emitida desde el core de monitorización. Entre otros factores, esto es importante porque en una monitorización distribuida los archivos de historial no se almacenan en el mismo sistema que la GUI.
La consulta Livestatus utiliza la tabla statehist. A diferencia de
la tabla log —que proporciona un acceso «desnudo» al historial—, aquí se utiliza la tabla statehist porque ya ha realizado los
primeros pasos de cálculo, que llevan mucho tiempo. Entre otras cosas, se encarga de
revisar el historial para determinar el estado inicial y de
calcular los periodos de tiempo con el mismo estado, con sus inicios,
duraciones y finales.
El procedimiento de condensación de los estados lo lleva a cabo el Módulo de Disponibilidad en la Vista general del usuario, tal y como se describe al principio de este artículo.
6.2. La caché de disponibilidad en CMC
Cómo funciona la caché
Para las consultas que se remontan muy atrás en el tiempo, hay que procesar muchos
archivos de registro. Obviamente, esto afecta negativamente a
la duración del cálculo. Por eso, en el Checkmk
Micro Core hay una caché muy eficiente del historial de monitorización,
en la que, desde el principio, toda la información importante sobre los cambios de estado de los objetos
ya se ha determinado a partir de los archivos de registro almacenados en la RAM, y que se
actualiza continuamente durante la monitorización activa.
La consecuencia de esto es que todas las consultas de disponibilidad pueden
responderse directamente y de forma muy eficiente desde la RAM, por lo que no se requiere ningún
acceso adicional.
El análisis de los archivos de registro es muy rápido y, con discos duros lo suficientemente rápidos, se puede alcanzar una velocidad de procesamiento de hasta 80 MB/s. Para que la creación de la caché no retrase el inicio de la monitorización, esto se realiza de forma asíncrona —de hecho, desde el presente hacia el pasado. Se notará un breve retraso si, justo después de iniciar el site de Checkmk, se lanza inmediatamente una consulta de disponibilidad que abarca un intervalo de tiempo largo. En tal situación, es posible que la caché aún no se remonte lo suficiente al pasado y que la GUI necesite unos instantes para procesarlo.
¡Con un «Activate changes», la caché se conserva! Solo con un (re)inicio real de Checkmk será necesario volver a generarla —por ejemplo, tras reiniciar el servidor o una actualización de Checkmk.
Estadísticas de la caché
Si tienes curiosidad por saber cuánto tiempo puede tardar la generación de una caché,
puedes encontrar una estadística en el archivo de registro de ~/var/log/cmc.log. Aquí tienes un
ejemplo de un sistema de monitorización más pequeño:

Ajuste de la caché
Para mantener bajo control los requisitos de almacenamiento de la caché, esta está limitada a un horizonte de hasta 730 días en el pasado. Este límite es fijo, por lo que las consultas que se remontan más atrás en el tiempo no solo son más lentas, sino que son imposibles. Esto se puede personalizar fácilmente mediante la configuración global Global Settings > Monitoring Core > In-memory cache for availability data:

Además del horizonte para el cálculo, hay una segunda configuración interesante: Ignore core restarts shorter than…. Un nuevo inicio del core (por ejemplo, para una actualización o un reinicio del servidor) genera periodos de tiempo que se contabilizan como unmonitored. Las interrupciones de hasta 30 segundos se ignorarán simplemente. Este tiempo se puede aumentar y los periodos más largos también se pueden suprimir fácilmente. El cálculo de disponibilidad asumirá entonces que todos los hosts y servicios han mantenido sus respectivos últimos estados comunicados durante todo el tiempo.
7. Archivos y directorios
| Ruta del archivo | Función |
|---|---|
|
Archivo de registro actual del historial de monitorización en el CMC |
|
Directorio con los archivos de registro más antiguos del historial |
|
El archivo de registro del CMC, en el que se pueden consultar las estadísticas de la caché de disponibilidad |
|
El archivo de registro actual del historial de monitorización de Nagios |
|
Directorio con los archivos de registro más antiguos de Nagios |
|
Aquí se almacenan las anotaciones y los tiempos de mantenimiento programados modificados retrospectivamente para las interrupciones del servicio. El archivo está en formato Python y se puede editar manualmente. |
