0

GKE에 배포 된 앱에 대해 Stackdriver 오류보고를 설정하려고합니다. 스택 드라이버 로깅 에이전트오류보고 REST API를 : GKE에 대한 오류보고 설정

나는 그 일을 두 가지 방법이 있습니다 알 수있는 바와 같이.

에 따르면 Setting up on Google Compute Engine docs 이미 실행중인 로깅 에이전트가있는 경우 localhost:24224에 연결할 수 있습니다.

✗ kubectl get pods --namespace=kube-system 
NAME              READY  STATUS RESTARTS AGE 
fluentd-cloud-logging-gke-tc-default-pool-5713124a-969q 1/1  Running 0   3d 

fluent-logger-node library으로이 fluentd에 도달 할 수있는 방법이 있나요 : 이미 GKE에 대한 로깅 에이전트가 같은

은 같습니다?

답변

1

Steren, 고마워요. your answer!

최근 스택 드라이버는 기본적으로 GKE에서 인기있는 언어에서 Fluentd에 인제 예외를 만들어이 문제를 해결 몇 가지 세부 사항을 공유 할 수 있습니다. GKE의 다음 릴리스에서 활성화되며 컨테이너의 stdout/ stderr에 덤프 된 예외는 오류보고에 표시됩니다.

유창한 logger-node 라이브러리로이 유창한 접근 방법이 있습니까?

GCE와 GKE의 로깅 에이전트는 다르게 작동합니다. GCE에서는 에이전트를 VM에 직접 설치하고 localhost을 사용하여 동일한 VM에서 에이전트에 액세스 할 수 있습니다. 그러나 GKE는 포드로 작동하며 노드에 직접 설치된 것은 없습니다. 각 포드에는 자체 네트워크 스택이 있으므로 컨테이너 내부에서 localhost을 호출하면 VM에 대한 것이 아니라이 특정 포드에 대한 것입니다.

Stackdriver Logging을 활성화하면 각 노드에 fluentd가 배포됩니다. 그러나 컨테이너 내부에서 실행되므로 현재 응용 프로그램에서 쉽게 액세스 할 수 없습니다.

앞으로는 Stackdriver와 GKE 팀이 접근 가능한 노드 차원의 유동적 인 포트를 제공하기 위해 노력할 것입니다.하지만 유감스럽게도 지금 직접해야합니다.

앞서 언급했듯이 다른 유창한 에이전트를 응용 프로그램 창의 사이드카 컨테이너로 배포하고 수동으로 구성하는 것이 더 쉽습니다 (here is an example how to do it with least efforts). 이 경우 localhost을 사용하여 GCE에있는 것처럼 에이전트에 액세스 할 수 있습니다.

+0

Stackdriver가 stdout에서 예외 읽기를 지원할 때를 알고 있습니까? 나는 http : // stackoverflow에서 물었다.그/나/질문/43451973/google 컨테이너 엔진 로깅 - 투 - 스택 오류 - 오류보고 그것은 이미 작동해야 문서에서 봤지만, 나에게 유감스럽게도 작동하지 않습니다 – nambrot

+0

fludd는 INFO로 stdout의 심각도를 할당합니까? ? 오류보고는 ERROR 이상을 찾습니다. –

0

이 질문에 대답은 Fluentd에 구성에 대해 도움이 될

(아직 공식적으로보고 스택 드라이버 오류에 의해 지원되지 않습니다) : 당신은 Node.js를를 사용하는 것 때문에, 또한 How to setup error reporting in Stackdriver from kubernetes pods?

그러나 로깅을 통해 오류를 보내지 않고 오류보고 보고서 API에 직접 전송하는 https://github.com/GoogleCloudPlatform/cloud-errors-nodejs을 직접 사용하는 것이 좋습니다.