基本的な考え方は、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_HOST
とFLUENTD_FORWARDER_SERVICE_PORT
の値を使用します。
GKEまたはGCEを使用していますか? –
私はStackdriver Error Reportingのプロダクトマネージャーです。現在、この機能はベータ版であり、Kubernetesを公式にサポートしていません。我々は共有するための解決策が得られたら、ここで最善の答えを出そうとします。 – Steren
お返事ありがとうございます。私たちはGKEを使用しています - 私たちのJavaポッドからエラー報告をStackdriverエラー報告に送りたいと思います。 @Steren、それを楽しみにして、ありがとう。 – s3ncha