ElasticsearchクラスターをGoogle Kubernetes Engineにデプロイしました。 PCから「kubectl logs」コマンドを使用して、特定のポッドのログを表示できます。
>kubectl logs es-data-0
...
[2018-06-18T07:35:11,220][INFO ][o.e.m.j.JvmGcMonitorService] [es-data-0] [gc][4510405] overhead, spent [290ms] collecting in the last [1s]
[2018-06-18T09:48:19,194][INFO ][o.e.m.j.JvmGcMonitorService] [es-data-0] [gc][4518376] overhead, spent [366ms] collecting in the last [1.1s]
[2018-06-18T10:01:49,344][WARN ][o.e.m.j.JvmGcMonitorService] [es-data-0] [gc][4519183] overhead, spent [641ms] collecting in the last [1s]
このチュートリアルに従って、Stackdriverロギング用のConfigMapとDaemonSetをデプロイしました: https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/
fluentdポッドが実行されています:
>kubectl get pods NAME READY STATUS RESTARTS AGE cerebro-59648dc47c-vr964 1/1 Running 0 25d es-client-7bff44b8f5-2wqcs 1/1 Running 0 12d es-client-7bff44b8f5-vnrhg 1/1 Running 0 12d es-data-0 1/1 Running 0 52d es-data-1 1/1 Running 0 52d es-data-2 1/1 Running 0 52d es-master-6bf767f949-8fpjl 1/1 Running 0 52d es-master-6bf767f949-brjpq 1/1 Running 0 52d es-master-6bf767f949-gx2jp 1/1 Running 0 52d fluentd-gcp-v2.0-7mncl 1/1 Running 0 43m fluentd-gcp-v2.0-rsfmc 1/1 Running 0 43m fluentd-gcp-v2.0-tbh9t 1/1 Running 0 43m kibana-595858b4b7-5npcr 1/1 Running 0 52d nginx-ingress-controller-86c8447687-z4rjq 1/1 Running 2 52d nginx-ingress-default-backend-6664bc64c9-q2hnm 1/1 Running 338 52d
>kubectl get ds --all-namespaces NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE default fluentd-gcp-v2.0 3 3 3 3 3 beta.kubernetes.io/fluentd-ds-ready=true 44m kube-system fluentd-gcp-v2.0.10 3 3 3 3 3 beta.kubernetes.io/fluentd-ds-ready=true 52d kube-system metadata-proxy-v0.1 0 0 0 0 0 beta.kubernetes.io/metadata-proxy-ready=true 52d kube-system nvidia-gpu-device-plugin 0 0 0 0 0 <none> 52d
ConfigMapが存在します。
>kubectl get cm
NAME DATA AGE
cerebro-configmap 1 52d
curator-config 2 6d
fluentd-gcp-config 4 47m
ingress-controller-leader-nginx 0 52d
nginx-ingress-controller 1 52d
最後に、ログビューアページに進み、「GKEコンテナ」を選択しました: https://console.cloud.google.com/logs/viewer
残念ながら、どのポッドからのログも表示されません。前述のように、「kubcetl logs」コマンドを使用すると、PCからすべてのポッドのログを表示できます。
$ kubectl logs counter#そのポッドの出力を確認できますか?
Fluentdを使用して、Kubernetes EngineのStackdriverログをカスタマイズする場合、この tutorial は、最初にクラスタサービスアカウントを作成し、必要な役割を割り当てることをお勧めします。次に、「no-enable-cloud-logging」を使用してクラスターが作成されます。そして、Fluentdデーモンセットをデプロイします。
以下のような高度なフィルターを試すと効果的です。
resource.type = "container"
resource.labels.pod_id = "es-data-0"