SkyWalking-Sistema de monitoreo de rendimiento de aplicaciones de código abierto

Tabla de contenido

I. Resumen

1.1 Características

1.2 Escenarios de uso

1.3 Funciones

1.4 Arquitectura general

2. Instalación y configuración

2.1 Construir SkyWalking

2.2 Construir el servicio SkyWalking OAP

2.3 Construcción de la interfaz de usuario de SkyWalking

2.4 introducción del puerto skywalking-oap-server

2.5 Agente SkyWalking

2.6 skywalking-tomcat


I. Resumen

SkyWalking es un sistema de gestión del rendimiento de las aplicaciones, la red de servicios y el seguimiento distribuido, que puede ayudar a los usuarios a obtener información sobre los cuellos de botella del rendimiento de las aplicaciones y proporcionar indicadores de rendimiento. SkyWalking admite varios idiomas, incluidos Java, .NET, NodeJS, Go, etc. Con SkyWalking, puede monitorear las llamadas entre servicios en la arquitectura de microservicios y proporcionar indicadores de rendimiento.

1.1 Características

SkyWalking tiene las siguientes características:

  • Rastreo de aplicaciones distribuidas: SkyWalking puede rastrear cadenas de solicitudes en aplicaciones distribuidas para comprender la ruta de flujo y la latencia de las solicitudes.
  • Medición del rendimiento de las aplicaciones: SkyWalking puede medir el rendimiento de las aplicaciones y proporcionar indicadores de rendimiento a los usuarios.
  • Seguimiento de malla de servicios: SkyWalking puede rastrear la comunicación entre servicios en una malla de servicios y proporcionar métricas de rendimiento sobre la comunicación entre servicios.
  • Compatibilidad con varios idiomas: SkyWalking admite varios idiomas, incluidos Java, .NET, NodeJS, Go, etc.

1.2 Escenarios de uso

SkyWalking es adecuado para los siguientes escenarios:

  • Arquitectura de microservicios: SkyWalking puede ayudar a los usuarios a monitorear las llamadas entre servicios en la arquitectura de microservicios.
  • Aplicaciones distribuidas: SkyWalking puede ayudar a los usuarios a rastrear cadenas de solicitudes en aplicaciones distribuidas y comprender la ruta de flujo y la latencia de las solicitudes.
  • Malla de servicios: SkyWalking puede ayudar a los usuarios a rastrear la comunicación entre servicios en una malla de servicios y proporcionar métricas de rendimiento sobre la comunicación entre servicios.

1.3 Funciones

  1.  Análisis de métricas de rendimiento de servicios, instancias de servicio y puntos finales (por ejemplo, URI HTTP individuales)
  2.  Análisis de raíz de la causa
  3.  Análisis de topología de servicio
  4.  Análisis de dependencia de servicios y terminales
  5.  Servicio lento y detección lenta de puntos finales
  6.  Seguimiento distribuido y propagación de contexto
  7. Arquitectura general

1.4 Arquitectura general

  1. colector: recopilador de datos de enlace, los datos pueden aterrizar en MySQL, ElasticSearch, TiDB, H2, etc.
  2. agente: sondee, use Javaagent para la implantación de código de bytes, recopilación no intrusiva y envíe el recopilador de datos a través de HTTP o gRPC
  3. web: plataforma de visualización web, utilizada para mostrar datos de aterrizaje

2. Instalación y configuración

Este artículo toma v8.7.0 como ejemplo para implementar y usar, y usamos la versión de Elasticsearch 7.x para el almacenamiento.

Construcción del entorno

$ mkdir caminar por el cielo

$ cd caminar por el cielo

# Descargue el paquete de instalación de la aplicación

wget https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm

-es7- 8.7.0.tar.gz

 Extraer al directorio actual

tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz

cd apache-skywalking-apm-bin-es7

 La estructura específica del directorio de archivos es la siguiente

  1. El directorio de agentes se copiará en la máquina donde se encuentra cada servicio en el futuro para usarlo como sonda
  2. El directorio bin es el script de inicio del servicio.
  3. El directorio config es el archivo de configuración.
  4. El directorio oap-libs es el paquete jar necesario para el funcionamiento del servicio oap
  5. El directorio de la aplicación web es el paquete jar necesario para que se ejecute el servicio web.
  6. La ubicación del archivo de configuración del servicio SkyWalking OAP es config/application.yml
  7. La ubicación del archivo de configuración del servicio de interfaz de usuario de SkyWalking: webapp/webapp.yml.
  8. Antes de la implementación, primero debe preparar el servicio Elasticsearch. Si hay uno listo en el proyecto, puede usarlo directamente. El proceso de despliegue es el siguiente:

