Uso de Vector y Honghu para crear una plataforma de observabilidad para aplicaciones de microservicios

1. Antecedentes

1.1 ¿Qué es una aplicación de microservicio?

Las aplicaciones de microservicios se componen de un conjunto de servicios autónomos, cada uno de los cuales proporciona solo un tipo de servicio, y estos servicios trabajan juntos para proporcionar funciones comerciales complejas. En comparación con las aplicaciones monolíticas tradicionales, las aplicaciones de microservicios están altamente distribuidas. Como se muestra en la siguiente figura, es una aplicación de microservicio típica:

imagen

Como se muestra en la figura anterior, los microservicios generalmente tienen las siguientes características principales:

Autonomía

Robustez (Resiliencia)

Transparencia

Automatización

Alineación

En este artículo, nos centramos en la función de transparencia. En las aplicaciones de microservicios, los ingenieros deben ser notificados de manera oportuna cuando ocurren errores. En una aplicación de microservicio, una solicitud abarca varios microservicios y estos microservicios pueden ser desarrollados por diferentes equipos.

Esto requiere que cada microservicio sea transparente y observable para garantizar que los ingenieros puedan observar y diagnosticar problemas durante la operación. En el proceso real de desarrollo y operación del sistema, generalmente es necesario recopilar una gran cantidad de datos para garantizar el estado de los microservicios, que generalmente implican:

(1) Indicadores de negocio, operación e infraestructura 

(2) Registros de aplicaciones 

(3) Seguimiento de solicitudes

1.2 Observabilidad

Los cuatro pilares de una plataforma de observabilidad incluyen: métricas, seguimiento, registro y visualización.

1.2.1 Datos del índice

Los datos del indicador generalmente se refieren a un tipo de datos recopilados de forma regular. El tipo de datos es numérico. Por lo general, nos centramos en los valores mínimo, máximo, promedio y percentil. Los datos de los indicadores generalmente pueden reflejar el rendimiento de los sistemas y aplicaciones. Por ejemplo, cuando la utilización de recursos de un determinado microservicio excede un umbral, se puede activar una alarma para ayudar al personal de DevOps a diagnosticar problemas y tomar medidas adicionales.

1.2.2 Seguimiento

El rastreo es una secuencia de eventos distribuidos relacionados. Generalmente, generamos un ID de solicitud único en la capa de puerta de enlace, y este ID de solicitud abarcará a todos los participantes de la solicitud, por lo que el seguimiento es en realidad una combinación de un conjunto de registros con ID de solicitud. Cada registro tiene información de seguimiento y depuración, como hora de entrada, información de latencia, etc.

1.2.3 Registro

Un registro se refiere a un evento con marca de tiempo, que puede contener diversa información, como información de confirmación de una solicitud, información de error generada por una solicitud fallida, etc.

1.2.4 Visualización

La visualización puede ayudarle a comprender mejor los datos recopilados y maximizar su capacidad para obtener información sobre el sistema. En el equipo de ingeniería, además de la automatización para mejorar la eficiencia operativa, el descubrimiento de muchos problemas requiere intervención manual, por lo que los paneles relacionados que muestran datos en tiempo real son una función muy útil.

En general, construir una plataforma de observabilidad bajo aplicaciones de microservicios es una tarea desafiante. Necesitamos conocer la información global. Necesitamos reunir una visión global a partir de información independiente para ayudar al personal de operación y mantenimiento a comprender la situación general. Este artículo utiliza la plataforma nacional de análisis de big data Honghu para mostrar paso a paso cómo construir una plataforma de observabilidad.

2. Introducción a Honghu

Honghu proporciona una serie de servicios listos para usar, desde importación, análisis, almacenamiento, análisis y cálculo de datos hasta visualización de datos. Las capacidades de cada etapa de procesamiento de datos son relativamente completas y poderosas.

La parte de recopilación e importación de datos puede conectarse fácilmente a fuentes de datos como Vector/Kafka, y también puede recibir envío de datos desde varias API, como la API REST estándar y HTTP.

