
This updates the helm tests for the fluent-logging chart to make them more robust in being able to check for indexes defined in the chart. This is done by calculating the combined flush interval for both fluentbit and fluentd, and sleeping for at least one flush cycle to ensure all functional indexes have received logged events. Then, the test determines what indexes should exist by checking all Elasticsearch output configuration entries, determining whether to use the default logstash-* index or the logstash_prefix configuration value if it exists. For each of these indexes, the test checks whether the indexes have successful hits (ie: there have been successful entries into these indexes) Change-Id: I36ed7b707491e92da6ac4b422936a1d65c92e0ac
Fluentd-logging
OpenStack-Helm defines a centralized logging mechanism to provide insight into the state of the OpenStack services and infrastructure components as well as underlying kubernetes platform. Among the requirements for a logging platform, where log data can come from and where log data need to be delivered are very variable. To support various logging scenarios, OpenStack-Helm should provide a flexible mechanism to meet with certain operation needs. This chart proposes fast and lightweight log forwarder and full featured log aggregator complementing each other providing a flexible and reliable solution. Especially, Fluent-bit is proposed as a log forwarder and Fluentd is proposed as a main log aggregator and processor.
Mechanism
Fluent-bit, Fluentd meet OpenStack-Helm's logging requirements for gathering, aggregating, and delivering of logged events. Flunt-bit runs as a daemonset on each node and mounts the /var/lib/docker/containers directory. The Docker container runtime engine directs events posted to stdout and stderr to this directory on the host. Fluent-bit then forward the contents of that directory to Fluentd. Fluentd runs as deployment at the designated nodes and expose service for Fluent-bit to foward logs. Fluentd should then apply the Logstash format to the logs. Fluentd can also write kubernetes and OpenStack metadata to the logs. Fluentd will then forward the results to Elasticsearch and to optionally kafka. Elasticsearch indexes the logs in a logstash-* index by default. kafka stores the logs in a 'logs' topic by default. Any external tool can then consume the 'logs' topic.