9

我對如何在kubernetes中設置錯誤報告有點困惑,所以錯誤在Google Cloud Console/Stackdriver「錯誤報告」中可見?如何在kubernetes窗格中設置Stackdriver中的錯誤報告?

根據文檔 https://cloud.google.com/error-reporting/docs/setting-up-on-compute-engine 我們需要啓用fluentd'「正向輸入插件」,然後從我們的應用程序發送異常數據。我認爲如果我們自己設置了流暢的方法,這種方法就行得通了,但它已經預先安裝在只運行gcr.io/google_containers/fluentd-gcp docker鏡像的窗格中的每個節點上。

我們如何在這些容器上啓用前向輸入並確保節點上的每個容器都可以使用http端口?我們還需要確保在向集羣添加更多節點時默認使用此配置。

任何幫助將不勝感激,可能是我從一個錯誤的角度看這一切?

+0

你使用GKE還是GCE? –

+1

我是Stackdriver錯誤報告的產品經理。目前,該功能處於測試階段,我們尚未正式支持Kubernetes。一旦我們有共享的解決方案,我們將盡力在這裏提供我們最好的答案。 – Steren

+1

感謝您的回覆。我們使用GKE - 我們想從我們的java pod發送錯誤報告給Stackdriver錯誤報告。 @Steren,謝謝你,期待着這一點。 – s3ncha

回答

14

基本思想是啓動一個單獨的窗格,通過TCP接收結構化日誌並將其轉發到雲端日誌記錄,類似於本地運行的流利代理。請參閱下面的步驟我使用。

(不幸的是,內置於泊塢窗和Kubernetes記錄支持不能被使用 - 它只是向前個人從標準輸出/標準錯誤爲防止錯誤無法看到完整的堆棧跟蹤報告單獨的日誌條目的文本行)

的fluentd轉發器使用Dockerfile創建泊塢窗相關圖片如下:

FROM gcr.io/google_containers/fluentd-gcp:1.18 

COPY fluentd-forwarder.conf /etc/google-fluentd/google-fluentd.conf 

fluentd-forwarder.conf包含以下內容:

<source> 
    type forward 
    port 24224 
</source> 

<match **> 
    type google_cloud 
    buffer_chunk_limit 2M 
    buffer_queue_limit 24 
    flush_interval 5s 
    max_retry_wait 30 
    disable_retry_limit 
</match> 

然後建立並推動形象:

$ docker build -t gcr.io/###your project id###/fluentd-forwarder:v1 . 
$ gcloud docker push gcr.io/###your project id###/fluentd-forwarder:v1 

你需要複製控制器(fluentd-forwarder-controller.yaml):

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: fluentd-forwarder 
spec: 
    replicas: 1 
    template: 
    metadata: 
     name: fluentd-forwarder 
     labels: 
     app: fluentd-forwarder 
    spec: 
     containers: 
     - name: fluentd-forwarder 
     image: gcr.io/###your project id###/fluentd-forwarder:v1 
     env: 
     - name: FLUENTD_ARGS 
      value: -qq 
     ports: 
     - containerPort: 24224 

您還需要一個服務(fluentd-forwarder-service.yaml):

apiVersion: v1 
kind: Service 
metadata: 
    name: fluentd-forwarder 
spec: 
    selector: 
    app: fluentd-forwarder 
    ports: 
    - protocol: TCP 
    port: 24224 

然後創建複製控制器和服務:

$ kubectl create -f fluentd-forwarder-controller.yaml 
$ kubectl create -f fluentd-forwarder-service.yaml 

最後,在你的應用程序,而不是使用的「localhost」和24224爲上https://cloud.google.com/error-reporting/docs/setting-up-on-compute-engine描述連接到fluentd劑,使用環境現狀變量FLUENTD_FORWARDER_SERVICE_HOSTFLUENTD_FORWARDER_SERVICE_PORT的值。

+0

感謝您的寶貴意見!這幾乎是我們結束了:) – s3ncha

+0

不客氣。你的錯誤是否按預期顯示?如果您有任何問題,請提交反饋意見 - 使用「!」在查看錯誤報告頁面時,控制檯右上角的圖標會被直接接收。謝謝! –

+0

在應用程序中設置fluentd客戶端後可以模擬:https://cloud.google.com/error-reporting/docs/setup/ec2 – orourkedd

相關問題