2.1 Construir SkyWalking

Cambio de configuracion:

<1>, establecer clúster.nombre

Modifique el archivo de configuración config\application.yml del recopilador, en el que el espacio de nombres de configuración es coherente con el valor de es-cluster.name; el método de visualización de es-cluster.name curl ip:9200 es el siguiente:

cd /data/skywalking/apache-skywalking-apm-bin-es7

vi config/aplicación.yml

2.2 Construir el servicio SkyWalking OAP

Primero modifique el archivo de configuración de OAP para configurar Elasticsearch como la base de datos de almacenamiento

cd /data/skywalking/apache-skywalking-apm-bin-es7

vi config/aplicación.yml

# La fuente de datos H2 se selecciona de forma predeterminada en el archivo de configuración, cambie a elasticsearch7 y configure elasticsearch7 como la información instalada por usted mismo

# Concéntrese en modificar el elemento de configuración de almacenamiento y establezca el almacenamiento específico utilizado por el elemento de configuración storage.selector.

# Puede modificar principalmente las dos configuraciones de nameSpace y clusterNodes, y establecer el clúster y el espacio de nombres de Elasticsearch utilizados.

# elemento de configuración storage.elasticsearch7, configurado para usar la versión Elasticsearch7.X como almacenamiento.

El elemento de configuración storage.selector se usa para establecer el almacenamiento específico y el valor predeterminado es {SW_STORAGE:elasticsearch7}. Luego modifique nameSpace y clusterNodes en el elemento de configuración storage.elasticsearch 7. Si elasticsearch ha habilitado la autenticación, debe modificar el usuario y la contraseña 

Inicie el servicio SkyWalking

  

Inicie el servicio de skywalking oap

bin/oapServiceInit.sh

devolver

¡SkyWalking OAP comenzó con éxito!

Abra el archivo de registro logs/skywalking-oap-server.log para verificar si hay un registro de errores y si el inicio se realizó correctamente. Cuando se inicia por primera vez, SkyWalking OAP puede ser lento porque creará una gran cantidad de índices de Elasticsearch. El backend de SkyWalking admite múltiples implementadores de almacenamiento. La mayoría de ellos pueden inicializar automáticamente el almacenamiento cuando se inicia el backend, como Elasticsearch, Database.

2.3 Construcción de la interfaz de usuario de SkyWalking

1. Dado que la dirección predeterminada de SkyWalking UI es 8080, que entra en conflicto con muchos middleware, puede modificarla

# Modificar webapp/webapp.yml

servidor:

  puerto: 18080

2. Inicie el servicio de interfaz de usuario de SkyWalking 

$ bin/webappService.sh

¡La aplicación web SkyWalking se inició correctamente!

Abra el archivo de registro logs/logs/webapp.log para comprobar si hay un registro de errores y si el inicio se ha realizado correctamente. Si necesita modificar los parámetros del servicio de interfaz de usuario de SkyWalking, puede editar el archivo de configuración webapp/webapp.yml. Por ejemplo:

server.port: puerto de servicio de interfaz de usuario de SkyWalking.

spring.cloud.discovery.client.simple.instances.oap-service: matriz de direcciones del servicio SkyWalking OAP, porque los datos de la interfaz de usuario de SkyWalking se obtienen al solicitar el servicio SkyWalking OAP. Tenga en cuenta que la versión 8.7.0 del fondo de la interfaz de usuario introdujo zuul como un proxy para recursos estáticos, por lo que la dirección OAP ya no se establece a través de Collector.ribbon.listOfServers.

2.4 introducción del puerto skywalking-oap-server

Empezar directamente:

También puede usar el método de inicio directo: bin/startup.sh para iniciar el servicio de skywalking

Después de un inicio exitoso, se iniciarán dos servicios, uno es skywalking-oap-server y el otro es skywalking-web-ui

Después de iniciar el servicio skywalking-oap-server, se expondrán dos puertos 11800 y 12800, que son el puerto 11800 para recopilar datos de monitoreo y el puerto 12800 para aceptar solicitudes de front-end. Para modificar el puerto, puede modificar config/applicaiton. yml

Acceda a la interfaz de la interfaz de usuario:

El navegador abre http://IP:18080, como se muestra a continuación

