基本思想是啓動一個單獨的窗格,通過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