基本思想是启动一个单独的窗格,通过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_HOST
和FLUENTD_FORWARDER_SERVICE_PORT
的值。
你使用GKE还是GCE? –
我是Stackdriver错误报告的产品经理。目前,该功能处于测试阶段,我们尚未正式支持Kubernetes。一旦我们有共享的解决方案,我们将尽力在这里提供我们最好的答案。 – Steren
感谢您的回复。我们使用GKE - 我们想从我们的java pod发送错误报告给Stackdriver错误报告。 @Steren,谢谢你,期待着这一点。 – s3ncha