web-dev-qa-db-ja.com

GKEにデプロイされたクラスターのStackdriver UIでポッドログを表示できない

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からすべてのポッドのログを表示できます。

2
syst0m
  • クラスタがStackdriver Logging /モニタリングが有効になっていることを確認する必要があります。
  • 上記の documentation に続いて、counterという名前のポッドが必要です。実行すると:

$ kubectl logs counter#そのポッドの出力を確認できますか?

  • Fluentdを使用して、Kubernetes EngineのStackdriverログをカスタマイズする場合、この tutorial は、最初にクラスタサービスアカウントを作成し、必要な役割を割り当てることをお勧めします。次に、「no-enable-cloud-logging」を使用してクラスターが作成されます。そして、Fluentdデーモンセットをデプロイします。

  • 以下のような高度なフィルターを試すと効果的です。

resource.type = "container"

resource.labels.pod_id = "es-data-0"

1
Asif