Sunrabbit

[Observabilidade] Desafio do Coletador de Logs Vector

  • Idioma de escrita: Coreana
  • País de referência: Todos os paísescountry-flag
  • TI

Criado: 2024-03-09

Criado: 2024-03-09 00:03

Hoje, pretendo apresentar a ferramenta Vector.

É um produto da DataDog.

[Observabilidade] Desafio do Coletador de Logs Vector


Ele desempenha o papel de ferramentas como promtail e otel, que já conhecemos.
Suporta a coleta, agregação e transformação de logs.

Suas características são as seguintes:

1. Escrito em Rust, não em Golang
2. Mais fácil de escrever código de transformação de logs em comparação com o otel
3. Gerenciável de forma declarativa
4. Documentação oficial bem escrita

Embora o site oficial destaque os seguintes pontos como vantagens...

[Observabilidade] Desafio do Coletador de Logs Vector


Acho que a maioria dessas vantagens também são promovidas por outras ferramentas, então as excluí da lista acima.

E, ao usar a ferramenta, encontrei algumas desvantagens:
1. Documentação oficial não atualizada
2. Dificuldade em encontrar materiais relacionados

Acho que é isso.
Embora não tenha encontrado grandes inconvenientes durante o uso, senti falta da falta de materiais relacionados e da falta de atualização em muitas partes, o que foi decepcionante.



Como estou usando apenas o Helm, peço desculpas antecipadamente por escrever com base no Helm... 흑....

Crie um arquivo values.yaml simples como este:


Com este comando, consegui integrar facilmente os logs do k8s com o Loki.


Encontrei alguns problemas ao escrever este conteúdo.

O primeiro é que, ao escrever o customConfig, as opções que eram aplicadas por padrão são desativadas, então você precisa escrever source, transform e sinks manualmente.


Em segundo lugar, devido à natureza dos logs do k8s, que são recebidos linha por linha, os logs multilinha, como rastreamento de erros, precisam ser mesclados.
A fonte de arquivos tem uma opção multiline, mas o k8s não tem.
Após uma discussão interna da equipe do Vector, foi decidido que o transform.reduce é compatível e que essa é a forma de fazer.


Terceiro, além do root.data_dir, você também precisa definir o data_dir dentro do custom_config...

[Observabilidade] Desafio do Coletador de Logs Vector


Se o valor não estiver definido, erros de permissão relacionados ao log ocorrem com frequência... ㅎ


Quarto, eu usei o Helm para a implantação, então houve alguns casos em que a sintaxe se sobrepunha, e foi necessário escapar.
Por causa disso, a documentação mostra "{{ metadata }}", mas colei isso diretamente e deu erro...

Portanto, no Helm, você deve sempre fazer escape como "{{ {{ metadata }} }}"!


Além disso, se você tiver dúvidas sobre a arquitetura, recomendo que consulte o artigo abaixo.
https://vector.dev/docs/setup/deployment/topologies/

Comentários0