- Remap inspired `reduce` transform to solve multiline merging · Issue #4258 · vectordotdev/vector
- This issue proposes an idea for a new reduce transform that borrows from the new remap transform. The intent is to solve event merging, as well as other reduce-like problems, through robust reduce ...
AI가 번역한 다른 언어 보기
durumis AI가 요약한 글
- Vector는 DataDog에서 출시한 로그 수집 및 처리 툴로, Rust 기반으로 개발되어 OTel보다 로그 변환이 용이하며 선언적 관리가 가능한 장점이 있습니다.
- 하지만 공식 문서의 최신화 부족과 관련 자료 부재로 인해 사용에 어려움을 겪을 수 있으며, Helm 기반 배포 시 customConfig 설정, 멀티라인 로그 처리, data_dir 설정, 이스케이프 처리 등의 추가적인 설정이 필요합니다.
- 특히 Helm 사용 시 이스케이프 처리에 유의해야 하며, 아키텍처 관련 고민은 공식 문서의 Topology 관련 내용을 참고하는 것이 좋습니다.
오늘은 Vector라는 툴을 소개해볼 예정입니다.
그 DataDog에서 나온 제품입니다.
여타 우리가 알고있는 promtail, otel 등이 하는 역할을 맡고있습니다.
로그 수집 및 집계, 변환을 지원하죠
특징은 아래와 같습니다
1. golang이 아닌 rust로 작성 됨
2. otel에 비해 로그 변환 코드를 작성하기 편함
3. 선언적으로 관리 가능
4. 잘 작성된 공식문서
뭐 공식 사이트 가면 아래와 같은 점들을 장점으로 내세우고 있지만
대부분의 장점들은 다른 툴들 또한 내세우고 있는점들이지않나 싶어 위에서는 제외했습니다.
그리고 사용해보면서 겪은 단점들을 얘기하자면
1. 최신화되지 못한 공식문서
2. 관련 자료 찾기가 힘듬
이정도가 될 것 같습니다.
사용하면서 크게 불편한 점은 못겪었지만, 관련 자료가 부재한다던지 최신화가 되지못한 것들이 많이 아쉬웠습니다.
저는 helm 만 사용하기에 helm 기준으로 작성하는 점 미리 사과드립니다 흑....
다음과 같은 간단한 values.yaml을 작성하고
위 커맨드를 통해 k8s에서 나오는 로그를 간단하게 loki와 통합 할 수 있었습니다.
다음을 작성하면서 겪었던 이슈가 몇개 있었습니다.
첫번째로 customConfig 작성 시, default로 적용되던 옵션들은 모두 비활성화 되기에 source, transform, sinks를 모두 직접 작성해주셔야합니다.
두번째, k8s log 특성 상 line을 기준으로 로그가 들어오기에, 에러트레이스 같은 멀티라인 로그들은 병합을 시켜주어야합니다.
이에 대해서 source.file에는 multiline 관련 옵션이 있지만, k8s는 전혀 없습니다.
그리고 벡터팀 내부 토론을 통해, transform.reduce를 지원하고, 그를 통해서 하라는 결과가 나왔습니다.
세번째, root.data_dir 뿐만 아니라 custom_config 내부의 data_dir도 설정해주어야 하더라고요..
내부에 저래 값이 박히는데, 설정이 안되어있을 경우 로그 관련하여 권한 부족 에러가 자주 발생하더라고요.. ㅎ
네번째, 전 helm을 이용해서 배포를 진행했는데, 그러다보니 문법이 겹치는게 있어서 이스케이프가 필요한 경우가 있더라고요.
그래서 그런지 문서에는 다음처럼 "{{ metadata }}" 되어 있어서 그대로 붙였다가 에러가 났습니다...
그래서 꼭 helm에서는 "{{ {{ metadata }} }}" 처럼 이스케이프를 진행해주셔야합니다!
추가로 아키텍처 관련 고민이 있으시다면 아래 글을 참고해보시는 걸 추천드립니다.
https://vector.dev/docs/setup/deployment/topologies/