3장. 클러스터 로깅
3.1. Serving 및 Eventing에 대한 로그 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
KnativeServing 및 KnativeEventing 사용자 정의 리소스(CR)를 사용하여 OpenShift Serverless Serving 및 OpenShift Serverless Eventing에 대한 로깅을 구성할 수 있습니다. 로깅 수준은 지정된 loglevel 값에 따라 결정됩니다.
3.1.1. 지원되는 로그 수준 링크 복사링크가 클립보드에 복사되었습니다!
다음 loglevel 값이 지원됩니다.
| 로그 수준 | 설명 |
|---|---|
|
| 세분화된 디버깅 |
|
| 일반 로깅 |
|
| 예기치 않은, 중요하지 않은 오류 |
|
| 심각한 오류; 정상적인 작업 중 예기치 않은 |
|
| 디버그 모드에서 패닉(crash)을 트리거합니다. |
프로덕션에 디버그 수준을 사용하면 성능에 부정적인 영향을 미칠 수 있습니다.
3.1.2. 로그 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
KnativeServing CR(사용자 정의 리소스) 및 KnativeEventing CR에서 Serving 및 Eventing에 대한 로깅을 구성할 수 있습니다.
프로세스
KnativeServing및KnativeEventingCR에서loglevel값을 설정하거나 수정하여 Serving 및 Eventing의 로그 설정을 구성합니다. 다음은 levelinfo로 설정된 가능한 모든 로깅 옵션을 포함하는 두 가지 예제 구성입니다.KnativeServing CR
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: config: logging: loglevel.controller: "info" loglevel.autoscaler: "info" loglevel.queueproxy: "info" loglevel.webhook: "info" loglevel.activator: "info" loglevel.hpaautoscaler: "info" loglevel.net-certmanager-controller: "info" loglevel.net-istio-controller: "info" loglevel.net-kourier-controller: "info"KnativeEventing CR
apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: config: logging: loglevel.controller: "info" loglevel.eventing-webhook: "info" loglevel.inmemorychannel-dispatcher: "info" loglevel.inmemorychannel-webhook: "info" loglevel.mt-broker-controller: "info" loglevel.mt_broker_filter: "info" loglevel.mt_broker_ingress: "info" loglevel.pingsource-mt-adapter: "info"
3.1.3. 요청 로그 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
KnativeServing 사용자 정의 리소스(CR)의 observability 필드에서 서비스에 대한 요청 로깅을 구성할 수 있습니다.
요청 로깅 구성에 사용 가능한 매개변수에 대한 자세한 내용은 "요청 로깅의 매개변수"를 참조하십시오.
프로세스
KnativeServingCR의observability필드를 수정하여 서비스에 대한 요청 로깅을 구성합니다.KnativeServingCR의 예apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving # ... spec: config: observability: logging.enable-request-log: true logging.enable-probe-request-log: true logging.request-log-template: '{"httpRequest": {"requestMethod": "{{.Request.Method}}", "requestUrl": "{{js .Request.RequestURI}}", "requestSize": "{{.Request.ContentLength}}", "status": {{.Response.Code}}, "responseSize": "{{.Response.Size}}", "userAgent": "{{js .Request.UserAgent}}", "remoteIp": "{{js .Request.RemoteAddr}}", "serverIp": "{{.Revision.PodIP}}", "referer": "{{js .Request.Referer}}", "latency": "{{.Response.Latency}}s", "protocol": "{{.Request.Proto}}"}, "traceId": "{{index .Request.Header "X-B3-Traceid"}}"}' # ...
3.1.4. 요청 로깅 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 요청 로깅을 구성하는 데 사용되는 매개변수를 설명합니다.
| 매개변수 | 유형 | 설명 |
|---|---|---|
|
|
부울( |
요청 로깅을 활성화하려면 |
|
|
부울( |
queue 프록시가 stdout에 대한 프로브 요청을 기록하도록 활성화하려면 |
|
|
| 요청 로그의 모양을 확인합니다. 한 줄로 로그를 여러 레코드로 분할하지 못하도록 합니다. |
logging.request-log-template 매개변수에는 다음 기능이 포함됩니다.
-
request는 서버에서 수신한 HTTP 요청을 나타내는http.Request입니다. response는 HTTP 응답을 나타내며 다음 필드를 포함합니다.-
코드는 HTTP 상태 코드입니다. -
크기는바이트 단위의 응답 크기입니다. -
대기 시간은응답 대기 시간(초)입니다.
-
개정버전에는 버전 세부 정보가 포함되어 있으며 다음 필드가 포함됩니다.-
name은 버전 이름입니다. -
네임스페이스는 버전의 네임스페이스입니다. -
서비스는
서비스이름입니다. -
구성은
구성의 이름입니다. -
PodName은 버전을 호스팅하는 Pod의 이름입니다. -
PodIP는 호스팅 pod의 IP 주소입니다.
-