La parte de análisis de datos adopta el lenguaje de consulta SQL estándar. Para la mayoría de los técnicos, es fácil de usar y tiene habilidades comunes. La plataforma tiene más de 100 funciones escalares integradas y funciones de tabla, vistas, tablas de búsqueda, etc., y admite La asociación de datos heterogénea y entre bibliotecas puede satisfacer diversas necesidades de análisis empresarial.

La parte de visualización proporciona una gran cantidad de tipos de gráficos listos para usar, ricas funciones de selección de entrada y navegación, y una experiencia diversa de edición colaborativa de gráficos.

Vale la pena mencionar que el motor de modelado de lectura de tiempo desarrollado por Honghu puede importar y almacenar rápidamente datos heterogéneos y admite el ajuste dinámico de modelos de datos y parámetros de análisis sin solidificar el modelo y el proceso de análisis. Cuando cambia el escenario del análisis empresarial, solo necesita ajustar la declaración de análisis SQL para responder rápidamente.

Después de una investigación y comprensión preliminares, Honghu básicamente satisface nuestras necesidades de construir escenarios de observabilidad.

3. Soluciones

3.1 Arquitectura del sistema

imagen

Basado en la función de recopilación de datos simple y fácil de usar de Honghu, es muy fácil construir el sistema de recopilación de registros anterior. La descripción de la solución es la siguiente:

Cada microservicio se implementará dinámicamente en el nodo de Kubernetes y la salida de cada microservicio se almacenará en el nodo en ejecución en el formato kubernetes_logs.

Vector Agent se implementa en cada nodo en forma de DaemonSet

Honghu tiene una interfaz Vector incorporada, solo abre la configuración

Después de que Vector Agent analiza, enriquece y convierte los registros, eventualmente los transferirá a Honghu de forma continua.

3.2 Acceso a datos

Honghu tiene una variedad de funciones de acceso a datos, y las funciones integradas de acceso a datos Vector y Kafka facilitan en gran medida la recopilación de datos por parte de las empresas y la conveniencia de importar la plataforma de análisis de Honghu para extraer aún más el valor de los datos. Según el sistema de adquisición anterior, los pasos operativos específicos son los siguientes:

3.2.1 Habilitar la interfaz de recopilación de datos de Honghu

3.2.1.1 Ingrese: Honghu -> Importar datos -> Importar desde fuentes de datos externas

imagen

3.2.1.2 Configure la interfaz Vector y seleccione el rango del conjunto de datos (este artículo creará un conjunto de datos de registro de datos)

imagen

3.2.1.3 Seleccione el conjunto de datos y el tipo de fuente de datos, genere y descargue la plantilla de configuración de Vector para la configuración posterior de Vector

imagen

3.2.2 Configuración e instalación de Vector

imagen

Según el diseño de Vector (como se muestra arriba), Data Pipeline se divide en tres etapas: determinar la fuente de datos, convertir los datos y recopilar los datos. El siguiente es el archivo de configuración en ejecución real (considerando la seguridad de la información, algunos de ellos han sido insensibilizados). Esta configuración incluye principalmente la determinación de la fuente de datos recopilados, cómo se procesan y convierten los datos (procesamiento de múltiples líneas, cómo analizar y extraer datos más a fondo, enriquecer los datos para satisfacer las necesidades de Honghu) y, finalmente, recopilar los datos para Honghu Creo que no es difícil de entender para todos.

imagen

Con el archivo de configuración de Vector implementado, es hora de instalar Vector. La solución de este artículo necesita recopilar los registros de los microservicios que se ejecutan en Kubernetes. Vector se instalará con el comando Helm. Los comandos específicos son los siguientes:

imagen

