1.7. 로그 페이로드 및 전달 튜닝
ClusterLogForwarder CR(사용자 정의 리소스)의 tuning 사양은 로그의 처리량 또는 지속성을 우선시하도록 배포를 구성하는 수단을 제공합니다.
예를 들어 수집기가 다시 시작될 때 로그 손실 가능성을 줄여야 하거나 규제 요구 사항을 지원하기 위해 수집기를 다시 시작하여 수집된 로그 메시지가 필요한 경우 로그 지속성을 우선시하도록 배포를 조정할 수 있습니다. 수신할 수 있는 일괄 처리 크기에 대한 하드 제한 사항이 있는 출력을 사용하는 경우 로그 처리량 우선 순위를 지정하도록 배포를 조정할 수 있습니다.
이 기능을 사용하려면 Vector 수집기를 사용하도록 로깅 배포를 구성해야 합니다. Fluentd 수집기를 사용하는 경우 ClusterLogForwarder CR의 튜닝 사양은 지원되지 않습니다.
다음 예제에서는 로그 전달자 출력을 조정하도록 수정할 수 있는 ClusterLogForwarder CR 옵션을 보여줍니다.
ClusterLogForwarder CR 튜닝 옵션의 예
- 1
- 로그 전달을 위한 전달 모드를 지정합니다.
-
AtLeastOnce전송은 로그 전달자가 충돌하거나 재시작되면 크래시 전에 읽히지만 대상에 전송되지 않은 모든 로그가 다시 전송됩니다. 충돌 후 일부 로그가 중복될 수 있습니다. -
At CryostatOnce전송은 로그 전달자가 충돌 중에 손실된 로그를 복구하기 위해 아무런 노력을 기울이지 않음을 의미합니다. 이 모드에서는 처리량이 향상되지만 로그 손실이 증가할 수 있습니다.
-
- 2
압축구성을 지정하면 네트워크를 통해 데이터를 전송하기 전에 데이터가 압축됩니다. 모든 출력 유형이 압축을 지원하는 것은 아니며 지정된 압축 유형이 출력에서 지원되지 않는 경우 오류가 발생합니다. 자세한 내용은 "컨트롤링에 지원되는 압축 유형"을 참조하십시오.- 3
- 출력에 대한 단일 전송 작업의 최대 페이로드에 대한 제한을 지정합니다.
- 4
- 실패 후 전달을 재시도하기 전에 시도 사이에 대기하는 최소 기간을 지정합니다. 이 값은 문자열이며 밀리초(
ms), 초(s) 또는 분(m)으로 지정할 수 있습니다. - 5
- 실패 후 전달을 재시도하기 전에 시도 사이에 대기할 최대 기간을 지정합니다. 이 값은 문자열이며 밀리초(
ms), 초(s) 또는 분(m)으로 지정할 수 있습니다.
| 압축 알고리즘 | Splunk | Amazon Cloudwatch | Elasticsearch 8 | LokiStack | Apache Kafka | HTTP | Syslog | Google Cloud | Microsoft Azure Monitoring |
|---|---|---|---|---|---|---|---|---|---|
|
| X | X | X | X | X | ||||
|
| X | X | X | X | |||||
|
| X | X | X | ||||||
|
| X | X | X | ||||||
|
| X |
1.7.1. 여러 줄 예외 탐지 활성화 링크 복사링크가 클립보드에 복사되었습니다!
컨테이너 로그의 여러 줄 오류 감지를 활성화합니다.
이 기능을 활성화하면 성능에 영향을 미칠 수 있으며 추가 컴퓨팅 리소스 또는 대체 로깅 솔루션이 필요할 수 있습니다.
로그 구문 분석기가 별도의 예외와 동일한 예외의 별도의 행을 잘못 식별하는 경우가 많습니다. 이로 인해 추가 로그 항목과 추적된 정보에 대한 불완전하거나 부정확한 보기가 발생합니다.
Java 예외 예
java.lang.NullPointerException: Cannot invoke "String.toString()" because "<param1>" is null
at testjava.Main.handle(Main.java:47)
at testjava.Main.printMe(Main.java:19)
at testjava.Main.main(Main.java:10)
java.lang.NullPointerException: Cannot invoke "String.toString()" because "<param1>" is null
at testjava.Main.handle(Main.java:47)
at testjava.Main.printMe(Main.java:19)
at testjava.Main.main(Main.java:10)
-
로깅을 사용하여 여러 줄 예외를 감지하고 이를 단일 로그 항목으로 재조정하려면
ClusterLogForwarder사용자 정의 리소스(CR)에.spec.filters아래의detectMultilineErrors필드가 포함되어 있는지 확인합니다.
Example ClusterLogForwarder CR
1.7.1.1. 세부 정보 링크 복사링크가 클립보드에 복사되었습니다!
로그 메시지가 예외 스택 추적을 형성하는 연속 시퀀스로 표시되면 단일 통합 로그 레코드로 결합됩니다. 첫 번째 로그 메시지의 콘텐츠는 시퀀스의 모든 메시지 필드의 연결된 콘텐츠로 교체됩니다.
수집기는 다음 언어를 지원합니다.
- Java
- JS
- Ruby
- Python
- Golang
- PHP
- Dart