Autor: Jing Lei
Escenas
Ahora, gracias a la compatibilidad ES de SLS, puede utilizar Kibana fácilmente para consultar y visualizar datos de SLS. Los usuarios que migran de ES a SLS pueden seguir conservando sus hábitos de uso originales de Kibana. A continuación se muestra cómo acceder a SLS a través de Kibana.
Instrucciones
Arquitectura de implementación
Las partes azules aquí son componentes que requieren implementación del cliente.
- Kibana se utiliza para la visualización.
- El proxy se utiliza para distinguir las solicitudes de Kibana y reenviar las relacionadas con SLS a la interfaz compatible con ES de SLS.
- Elasticsearch se utiliza para almacenar Meta de Kibana
Espera, ¿por qué necesitamos un ES aquí?
La razón es que el almacén de registros de SLS no admite actualizaciones y muchos datos de metaclases no son adecuados para SLS.
Kibana tiene muchos metadatos para almacenar, como la configuración del gráfico de Kibana, la configuración del patrón de índice, etc.
Por lo tanto, necesita implementar una instancia de ES. Esta instancia de ES solo almacenará los metadatos de Kibana, por lo que su uso de recursos es muy pequeño.
Proceso de implementación
Implementar usando Docker-Compose
Preparaciones relacionadas
Después de instalar Docker y Docker Compose, los siguientes pasos también se aplican a Podman Compose.
Crear directorios relacionados
mkdir sls-kibaba # 创建一个新的目录
cd sls-kibaba # 进入
mkdir es_data # 创建一个目录用于放es的数据
Configuración
Cree el archivo docker-compose.yml en el directorio sls-kibana.
El contenido es el siguiente: (Las siguientes marcas son los lugares que deben modificarse aquí. Realice modificaciones de acuerdo con la situación real)
version: '3'
services:
es:
image: elasticsearch:7.17.3
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms2G -Xmx2G"
- ELASTIC_USERNAME=elastic
- ELASTIC_PASSWORD=ES密码 # 此处请修改
- xpack.security.enabled=true
volumes:
- ./data:/usr/share/elasticsearch/data
networks:
- es717net
kproxy:
image: sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:1.9d
depends_on:
- es
environment:
- ES_ENDPOINT=es:9200
- SLS_ENDPOINT=https://etl-dev.cn-huhehaote.log.aliyuncs.com/es/ # 此处请修改,规则为 https://${project名}.${slsEnpoint名}/es/
- SLS_PROJECT=etl-dev # 此处请修改
- SLS_ACCESS_KEY_ID=ALIYUN_ACCESS_KEY_ID # 此处请修改, 确保有读logstore的权限
- SLS_ACCESS_KEY_SECRET=ALIYUN_ACCESS_KEY_SECRET # 此处请修改为真实accessKeySecret
networks:
- es717net
kibana:
image: kibana:7.17.3
depends_on:
- kproxy
environment:
- ELASTICSEARCH_HOSTS=http://kproxy:9201
- ELASTICSEARCH_USERNAME=elastic
- ELASTICSEARCH_PASSWORD=ES密码 # 此处请修改(跟前面设置的ES密码相同)
- XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED=true
ports:
- "5601:5601"
networks:
- es717net
networks:
es717net:
ipam:
driver: default
Inicie el servicio local de Kibana:
docker compose up -d
Verifique el estado de inicio de Docker Compose:
docker compose ps
Visita Kibana
Acceda a http://$ ( dirección IP de implementación de Kibaba}:5601 con su navegador , ingrese su cuenta y contraseña para iniciar sesión en Kibana.
Configurar patrón de índice
Seleccione Gestión de pila:
Haga clic en la pestaña Patrón de índice. Es normal no ver datos en la lista Patrón de índice. El almacén de registros del servicio de registro está asignado a los patrones de índice en Kibana y debe crearse manualmente. Haga clic en crear un patrón de índice contra índices ocultos o del sistema en el cuadro emergente.
En la página Crear patrón de índice, el formato de Nombre es ${project}.${logstore}. Tenga en cuenta que la proporción debe completarse por completo y que * no se admite la coincidencia.
Haga clic en Crear patrón de índice para completar la creación del patrón y luego ingrese Descubrir para consultar los datos.
Almacén de registros de consultas
KQL y Lucene se pueden seleccionar en el cuadro de consulta de Kibana, y se admiten ambas interfaces compatibles con ES de SLS.
Consulta de host simple:
Se pueden realizar algunas consultas y filtros complejos.
Gráficos visuales
Entonces, además de realizar consultas, ¿se puede utilizar Kibana para visualización? ¡seguro! Seleccione Panel de control.
Después de ingresar, haga clic en Crear panel para crear un gráfico.
Al configurar los campos y los métodos estadísticos del eje horizontal y del eje vertical, puede crear fácilmente el gráfico deseado.
Por ejemplo, el histograma más simple es un histograma que cuenta el número de visitas solicitadas, con el tiempo en el eje horizontal y el número de registros en el eje vertical.
Ahora quiero ver el estado de cada columna. Puedo seleccionar el campo Desglosar por como estado.
Preguntas más frecuentes
1) ¿Por qué no puedo ver Logstore en SLS en Kibana?
El almacén de registros en SLS se consulta a través del patrón de índice de Kibana, y el almacén de registros en SLS debe crearse creando manualmente un patrón de índice.
2) Al crear un patrón de índice en Kibana, ¿por qué no aparece ningún mensaje cuando no se realiza ninguna entrada?
Esto es normal después de ingresar el ${project}.${logstore} correcto a la izquierda (donde ${project} y ${logstore} deben reemplazarse con valores reales), se mostrará lo siguiente:
3) ¿Kibana admite comodines * al crear un patrón de índice?
No se admiten comodines y ${project}.${logstore} debe completarse por completo, como etl-dev.accesslog para que coincida.
4) ¿Por qué no aparece ningún mensaje en el lado derecho al crear el patrón de índice de Logstore en Kibana?
Hay varias posibilidades:
- La dirección compatible con ES de SLS es incorrecta Cuando se configura en kproxy, la regla es https://${project name}.${slsEnpoint name}/es/. Preste atención al sufijo /es/. 2. El accessKeyId y accessKeySerect correspondientes no tienen permiso para acceder a SLS Logstore (permiso de lectura).
- 5) Tengo varios proyectos SLS a los que quiero acceder en Kibana. ¿Se puede hacer esto?
Sí, la clave está en la configuración de kproxy. SLS_PROJECT, SLS_ENDPOINT, SLS_ACCESS_KEY_ID, SLS_ACCESS_KEY_SECRET son los nombres de las variables relacionadas con el primer proyecto. A partir del segundo proyecto, los nombres de las variables relevantes deben agregarse con sufijos numéricos, como SLS_PROJECT2, SLS_ENDPOINT2, SLS_ACCESS_KEY_ID2, SLS_ACCESS_KEY_SECRET2. Si la AccessKey de un Proyecto posterior es la misma que la del primer Proyecto, se podrá omitir la configuración de la AccessKey correspondiente al Proyecto.
Por ejemplo, suponiendo que Kibaba vaya a comprobar otro proyecto, entonces como segundo kproxy:
- SLS_ENDPOINT2=https://etl-dev2.cn-huhehaote.log.aliyuncs.com/es/
- SLS_PROJECT2=etl-dev2
- SLS_ACCESS_KEY_ID2=etl-dev2对应的accessKeyId #如果和SLS_ACCESS_KEY_ID2一样可以不加
- SLS_ACCESS_KEY_SECRET2=etl-dev2对应的accessKeyKey #如果和SLS_ACCESS_KEY_ID2一样可以不加
resumen
Este artículo demuestra cómo usar Kibana para conectarse a la interfaz compatible con SLS ES para consultas y análisis. Las capacidades de consulta y visualización de Kibana se pueden conectar y usar normalmente. Adecuado para las dos situaciones siguientes:
- Si su hábito de uso anterior es Kibana y los registros ya existen en Alibaba Cloud SLS, puede utilizar esta solución para conectarse.
- Si actualmente está utilizando la solución ELK estándar pero está cansado del trabajo de mantenimiento o ajuste cuando usa ES, puede probar la solución Alibaba Cloud SLS (capa inferior de C++, sin servidor, de bajo costo, compatible con ES).
Esperamos su uso.
Documentación de referencia:
-
Introducción a ES compatible con SLS
-
Utilice Kibana para conectarse a la interfaz compatible con ES https://help.aliyun.com/zh/sls/user-guide/use-kibana-to-access-the-elasticsearch-compatible-api-of-log-service?spm =a2c4g 11186623.0.0.27bc54e3bgGvsa#cdb8c7a157t0v.