Si necesita más información sobre el gráfico Vector Helm, consulte el gráfico Vector Helm (https://github.com/vectordotdev/helm-charts/tree/develop/charts/vector)

3.2.3 Verificar datos

Una vez que los datos ingresan a Honghu, como se muestra en la figura siguiente, el sistema indexará los datos y almacenará los datos originales, y luego el usuario podrá crear un panel y analizarlos en tiempo real.

imagen

Cuando nuestros datos ingresan a Honghu, podemos abrir Honghu para confirmar la consulta.

Abra Honghu-"Consulta-"Consulta avanzada, ejecute SQL simple y podrá ver los datos en tiempo real:

imagen

imagen

3.3 Escenarios de aplicación

3.3.1 Estadísticas de todos los eventos que ocurren en cada servicio

imagen

3.3.2 Estadísticas de solicitudes externas

Al contar algunos indicadores, a menudo es necesario clasificar las estadísticas por período de tiempo. La lógica de procesamiento de Honghu aquí es muy conveniente: siempre que el tiempo se convierta hasta cierto punto y luego, en función del tiempo convertido, el análisis de agrupación directo es suficiente.

imagen

3.3.3 Tiempo de procesamiento de solicitudes de estadísticas

Según las aplicaciones de microservicio, cada solicitud abarcará uno o más contenedores, y el tiempo de procesamiento de la solicitud debe superponerse al tiempo de procesamiento de uno o más contenedores. Nuestra aplicación ha considerado esto desde el principio: cuando una solicitud ingresa a la puerta de enlace de la aplicación, se le asignará un request_id y luego el request_id se registrará en los registros de varias aplicaciones. Según esta implementación, utilizando la función de ventana proporcionada por Honghu, después de agrupar los eventos según request_id, el tiempo de procesamiento de cada solicitud se puede calcular aproximadamente.

imagen

3.3.4 Salida del registro de API Gateway

En el sistema de microservicios, la puerta de enlace es muy importante. Actualmente, las puertas de enlace principales se basan en varias implementaciones de Nginx y Envoy. En nuestra implementación empresarial, estarán involucrados ambos tipos de puertas de enlace. Este artículo solo cubre cómo monitorear la puerta de enlace Nginx. En el futuro, hablaré sobre cómo usar Honghu para monitorear la puerta de enlace basada en Envoy. Para Nginx, Honghu ya tiene un caso listo: para crear un panel, solo necesita importar el archivo de configuración Nginx del panel.

Ingrese a Honghu --> Panel de control --> Nuevo panel --> Importar archivo de configuración

imagen

3.3.5 Representación final

3.3.5.1 Monitoreo de puerta de enlace Nginx

imagen

3.3.5.2 Monitoreo de aplicaciones

imagen

Cuatro Experiencia de uso

Después de pasar por todo el proceso de instalación, importación de datos, análisis de datos y visualización de datos, Honghu System brinda a las personas una sensación refrescante entre los productos de big data localizados. En comparación con otros productos similares, las ventajas de Honghu se reflejan en:

El principio KISS del producto: el sistema de big data de Honghu tiene un diseño simple y es fácil de usar para los usuarios. Desde la perspectiva de la importación, análisis y visualización de datos, el sistema tiene buena cohesión: en la mayoría de los casos, los usuarios pueden comenzar a analizar datos sin ver los documentos.

Potentes funciones de análisis: Honghu adopta declaraciones SQL extendidas para procesar datos estructurados, semiestructurados y no estructurados, y puede usar funciones escalares y funciones de tabla para enriquecer y transformar datos originales, ayudando a los usuarios a profundizar en el valor de los datos.

Adaptarse a las necesidades del negocio de análisis de datos: el sistema Honghu proporciona la función de modelado de lectura de tiempo, que satisface un dato original desde una perspectiva comercial y puede satisfacer las necesidades de análisis de diferentes departamentos comerciales.

Plataforma de análisis de big data de Honghu, con el lanzamiento de la versión comunitaria y la continua expansión de usuarios y ecología, las funciones del producto inevitablemente serán cada vez más abundantes. No olvide la intención original y logre la ambición de Honghu.

Supongo que te gusta

Origin blog.csdn.net/Yhpdata888/article/details/131962861
Recomendado
Clasificación