La esquina inferior derecha de la página puede cambiar entre chino e inglés, y puede cambiar para seleccionar los datos de seguimiento del intervalo de tiempo que se mostrará

2.5 Agente SkyWalking

La sonda de agente nos permite monitorear dinámicamente los componentes utilizados en la aplicación Java sin modificar el código, obtener los datos en ejecución y enviarlos a OAP para estadísticas y almacenamiento.

La sonda de agente se implementa en Java utilizando la tecnología de agente de Java, sin ningún cambio de código, el agente de Java cambiará el código durante el tiempo de ejecución a través de la interfaz de la máquina virtual (VM).

Todos los archivos de la sonda del agente se encuentran en la carpeta del agente de Skywalking.

1> Modificar la configuración por defecto de la sonda

vi agente/config/agent.config

colector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.ip:11800}

agente.sample_n_per_3_secs=${SW_AGENT_SAMPLE:1}

2> Modificación de la tasa de muestreo

Instrucciones de configuración de Agent.sample_n_per_3_secs:

Cuando el número de visitas es pequeño, la colección completa de enlaces no supondrá una carga excesiva para el sistema, y ​​el estado operativo del sistema se puede observar por completo. Sin embargo, cuando hay una gran cantidad de visitas, la cantidad total de recopilación de enlaces generará una gran sobrecarga de rendimiento para el cliente (sonda de agente), el servidor (SkyWalking OAP) y el almacenamiento (como Elastcsearch) de la recopilación de enlaces, e incluso Afectará el funcionamiento normal de la aplicación. En el caso de un gran número de visitas, a menudo se selecciona el muestreo para recopilar solo una parte de la información del enlace. SkyWalking Agent define el elemento de configuración agent.sample_n_per_3_secs en el archivo de configuración agent/config/agent.config, que establece la cantidad de datos de enlace que se pueden recopilar cada 3 segundos.

3 > Colocar la sonda:

Necesitamos copiar el directorio del agente al servidor donde se encuentra la aplicación Java. De esta forma, la aplicación Java se puede configurar para usar el SkyWalking Agent. El sistema se detecta mediante la configuración de parámetros de inicio y no hay intrusión de código.

# Agregue los parámetros javaagent, Dskywalking.agent.service_name al comando de inicio del servicio

nohup java -javaagent:agent/skywalking-agent.jar -Dskywalking.agent.service_name=app_name -jar app.jar > app.log 2>&1 &

Tome la aplicación track-et-ext como ejemplo

nohup /data/ppm/opt/jdk1.8/bin/java \

-javaagent:/data/skywalking/agent/skywalking-agente.jar \

-Dskywalking.agent.service_name=springboot -Dskywalking.collector.backend_service=192.168.136.123:11800

-jar springboot > springboot.log 2>&1 &0

#No es necesario agregar el parámetro Dskywalking.collector.backend_service en el mismo host, pero este parámetro debe agregarse al implementar aplicaciones en diferentes hosts

 #Después de que el servicio comience con éxito, visite skywalking para ver

 #Panel de control: puede ver el rendimiento del servicio, la interfaz general que consume mucho tiempo, la clasificación de la ejecución de SQL de la base de datos que consume mucho tiempo, etc.

Mapa de topología: puede ver los servicios detectados y la relación entre los servicios

#Seguimiento: puede ver la situación que consume mucho tiempo de cada paso en todo el enlace, donde puede ver la ejecución que consume mucho tiempo de cada sql en el método y el sql correspondiente, y puede optimizar sql de manera específica

2.6 skywalking-tomcat

#Para los servicios de aplicaciones implementados con Tomcat, la configuración es la siguiente

Empaquete el directorio de agentes bajo Skywalking al servidor de destino al configurar proyectos de inicio de Tomcat en diferentes servidores

Y especifique Dskywalking.collector.backend_service al configurar los parámetros, la configuración específica es la siguiente

vi tomcat/webapps/bin/catalina.sh

#Add en la primera línea, que tiene el mismo significado que la configuración de inicio de jar

CATALINA_OPTS="$CATALINA_OPTS \

-javaagent:/data/skywalking/agent/skywalking-agente.jar \

-Dskywalking.agent.service_name=Tomcat \

-Dskywalking.collector.backend_service=192.168.136.123:11800"; exportar CATALINA_OPTS

Supongo que te gusta

Origin blog.csdn.net/qq_52497256/article/details/130410119
Recomendado
Clasificación