From b9209c47bf185d14d983664270b8d95aee65d125 Mon Sep 17 00:00:00 2001 From: Steve Wilkerson <wilkers.steve@gmail.com> Date: Fri, 15 Jun 2018 15:00:40 -0500 Subject: [PATCH] Add fluentbit sidecars to ceph mon and ceph osd charts This adds fluentbit sidecar containers to the ceph mon and ceph osd charts, allowing for the gathering of ceph logs that arent sent to stdout and stderr. This sidecar container mounts a shared directory on /var/log/ceph, and fluentbit is configured to tail the log files in this directory and tag the event messages appropriately before forwarding them to fluentd. This behavior can be toggled on or off via values, and its proposed to be disabled by default Change-Id: Ia2c944a68f9e7d831ac0fe11ed09468d0dc9ce71 --- .../bin/mon/_fluentbit-sidecar.sh.tpl | 19 +++++++ ceph-mon/templates/configmap-bin.yaml | 4 ++ ceph-mon/templates/configmap-etc.yaml | 15 ++++- ceph-mon/templates/daemonset-mon.yaml | 26 +++++++++ .../templates/utils/_to_fluentbit_conf.tpl | 38 +++++++++++++ ceph-mon/values.yaml | 55 +++++++++++++++++++ .../bin/osd/_fluentbit-sidecar.sh.tpl | 20 +++++++ ceph-osd/templates/configmap-bin.yaml | 4 ++ ceph-osd/templates/configmap-etc.yaml | 15 ++++- ceph-osd/templates/daemonset-osd.yaml | 29 +++++++++- .../utils/_osd_daemonset_overrides.tpl | 17 ++++-- .../templates/utils/_to_fluentbit_conf.tpl | 38 +++++++++++++ ceph-osd/values.yaml | 55 +++++++++++++++++++ .../armada/multinode/armada-ceph.yaml | 10 ++++ 14 files changed, 337 insertions(+), 8 deletions(-) create mode 100644 ceph-mon/templates/bin/mon/_fluentbit-sidecar.sh.tpl create mode 100644 ceph-mon/templates/utils/_to_fluentbit_conf.tpl create mode 100644 ceph-osd/templates/bin/osd/_fluentbit-sidecar.sh.tpl create mode 100644 ceph-osd/templates/utils/_to_fluentbit_conf.tpl diff --git a/ceph-mon/templates/bin/mon/_fluentbit-sidecar.sh.tpl b/ceph-mon/templates/bin/mon/_fluentbit-sidecar.sh.tpl new file mode 100644 index 0000000000..f72e41de16 --- /dev/null +++ b/ceph-mon/templates/bin/mon/_fluentbit-sidecar.sh.tpl @@ -0,0 +1,19 @@ +#!/bin/sh +{{/* +Copyright 2017 The Openstack-Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} +set -ex + +exec /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf diff --git a/ceph-mon/templates/configmap-bin.yaml b/ceph-mon/templates/configmap-bin.yaml index d13967a549..e9945bf580 100644 --- a/ceph-mon/templates/configmap-bin.yaml +++ b/ceph-mon/templates/configmap-bin.yaml @@ -54,4 +54,8 @@ data: moncheck-reap-zombies.py: | {{ tuple "bin/moncheck/_reap-zombies.py.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} +{{ if .Values.logging.fluentd }} + fluentbit-sidecar.sh: | +{{ tuple "bin/mon/_fluentbit-sidecar.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} +{{ end }} {{- end }} diff --git a/ceph-mon/templates/configmap-etc.yaml b/ceph-mon/templates/configmap-etc.yaml index f6030ac6a3..9fdee20389 100644 --- a/ceph-mon/templates/configmap-etc.yaml +++ b/ceph-mon/templates/configmap-etc.yaml @@ -38,6 +38,14 @@ limitations under the License. {{- .Values.network.public | set .Values.conf.ceph.osd "public_network" | quote | trunc 0 -}} {{- end -}} +{{- if not (has "fluentd_output" .Values.conf.fluentbit) -}} +{{- $fluentd_host := tuple "fluentd" "internal" $envAll | include "helm-toolkit.endpoints.hostname_namespaced_endpoint_lookup" }} +{{- $fluentd_port := tuple "fluentd" "internal" "service" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }} +{{- $fluentd_output := dict "header" "output" "Name" "forward" "Match" "*" "Host" $fluentd_host "Port" $fluentd_port -}} +{{- $_ := set .Values "__fluentbit_config" ( list $fluentd_output) -}} +{{- $__fluentbit_config := append .Values.conf.fluentbit .Values.__fluentbit_config -}} +{{- $_ := set .Values.conf "fluentbit" $__fluentbit_config -}} +{{- end -}} --- apiVersion: v1 kind: ConfigMap @@ -46,7 +54,12 @@ metadata: data: ceph.conf: | {{ include "helm-toolkit.utils.to_ini" .Values.conf.ceph | indent 4 }} - +{{ if .Values.logging.fluentd }} + fluent-bit.conf: | +{{ include "ceph-mon.utils.to_fluentbit_conf" .Values.conf.fluentbit | indent 4 }} + parsers.conf: | +{{ include "ceph-mon.utils.to_fluentbit_conf" .Values.conf.parsers | indent 4 }} +{{ end }} {{- end }} {{- end }} {{- end }} diff --git a/ceph-mon/templates/daemonset-mon.yaml b/ceph-mon/templates/daemonset-mon.yaml index 17d0cbb54f..4ed84c1516 100644 --- a/ceph-mon/templates/daemonset-mon.yaml +++ b/ceph-mon/templates/daemonset-mon.yaml @@ -179,7 +179,33 @@ spec: - name: pod-run mountPath: /run readOnly: false + - name: varlog + mountPath: /var/log/ceph + {{ if .Values.logging.fluentd }} + - name: fluentbit-sidecar +{{ tuple $envAll "fluentbit" | include "helm-toolkit.snippets.image" | indent 10 }} +{{ tuple $envAll $envAll.Values.pod.resources.fluentbit | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} + command: + - /tmp/fluentbit-sidecar.sh + volumeMounts: + - name: ceph-mon-bin + mountPath: /tmp/fluentbit-sidecar.sh + subPath: fluentbit-sidecar.sh + readOnly: true + - name: varlog + mountPath: /var/log/ceph + - name: ceph-mon-etc + mountPath: /fluent-bit/etc/fluent-bit.conf + subPath: fluent-bit.conf + readOnly: true + - name: ceph-mon-etc + mountPath: /fluent-bit/etc/parsers.conf + subPath: parsers.conf + readOnly: true + {{ end }} volumes: + - name: varlog + emptyDir: {} - name: ceph-mon-bin configMap: name: ceph-mon-bin diff --git a/ceph-mon/templates/utils/_to_fluentbit_conf.tpl b/ceph-mon/templates/utils/_to_fluentbit_conf.tpl new file mode 100644 index 0000000000..773120488b --- /dev/null +++ b/ceph-mon/templates/utils/_to_fluentbit_conf.tpl @@ -0,0 +1,38 @@ +{{/* +Copyright 2017 The Openstack-Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +# This function generates fluentbit configuration files with entries in the +# ceph-mon values.yaml. It results in a configuration section with the +# following format (for as many key/value pairs defined in values for a section): +# [HEADER] +# key value +# key value +# key value +# The configuration schema can be found here: +# http://fluentbit.io/documentation/0.12/configuration/schema.html + +{{- define "ceph-mon.utils.to_fluentbit_conf" -}} +{{- range $values := . -}} +{{- range $section := . -}} +{{- $header := pick . "header" -}} +{{- $config := omit . "header" }} +[{{$header.header | upper }}] +{{range $key, $value := $config -}} +{{ $key | indent 4 }} {{ $value }} +{{end -}} +{{- end -}} +{{- end -}} +{{- end -}} diff --git a/ceph-mon/values.yaml b/ceph-mon/values.yaml index f5162a3c35..899b90dcc3 100644 --- a/ceph-mon/values.yaml +++ b/ceph-mon/values.yaml @@ -23,6 +23,7 @@ images: ceph_config_helper: 'docker.io/port/ceph-config-helper:v1.10.3' ceph_mon: 'docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04' ceph_mon_check: 'docker.io/port/ceph-config-helper:v1.10.3' + fluentbit: docker.io/fluent/fluent-bit:0.12.14 dep_check: 'quay.io/stackanetes/kubernetes-entrypoint:v0.3.1' image_repo_sync: docker.io/docker:17.07.0 local_registry: @@ -65,6 +66,13 @@ pod: limits: memory: "50Mi" cpu: "500m" + fluentbit: + requests: + memory: "5Mi" + cpu: "250m" + limits: + memory: "50Mi" + cpu: "500m" jobs: bootstrap: limits: @@ -151,6 +159,37 @@ conf: storage: mon: directory: /var/lib/openstack-helm/ceph/mon + fluentbit: + - service: + header: service + Flush: 30 + Daemon: Off + Log_Level: info + Parsers_File: parsers.conf + - ceph_tail: + # NOTE(srwilkers): Despite being exposed, these values should not be + # modified, as the ceph-mon logs are always placed here + header: input + Name: tail + Tag: ceph-mon.* + Path: /var/log/ceph/*.log + Parser: syslog + DB: /var/log/ceph/ceph.db + Mem_Buf_Limit: 5MB + Refresh_Interval: 10s + parsers: + - syslog: + header: parser + Name: syslog + Format: regex + Regex: '^(?<time>.*[0-9]{2}:[0-9]{2}:[0-9]{2}) (?<host>[^ ]*) (?<app>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? (?<log>.+)$' + Time_Key: time + Time_Format: "%Y-%m-%dT%H:%M:%S.%L" + Time_Keep: On + Types: "pid:integer" + +logging: + fluentd: false dependencies: dynamic: @@ -250,6 +289,22 @@ endpoints: port: mon: default: 6789 + fluentd: + namespace: null + name: fluentd + hosts: + default: fluentd-logging + host_fqdn_override: + default: null + path: + default: null + scheme: + default: http + port: + service: + default: 24224 + metrics: + default: 24220 manifests: configmap_bin: true diff --git a/ceph-osd/templates/bin/osd/_fluentbit-sidecar.sh.tpl b/ceph-osd/templates/bin/osd/_fluentbit-sidecar.sh.tpl new file mode 100644 index 0000000000..1435938277 --- /dev/null +++ b/ceph-osd/templates/bin/osd/_fluentbit-sidecar.sh.tpl @@ -0,0 +1,20 @@ +#!/bin/sh +{{/* +Copyright 2017 The Openstack-Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +set -ex + +exec /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf diff --git a/ceph-osd/templates/configmap-bin.yaml b/ceph-osd/templates/configmap-bin.yaml index c2f44e9a5b..d17a6e872a 100644 --- a/ceph-osd/templates/configmap-bin.yaml +++ b/ceph-osd/templates/configmap-bin.yaml @@ -40,4 +40,8 @@ data: {{ tuple "bin/osd/_stop.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} init-dirs.sh: | {{ tuple "bin/_init-dirs.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} +{{ if .Values.logging.fluentd }} + fluentbit-sidecar.sh: | +{{ tuple "bin/osd/_fluentbit-sidecar.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} +{{ end }} {{- end }} diff --git a/ceph-osd/templates/configmap-etc.yaml b/ceph-osd/templates/configmap-etc.yaml index 60f043988a..fb7d2b8fb6 100644 --- a/ceph-osd/templates/configmap-etc.yaml +++ b/ceph-osd/templates/configmap-etc.yaml @@ -36,6 +36,14 @@ limitations under the License. {{- .Values.network.public | set .Values.conf.ceph.osd "public_network" | quote | trunc 0 -}} {{- end -}} +{{- if not (has "fluentd_output" .Values.conf.fluentbit) -}} +{{- $fluentd_host := tuple "fluentd" "internal" $envAll | include "helm-toolkit.endpoints.hostname_namespaced_endpoint_lookup" }} +{{- $fluentd_port := tuple "fluentd" "internal" "service" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }} +{{- $fluentd_output := dict "header" "output" "Name" "forward" "Match" "*" "Host" $fluentd_host "Port" $fluentd_port -}} +{{- $_ := set .Values "__fluentbit_config" ( list $fluentd_output) -}} +{{- $__fluentbit_config := append .Values.conf.fluentbit .Values.__fluentbit_config -}} +{{- $_ := set .Values.conf "fluentbit" $__fluentbit_config -}} +{{- end -}} --- apiVersion: v1 kind: ConfigMap @@ -44,7 +52,12 @@ metadata: data: ceph.conf: | {{ include "helm-toolkit.utils.to_ini" .Values.conf.ceph | indent 4 }} - +{{ if .Values.logging.fluentd }} + fluent-bit.conf: | +{{ include "ceph-osd.utils.to_fluentbit_conf" .Values.conf.fluentbit | indent 4 }} + parsers.conf: | +{{ include "ceph-osd.utils.to_fluentbit_conf" .Values.conf.parsers | indent 4 }} +{{ end }} {{- end }} {{- end }} {{- if .Values.manifests.configmap_etc }} diff --git a/ceph-osd/templates/daemonset-osd.yaml b/ceph-osd/templates/daemonset-osd.yaml index 44eae7dafa..6e07d813f8 100644 --- a/ceph-osd/templates/daemonset-osd.yaml +++ b/ceph-osd/templates/daemonset-osd.yaml @@ -75,7 +75,8 @@ spec: privileged: true env: # NOTE(portdirect): These environment variables will be populated - # dynamicly at the point of render. + # dynamicly at the point of render and added to all containers in the + # pod # - name: JOURNAL_LOCATION # value: /var/lib/openstack-helm/ceph/osd/journal-one # - name: STORAGE_LOCATION @@ -210,6 +211,30 @@ spec: - name: journal mountPath: /var/lib/ceph/journal readOnly: false + - name: varlog + mountPath: /var/log/ceph + {{ if .Values.logging.fluentd }} + - name: fluentbit-sidecar +{{ tuple $envAll "fluentbit" | include "helm-toolkit.snippets.image" | indent 10 }} +{{ tuple $envAll $envAll.Values.pod.resources.fluentbit | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} + command: + - /tmp/fluentbit-sidecar.sh + volumeMounts: + - name: ceph-osd-bin + mountPath: /tmp/fluentbit-sidecar.sh + subPath: fluentbit-sidecar.sh + readOnly: true + - name: varlog + mountPath: /var/log/ceph + - name: ceph-osd-etc + mountPath: /fluent-bit/etc/fluent-bit.conf + subPath: fluent-bit.conf + readOnly: true + - name: ceph-osd-etc + mountPath: /fluent-bit/etc/parsers.conf + subPath: parsers.conf + readOnly: true + {{ end }} volumes: - name: devices hostPath: @@ -219,6 +244,8 @@ spec: path: /run/lvm - name: pod-var-lib-ceph emptyDir: {} + - name: varlog + emptyDir: {} - name: pod-run emptyDir: medium: "Memory" diff --git a/ceph-osd/templates/utils/_osd_daemonset_overrides.tpl b/ceph-osd/templates/utils/_osd_daemonset_overrides.tpl index 2247283dc1..05d6049a60 100644 --- a/ceph-osd/templates/utils/_osd_daemonset_overrides.tpl +++ b/ceph-osd/templates/utils/_osd_daemonset_overrides.tpl @@ -217,12 +217,16 @@ limitations under the License. {{- if not $context.Values.__daemonset_yaml.metadata.name }}{{- $_ := set $context.Values.__daemonset_yaml.metadata "name" dict }}{{- end }} {{- $_ := set $context.Values.__daemonset_yaml.metadata "name" $current_dict.dns_1123_name }} - {{/* set container name - assume not more than one container is defined */}} - {{- $container := first $context.Values.__daemonset_yaml.spec.template.spec.containers }} + {{/* set container names and add to the list of containers for the pod */}} + {{- $_ := set $context.Values "__containers_list" ( list ) }} + {{- range $container := $context.Values.__daemonset_yaml.spec.template.spec.containers }} + {{- if eq $container.name "osd-pod" }} {{- $_ := set $container "name" $current_dict.dns_1123_name }} - {{- $cont_list := list $container }} - {{- $_ := set $context.Values.__daemonset_yaml.spec.template.spec "containers" $cont_list }} + {{- end }} + {{- $__containers_list := append $context.Values.__containers_list $container }} + {{- $_ := set $context.Values "__containers_list" $__containers_list }} + {{- end }} + {{- $_ := set $context.Values.__daemonset_yaml.spec.template.spec "containers" $context.Values.__containers_list }} {{/* cross-reference configmap name to container volume definitions */}} {{- $_ := set $context.Values "__volume_list" list }} @@ -310,6 +314,9 @@ limitations under the License. {{- $_ := set $context.Values "__tmpYAMLcontainers" list }} {{- range $podContainer := $context.Values.__daemonset_yaml.spec.template.spec.containers }} {{- $_ := set $context.Values "_tmpYAMLcontainer" $podContainer }} + {{- if empty $context.Values._tmpYAMLcontainer.env }} + {{- $_ := set $context.Values._tmpYAMLcontainer "env" ( list ) }} + {{- end }} {{ $containerEnv := prepend (prepend (prepend ( prepend (index $context.Values._tmpYAMLcontainer "env") (dict "name" "STORAGE_TYPE" "value" $v.data.type)) (dict "name" "JOURNAL_TYPE" "value" $v.journal.type)) (dict "name" "STORAGE_LOCATION" "value" $v.data.location)) (dict "name" "JOURNAL_LOCATION" "value" $v.journal.location) }} {{- $localInitContainerEnv := omit $context.Values._tmpYAMLcontainer "env" }} {{- $_ := set $localInitContainerEnv "env" $containerEnv }} diff --git a/ceph-osd/templates/utils/_to_fluentbit_conf.tpl b/ceph-osd/templates/utils/_to_fluentbit_conf.tpl new file mode 100644 index 0000000000..a8769be5d3 --- /dev/null +++ b/ceph-osd/templates/utils/_to_fluentbit_conf.tpl @@ -0,0 +1,38 @@ +{{/* +Copyright 2017 The Openstack-Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +# This function generates fluentbit configuration files with entries in the +# ceph-osd values.yaml. It results in a configuration section with the +# following format (for as many key/value pairs defined in values for a section): +# [HEADER] +# key value +# key value +# key value +# The configuration schema can be found here: +# http://fluentbit.io/documentation/0.12/configuration/schema.html + +{{- define "ceph-osd.utils.to_fluentbit_conf" -}} +{{- range $values := . -}} +{{- range $section := . -}} +{{- $header := pick . "header" -}} +{{- $config := omit . "header" }} +[{{$header.header | upper }}] +{{range $key, $value := $config -}} +{{ $key | indent 4 }} {{ $value }} +{{end -}} +{{- end -}} +{{- end -}} +{{- end -}} diff --git a/ceph-osd/values.yaml b/ceph-osd/values.yaml index 63016f0e22..c922076fc0 100644 --- a/ceph-osd/values.yaml +++ b/ceph-osd/values.yaml @@ -17,6 +17,7 @@ images: tags: ceph_osd: 'docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04' ceph_bootstrap: 'docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04' + fluentbit: docker.io/fluent/fluent-bit:0.12.14 dep_check: 'quay.io/stackanetes/kubernetes-entrypoint:v0.3.1' image_repo_sync: docker.io/docker:17.07.0 local_registry: @@ -50,6 +51,13 @@ pod: limits: memory: "1024Mi" cpu: "1000m" + fluentbit: + requests: + memory: "5Mi" + cpu: "250m" + limits: + memory: "50Mi" + cpu: "500m" jobs: image_repo_sync: requests: @@ -122,6 +130,37 @@ conf: # journal: # type: directory # location: /var/lib/openstack-helm/ceph/osd/journal-three + fluentbit: + - service: + header: service + Flush: 30 + Daemon: Off + Log_Level: info + Parsers_File: parsers.conf + - ceph_tail: + # NOTE(srwilkers): Despite being exposed, these values should not be + # modified, as the ceph-osd logs are always placed here + header: input + Name: tail + Tag: ceph-osd.* + Path: /var/log/ceph/ceph-osd.**.log + Parser: syslog + DB: /var/log/ceph/ceph-osd.db + Mem_Buf_Limit: 5MB + Refresh_Interval: 10s + parsers: + - syslog: + header: parser + Name: syslog + Format: regex + Regex: '^(?<time>.*[0-9]{2}:[0-9]{2}:[0-9]{2}) (?<host>[^ ]*) (?<app>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? (?<log>.+)$' + Time_Key: time + Time_Format: "%Y-%m-%dT%H:%M:%S.%L" + Time_Keep: On + Types: "pid:integer" + +logging: + fluentd: false dependencies: dynamic: @@ -182,6 +221,22 @@ endpoints: port: mon: default: 6789 + fluentd: + namespace: null + name: fluentd + hosts: + default: fluentd-logging + host_fqdn_override: + default: null + path: + default: null + scheme: + default: http + port: + service: + default: 24224 + metrics: + default: 24220 manifests: configmap_bin: true diff --git a/tools/deployment/armada/multinode/armada-ceph.yaml b/tools/deployment/armada/multinode/armada-ceph.yaml index 62a68115c0..b9da6e5faf 100644 --- a/tools/deployment/armada/multinode/armada-ceph.yaml +++ b/tools/deployment/armada/multinode/armada-ceph.yaml @@ -73,6 +73,8 @@ data: namespace: ceph ceph_mon: namespace: ceph + fluentd: + namespace: osh-infra network: public: ${CEPH_NETWORK} cluster: ${CEPH_NETWORK} @@ -109,6 +111,9 @@ data: journal: type: directory location: /var/lib/openstack-helm/ceph/osd/journal-one + logging: + fluentd: + enabled: true source: type: local location: ${OSH_PATH} @@ -141,6 +146,8 @@ data: namespace: ceph ceph_mon: namespace: ceph + fluentd: + namespace: osh-infra network: public: ${CEPH_NETWORK} cluster: ${CEPH_NETWORK} @@ -177,6 +184,9 @@ data: journal: type: directory location: /var/lib/openstack-helm/ceph/osd/journal-one + logging: + fluentd: + enabled: true source: type: local location: ${OSH_PATH}