English English French French Spanish Spanish German German
Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

Introducción a Prometheus y Grafana

grafana
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Prometheus es un sistema de monitoreo de código abierto basado en métricas. Recopila datos de servicios y hosts mediante el envío de solicitudes HTTP en puntos finales de métricas. Luego, almacena los resultados en una base de datos de series de tiempo y los pone a disposición para análisis y alertas.

Why monitor?

  • Habilita alertas cuando algo sale mal, preferiblemente antes de que salga mal. Para que alguien pueda echarle un vistazo.
  • Proporciona información para permitir el análisis, la depuración y la resolución del problema.
  • Le permite ver tendencias / cambios a lo largo del tiempo. Por ejemplo, cuántas sesiones activas en un momento dado. Esto ayuda en las decisiones de diseño y la planificación de la capacidad.

El monitoreo generalmente se relaciona con eventos. Un evento podría incluir recibir una solicitud HTTP, enviar una respuesta, leer desde el disco, un inicio de sesión de usuario. El monitoreo de un sistema podría incluir elaboración de perfiles, registro, seguimiento, métricas, alertas y visualización.

Blackbox vs. Whitebox monitoring

El seguimiento se divide en dos categorías principales:

Monitoreo de caja negra

En el monitoreo de Blackbox, el monitoreo se realiza a nivel de la aplicación o del host, ya que se observan desde el exterior. Esto puede resultar bastante limitante.

Monitoreo de caja blanca

El monitoreo de caja blanca significa monitorear las partes internas de un servicio. Expondría datos sobre el estado y el rendimiento de los componentes internos.

Prometeo

The four golden signals

Según Google, si solo puede medir cuatro métricas de su sistema de cara al usuario, concéntrese en las siguientes cuatro, llamadas las Cuatro señales de oro:

#1. Estado latente

El tiempo que lleva atender una solicitud: exitosa o fallida. Es importante rastrear no solo las solicitudes exitosas sino también las fallidas.

#2. Tráfico

Una medida de cuánta demanda se está aplicando a su sistema. Para un servicio web, generalmente son solicitudes HTTP por segundo.

#3. Errores

La tasa de solicitudes que fallan.

#4. Saturación

Qué tan completo es su servicio. El aumento de la latencia es a menudo un indicador importante de saturación. Muchos sistemas degradan su rendimiento mucho antes de alcanzar el 100% de utilización.

Prometheus metrics types

Las métricas de Prometheus son de cuatro tipos principales:

#1. Para contrarrestar

El valor de un contador siempre aumentará. Nunca puede disminuir, pero se puede restablecer a cero. Entonces, si falla un raspado, solo significa un punto de datos perdido. El aumento acumulativo estaría disponible en la próxima lectura. Ejemplos:

  • Número total de solicitudes HTTP recibidas
  • El número de excepciones.

#2. Calibre

Un indicador es una instantánea en un momento dado. Puede aumentar o disminuir. Si falla la obtención de datos, pierde una muestra; la siguiente recuperación puede mostrar un valor diferente: ejemplos de espacio en disco, uso de memoria.

#3. Histograma

Un histograma toma muestras de las observaciones y las cuenta en depósitos configurables. Se utilizan para cosas como la duración de las solicitudes o el tamaño de las respuestas. Por ejemplo, puede medir la duración de la solicitud para una solicitud HTTP específica. El histograma tendrá un conjunto de cubos, digamos 1 ms, 10 ms y 25 ms. En lugar de almacenar cada duración de cada solicitud, Prometheus almacenará la frecuencia de las solicitudes que caen en un depósito en particular.

#4. Resumen

Al igual que en las observaciones de muestras de histograma, normalmente se solicitan duraciones o tamaños de respuesta. Proporcionará un recuento total de observaciones y una suma de todos los valores observados, lo que le permitirá calcular el promedio de los valores observados. Por ejemplo, en un minuto, tuvo tres solicitudes que tomaron 2,3,4 segundos. La suma sería 9 y el recuento sería 3. La latencia sería de 3 segundos.

Components of Prometheus ecosystem

arquitectura prometeo

El servidor Prometheus

Recopila métricas, las almacena y las pone a disposición para consultas, envía alertas basadas en las métricas recopiladas.

Raspado

Prometeo es un sistema basado en extracción. Para obtener métricas, Prometheus envía una solicitud HTTP llamada scrape. Envía raspaduras a los objetivos según su configuración.

