Обеспечение доступа к журналам для Stackdriver из настраиваемого контейнера докеров Kubernetes под управлением Apache и PHP-FPM

Мы запускаем небольшой тестовый кластер настраиваемых модулей Kubernetes в облаке Google, внутри которых работают Apache и PHP-FPM.

Кластер имеет следующую ключевую конфигурацию:

  • Мастер версия: 1.10.6-гке.2
  • Возможности Kubernetes alpha: отключены
  • Общий размер: 3
  • Ведение журнала StackDriver: включено
  • StackDriver Monitoring: включен

После создания кластера kubectl get pods --all-namespaces показывает службы fluentd и heapster, работающие вместе с нашими службами, как я и ожидал.

kube-system   event-exporter-v0.2.1-5f5b89fcc8-r89d5                           2/2       Running   0          13d
kube-system   fluentd-gcp-scaler-7c5db745fc-gbrqx                              1/1       Running   0          21d
kube-system   fluentd-gcp-v3.1.0-76mr4                                         2/2       Running   0          13d
kube-system   fluentd-gcp-v3.1.0-kl4xp                                         2/2       Running   0          13d
kube-system   fluentd-gcp-v3.1.0-vxsq5                                         2/2       Running   0          13d
kube-system   heapster-v1.5.3-95c7549b8-fdlmm                                  3/3       Running   0          13d
kube-system   kube-dns-788979dc8f-c9v2d                                        4/4       Running   0          99d
kube-system   kube-dns-788979dc8f-rqp7d                                        4/4       Running   0          99d
kube-system   kube-dns-autoscaler-79b4b844b9-zjtwk                             1/1       Running   0          99d

Мы можем получить журнал из кода нашего приложения (который выполняется внутри наших модулей), чтобы он отображался в Stackdriver Logging, но мы хотим агрегировать журнал для Apache (/ var / log / httpd / access_log и error_log) и PHP-FPM в Stackdriver. также.

Эта страница из Документов Google подразумевает, что это должно быть включено по умолчанию. https://cloud.google.com/kubernetes-engine/docs/how-to/logging

Примечание. Ведение журнала Stackdriver включается по умолчанию при создании нового кластера с помощью инструмента командной строки gcloud или консоли Google Cloud Platform.

Однако для нас это явно не так. Мы пробовали несколько разных подходов, чтобы заставить это работать (перечислены ниже), но безуспешно.

Включая:

Не казалось, что этот шаг должен быть обязательным, поскольку документация подразумевает, что вам нужно сделать это только на экземпляре виртуальной машины, но мы все равно попробовали это на наших модулях k8s. В рамках этого шага мы убедились, что в Apache включен mod_status (/ server-status), а в PHP-FPM включен / fpm-status, а затем установили модуль Apache plugin, следуя документации.

Кажется, это должно быть несложно, но мы явно что-то упустили. Любая помощь будет очень признательна.

Ура, Джулиан Кон


person Jules Cone    schedule 18.10.2018    source источник
comment
Вы пробовали использовать драйвер Google Cloud Logging для Docker? Это руководство показывает, как использовать драйвер ведения журналов Google Cloud для загрузки журналов из ваших контейнеров Docker в Stackdriver Logging.   -  person Digil    schedule 19.10.2018
comment
Спасибо Digil, это кажется полезным. Не знаю, как мы не нашли эту страницу в документации Google. Я расскажу об этом и расскажу, как у меня дела.   -  person Jules Cone    schedule 19.10.2018