9

私はkubernetesでエラー報告を設定する方法を混乱させるので、Google Cloud Console/Stackdriverの「エラー報告」にエラーが表示されますか?kubernetesポッドからStackdriverのエラー報告を設定するには?

ドキュメントによると、 https://cloud.google.com/error-reporting/docs/setting-up-on-compute-engine 私たちはfluentdの "forward input plugin"を有効にして、アプリケーションから例外データを送信する必要があります。このアプローチは、私たち自身が流暢に設定していればうまくいくと思いますが、gcr.io/google_containers/fluentd-gcpドッカーイメージを実行するポッドのすべてのノードにあらかじめインストールされています。

これらのポッドでフォワード入力を有効にするにはどうしたらいいですか?httpポートはノード上のすべてのポッドで使用できることを確認してください。また、クラスタにノードを追加するときに、この設定がデフォルトで使用されていることを確認する必要があります。

私は間違った点からこのすべてを見ているかもしれませんが、助けていただければ幸いです。

+0

GKEまたはGCEを使用していますか? –

+1

私はStackdriver Error Reportingのプロダクトマネージャーです。現在、この機能はベータ版であり、Kubernetesを公式にサポートしていません。我々は共有するための解決策が得られたら、ここで最善の答えを出そうとします。 – Steren

+1

お返事ありがとうございます。私たちはGKEを使用しています - 私たちのJavaポッドからエラー報告をStackdriverエラー報告に送りたいと思います。 @Steren、それを楽しみにして、ありがとう。 – s3ncha

答えて

14

基本的な考え方は、TCPを介して構造化ログを受信し、それをクラウドロギングに転送する別のポッドを開始することです。これは、ローカルに稼動している流動性エージェントと同様です。私が使用した手順は以下を参照してください。

(残念ながら、ドッカーとKubernetesに内蔵されているログのサポートを使用することはできません - 。それは完全なスタックトレースを見てからエラー報告を防ぐ別のログエントリとして標準出力/標準エラー出力からのテキストのちょうど前方に個々の線)

は、次のようにDockerfileを使用してフォワーダfluentd用ドッキングウィンドウのイメージを作成します。

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> 

そして、画像の構築とプッシュ:次に

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

:あなたはまた、サービス(fluentd-forwarder-service.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-controller.yaml)が必要

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

をレプリケーションコントローラとサービスを作成します。

$ 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エージェントに接続evironment変数FLUENTD_FORWARDER_SERVICE_HOSTFLUENTD_FORWARDER_SERVICE_PORTの値を使用します。

+0

Borisにご意見ありがとうございます!それは私たちが結局結んだものです:) – s3ncha

+0

あなたは大歓迎です。期待どおりのエラーが表示されますか?もしあればフィードバックを提出してください - "!"エラー報告ページを見るとコンソールの右上にあるアイコンをクリックすると、チームはそれを直接受け取ります。ありがとう! –

+0

アプリケーションで流暢なクライアントを設定するには、次のようにします。https://cloud.google.com/error-reporting/docs/setup/ec2 – orourkedd

関連する問題