Cada objetivo (definido estáticamente o descubierto dinámicamente) se raspa en un intervalo regular (intervalo de raspado). Cada raspado lee el punto final HTTP / metrics para obtener el estado actual de las métricas del cliente y conserva los valores en la base de datos de series de tiempo de Prometheus.

Hay mas bases de datos de series de tiempo para monitorear soluciones que quizás desee explorar.

Bibliotecas de clientes

Para monitorear un servicio, necesita agregar instrumentación a su código. Hay bibliotecas cliente disponibles para todos los lenguajes y tiempos de ejecución populares. Usando estas bibliotecas, una vez que agregas algunas líneas de código, tu código puede comenzar a emitir métricas. A esto se le llama instrumentación directa. Estas bibliotecas le permiten definir métricas internas y también exponerlas a través de un punto final HTTP. Cuando Prometheus raspa el punto final HTTP de métricas, la biblioteca cliente envía las métricas al servidor.

Prometheus para Go, Java, Python y Ruby ofrece bibliotecas cliente oficiales. Prometheus tiene un ecosistema abierto. También hay bibliotecas cliente creadas por la comunidad disponibles para C, PHP, Node.js, C # / .NET y muchos otros.

Exportadores

Muchas aplicaciones exponen métricas en formato que no es de Prometheus. Para estos y para las aplicaciones que no son de su propiedad o para las que no tiene acceso al código, no puede agregar instrumentación directamente. Por ejemplo, servidor MySQL, Kafka, JMX, HAProxy y NGINX. En estos escenarios, hace uso de exportadores.

Un exportador es una herramienta que implementa junto con la aplicación de la que desea obtener métricas. Un exportador actúa como un proxy entre la aplicación y Prometheus. Recibirá solicitudes del servidor Prometheus, recopilará datos de los registros de acceso, registros de errores de la aplicación, la transformará al formato correcto y finalmente regresará al servidor Prometheus.

Algunos de los exportadores populares son:

  • Ventanas - para métricas de servidor de Windows
  • Nodo - para métricas de servidor Linux
  • Caja negra - para métricas de rendimiento de sitios web y DNS
  • JMX - para métricas de aplicaciones basadas en Java

Una vez que las aplicaciones se han instrumentado, o los exportadores están en su lugar, debe decirle a Prometheus dónde están. Esto se puede hacer mediante configuración estática. En el caso de entornos dinámicos, esto no se puede hacer; por lo tanto, se utiliza el descubrimiento de servicios.

Alertando

La alerta con Prometheus consta de dos partes:

Las reglas de alerta envían alertas al administrador de alertas.

Alertmanager luego administra esas alertas. Envía notificaciones utilizando muchas integraciones listas para usar como correo electrónico, Slack, Hipchat y PagerDuty. Alertmanager también puede realizar silenciamiento o agregación para reducir el número de notificaciones.

Aquí está la guía para monitorear el servidor Linux usando Prometheus y Dashboard.

Visualizing with Dashboards

Prometheus tiene una serie de API que utilizan las consultas de PromQL para producir datos sin procesar para las visualizaciones.

Aunque Prometheus incluye un navegador de expresiones que se puede utilizar para consultas ad-hoc, la mejor herramienta disponible es Grafana. Grafana se integra completamente con Prometheus y puede producir una amplia variedad de paneles.

Deberá configurar Prometheus como fuente de datos para Grafana.

Puede agregar paneles mediante:

  • Importación de paneles creados por la comunidad
  • Crea tu propio
  • Usando un tablero predefinido.

Así es como se ve un panel de exportador de nodos predefinido:

exportador de nodo grafana

Grafana tiene un mundoPing módulo que le permite monitorear las métricas de desempeño del sitio y del DNS en todo el mundo.

Resumen

Prometheus tiene muy pocos requisitos. Puede ser bastante sencillo de ejecutar, ya que es un único binario con un archivo de configuración. Puede manejar miles de objetivos e ingerir millones de muestras por segundo. Prometheus está diseñado para rastrear el sistema general, la salud y el comportamiento del sistema.

Grafana es la mejor herramienta disponible para la visualización de métricas y se integra perfectamente con Prometeo.

Gracias a nuestros patrocinadores
Más lecturas excelentes sobre computación en la nube
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Trata Intruder