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

相关问题