Autor: Jing Lei
Cenas
Agora, com a compatibilidade ES do SLS, você pode usar facilmente o Kibana para consultar e visualizar dados SLS. Os usuários que migram do ES para o SLS podem continuar mantendo seus hábitos originais de uso do Kibana. A seguir demonstramos como acessar o SLS por meio do Kibana.
Instruções
Arquitetura de implantação
As partes azuis aqui são componentes que requerem implantação do cliente.
- Kibana é usado para visualização
- O proxy é usado para distinguir solicitações do Kibana e encaminhar solicitações relacionadas ao SLS para a interface compatível com ES do SLS.
- Elasticsearch é usado para armazenar Meta do Kibana
Espere, por que precisamos de um ES aqui?
O motivo é que o Logstore do SLS não oferece suporte a atualizações e muitos dados da classe Meta não são adequados para SLS.
Kibana tem muitos metadados para armazenar, como configuração de gráfico do Kibana, configuração de padrão de índice, etc.
Portanto, você precisa implantar uma instância ES. Essa instância ES armazenará apenas os metadados do Kibana, portanto, seu uso de recursos é muito pequeno.
Processo de implantação
Implantar usando docker-compose
Preparações relacionadas
Depois de instalar o docker e o docker compose, as etapas a seguir também se aplicam ao podman compose.
Crie diretórios relacionados
mkdir sls-kibaba # 创建一个新的目录
cd sls-kibaba # 进入
mkdir es_data # 创建一个目录用于放es的数据
Configuração
Crie o arquivo docker-compose.yml no diretório sls-kibana.
O conteúdo é o seguinte: (As seguintes marcas são os locais que devem ser modificados aqui. Faça modificações de acordo com a situação 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 o serviço local do Kibana:
docker compose up -d
Verifique o status de inicialização do docker compose:
docker compose ps
Visite Kibana
Acesse http://$ ( endereço IP de implantação do Kibaba}:5601 com seu navegador , digite sua conta e senha para fazer login no Kibana.
Configurar padrão de índice
Selecione Gerenciamento de pilha:
Clique na guia Index Pattern É normal não ver dados na lista Index Pattern O Logstore do serviço de log é mapeado para os padrões de índice no Kibana e precisa ser criado manualmente. Clique em criar um padrão de índice em índices ocultos ou de sistema na caixa de prompt.
Na página Criar padrão de índice, o formato para Nome é ${project}.${logstore} Observe que a proporção deve ser preenchida completamente e * a correspondência não é suportada.
Clique em Criar padrão de índice para concluir a criação do padrão e insira Descobrir para consultar os dados.
Consultar Logstore
KQL e Lucene podem ser selecionados na caixa de consulta do Kibana, e ambas as interfaces compatíveis com ES do SLS são suportadas.
Consulta de host simples:
Algumas consultas e filtros complexos podem ser consultados.
Gráficos visuais
Então, além da consulta, o Kibana pode ser usado para visualização? claro! Selecione Painel.
Após entrar, clique em Criar painel para criar um gráfico.
Ao definir os campos e métodos estatísticos do eixo horizontal e do eixo vertical, você pode criar facilmente o gráfico desejado.
Por exemplo, o histograma mais simples é um histograma que conta o número de visitas solicitadas, com o tempo no eixo horizontal e o número de registros no eixo vertical.
Agora quero ver o status de cada coluna. Posso selecionar o campo Dividir por como status.
Perguntas frequentes
1) Por que não consigo ver o Logstore no SLS no Kibana?
O Logstore no SLS é consultado por meio do Index Pattern do Kibana, e o Logstore no SLS precisa ser criado criando manualmente um Index Pattern.
2) Ao criar o padrão de índice no Kibana, por que não há aviso quando nenhuma entrada é feita?
Isso é normal. Depois de inserir o ${project}.${logstore} correto à esquerda (onde ${project} e ${logstore} precisam ser substituídos por valores reais), o seguinte será exibido:
3) O Kibana suporta * curingas ao criar o Padrão de Índice?
Curingas não são suportadas e ${project}.${logstore} precisa ser preenchido completamente, como etl-dev.accesslog para corresponder.
4) Por que não há prompt no lado direito ao criar o padrão de índice do Logstore no Kibana?
Existem várias possibilidades:
- O endereço compatível com ES do SLS está errado. Quando configurado no kproxy, a regra é https://${nome do projeto}.${slsEnpoint name}/es/ . 2. O accessKeyId e accessKeySerect correspondentes não têm permissão para acessar o SLS Logstore (permissão de leitura).
- 5) Tenho vários projetos SLS que desejo acessar no Kibana. Isso pode ser feito?
Sim, a chave está na configuração do kproxy. SLS_PROJECT, SLS_ENDPOINT, SLS_ACCESS_KEY_ID, SLS_ACCESS_KEY_SECRET são os nomes das variáveis relacionadas ao primeiro Projeto. A partir do segundo projeto, os nomes das variáveis relevantes precisam ser adicionados com sufixos numéricos, como SLS_PROJECT2, SLS_ENDPOINT2, SLS_ACCESS_KEY_ID2, SLS_ACCESS_KEY_SECRET2. Caso o AccessKey de um Projeto subsequente seja igual ao primeiro Projeto, a configuração do AccessKey correspondente ao Projeto poderá ser omitida.
Por exemplo, supondo que outro projeto seja verificado pelo Kibaba, então como o 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一样可以不加
resumo
Este artigo demonstra como usar o Kibana para se conectar à interface compatível com SLS ES para consulta e análise. Os recursos de consulta e visualização do Kibana podem ser conectados e usados normalmente. Adequado para as duas situações a seguir:
- Se seu hábito de uso anterior for Kibana e os logs já existirem no Alibaba Cloud SLS, você poderá usar esta solução para se conectar.
- Se você está usando atualmente a solução ELK padrão, mas está cansado do trabalho de manutenção ou ajuste ao usar ES, você pode tentar a solução Alibaba Cloud SLS (camada inferior c++, sem servidor, baixo custo, compatível com ES).
Ansioso para seu uso.
Documentação de referência:
-
Introdução ao ES compatível com SLS
-
Use Kibana para conectar-se à interface compatível com ES https://help.aliyun.com/zh/sls/user-guide/use-kibana-to-access-the-elasticsearch-compatível-api-of-log-service?spm =a2c4g.