¿Cuáles son las mejores prácticas que se pueden aplicar al monitoreo del sistema?

Le sugiero que revise este artículo: Zen y el arte de la supervisión del sistema. Esencialmente, una buena supervisión del sistema se reduce a enmarcar sus posibles problemas y objetivos de la manera más clara y luego configurar un sistema que puede ser exitoso en base a eso.

Aquí es cómo se pueden establecer los objetivos en los términos más simples …

  1. Monitorear posibles cosas malas (antes de que sucedan)
  2. Monitorear las cosas malas reales ( cuando suceden)
  3. Monitorea las cosas buenas (y recibe alertas para cuando dejen de funcionar)
  4. Iterar.

Para lograr esto, debes tener las herramientas adecuadas:

  • Agregación de registros: necesita que todos sus datos más detallados se encuentren en un lugar accesible.
  • Representación gráfica / visualización: debe poder entender esos datos rápidamente
  • Alertas: debe poder configurar alertas flexibles con los umbrales adecuados.

Si lees el artículo al que estoy vinculado, también encontrarás información bastante detallada sobre el monitoreo de los datos correctos en cada capa crítica de tu pila. Esto, combinado con el enfoque anterior, debería llevarlo bastante lejos con un monitoreo efectivo del sistema.

> Desde su punto de vista, cuál es la configuración perfecta de Monitoreo del Sistema.

El que:

  1. Ni siquiera eres consciente de cuando todo está bien.
  2. No le molesta con alertas falsas y, de manera similar, no le alerta cuando hay un problema real
  3. Le permite acceder a todos los datos relevantes en un solo lugar: métricas específicas de la aplicación, métricas del sistema operativo, las métricas personalizadas de su propia aplicación, registros, errores / excepciones, así como métricas de negocios

Debe comenzar por monitorear las métricas de alto nivel orientadas al usuario / cliente y profundizar en el tiempo según sus necesidades. Observe su propia aplicación y descubra lo que quiere / necesita saber sobre su aplicación y su negocio. Tal vez necesitas saber cuando la gente se registra? ¿Quizás cuando dejen de ser clientes? Tal vez cuando invitan a amigos / colegas a tu aplicación? …

Creo que algunas de sus preguntas son demasiado detalladas, subjetivas, muy diferentes de una persona a otra y de una organización a otra para responderlas aquí. Espero que lo anterior sirva de orientación.

¿Qué hace tu sistema? ¿Tiene usuarios o clientes? Me concentraría en esos usuarios / clientes y me movería hacia abajo en la cadena. Esto significa monitoreo de la experiencia del usuario final, componente de la aplicación y monitoreo de la transacción y, finalmente, monitoreo del componente de la infraestructura. Dependiendo de su sistema y de cómo esté construido determinará la respuesta a sus preguntas. La forma en que supervisa y los datos que recopila para una aplicación web con un backend escrito en scala / Java usando un backend mongodb es diferente a una aplicación de terminal fuera del mainframe, o una aplicación de voz utilizada por IVR.

Monitoriza todo lo que puedas. Esto significa que tomas métricas y potencialmente generas gráficos.

Desea valor absoluto, tasa de cambio y aceleración de métricas.

Luego monitorear las aplicaciones instrumentadas. Alerta sobre lo que le importa al negocio.

A nadie le importa la carga del servidor, el alto uso de la CPU u otras métricas del sistema. Esos son síntomas, no problemas reales. Lo que importa es la capacidad de respuesta del usuario. Estado latente. Rendimiento a / desde el usuario. Impacto en las ventas.

Centraliza tus registros. Analizar. Pregunte a sus empresarios y desarrolladores qué es una métrica importante para ellos. ¿Qué métricas desearía que su CFO se despierte a las 4 am del sábado (o en Navidad o equivalente) para.