Description of problem: The openshift master/nodes' default log driver is now journald along with the fix of https://bugzilla.redhat.com/show_bug.cgi?id=1388191, but fluentd didn't overwrite the default value of USE_JOURNAL=false after detecting whether or not Docker is using the journald log driver. Another approach is to adjust the default value of openshift_logging_fluentd_use_journal to true, which is identical to openshift master/nodes. Version-Release number of selected component (if applicable): ops registry: logging-fluentd 3.5.0 47057624ecab # openshift version openshift v3.5.0.17+c55cf2b kubernetes v1.5.2+43a9be4 etcd 3.1.0 How reproducible: Always Steps to Reproduce: 1.Launch openshift env and make sure the log driver of master/nodes are default to journald 2.Deploy logging 3.5.0 stacks by executing ansible scripts, without value openshift_logging_fluentd_use_journal specified (should be default to false) 3.After fluentd is running, check env USE_JOURNAL Actual results: USE_JOURNAL=false Expected results: USE_JOURNAL=true Additional info:
Hmm - If there is a bug here, it is that USE_JOURNAL always has a value, and the default value is false. The way the logic in fluentd run.sh works is that it will autodetect what docker is using _if USE_JOURNAL is not set at all_. However, the fluentd.yaml template has this: env: - name: "USE_JOURNAL" value: ${USE_JOURNAL} ... parameters: - description: "Use the journal as input for system logs" name: USE_JOURNAL value: "false" And we run the deployer like this: use_journal=${input_vars[use-journal]:-} ... create_template_optional_nodeselector "${input_vars[fluentd-nodeselector]}" fluentd \ --param USE_JOURNAL=${use_journal} \ I'm not sure how this works if use_journal is unset in the env or configmap. Will this pass an empty value to the template, which will will cause env. USE_JOURNAL to be an empty value in the fluentd pod? If so, then the answer is this: If you want fluentd to autodetect if docker is using journal, make sure use_journal/USE_JOURNAL is unset.
Fixed to default to empty spaces so it is consistent with the deployer and forces fluentd to evaluate the log driver: https://github.com/openshift/openshift-ansible/pull/3293
Commits pushed to master at https://github.com/openshift/openshift-ansible https://github.com/openshift/openshift-ansible/commit/ff02c984c4a0dcc809ec65fe5db530a3ceb81a84 fix bug 1420204. Default openshift_logging_use_journal to empty so fluentd detects and is consistent with deployer https://github.com/openshift/openshift-ansible/commit/bef3e1dc951699d769b7776129a5bd73fce2ff7c Merge pull request #3293 from jcantrill/bz_1420204_use_journal_fix fix bug 1420204. Default openshift_logging_use_journal to empty so fl…
Verified with openshift-ansible-3.5.15-1.git.0.8d2a456.el7.noarch, deployed logging on both json-file and journald log driver systems without specifying the value to openshift_logging_fluentd_use_journal, the fluentd autodetect log driver function worked fine. In the both cases can see log entries present in kiaban UI. Please feel free to transfer back to ON_QA for closure, also thanks Rich and Jeff for the explanations.
Set to verified based on comment #4.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:0903