# YAML configuration

![](https://static.scarf.sh/a.png?x-pxid=864c6f0e-8977-4838-8772-84416943548e)

## Before you get started

Fluent Bit traditionally offered a `classic` configuration mode, a custom configuration format that's phasing out. While `classic` mode has served well for many years, it has several limitations. Its basic design only supports grouping sections with key-value pairs and lacks the ability to handle sub-sections or complex data structures like lists.

YAML has become essential in a cloud ecosystem. To minimize friction and provide a more intuitive experience for creating data pipelines, users are encouraged to transition to YAML. The YAML format enables features, such as processors, that aren't possible to configure in `classic` mode.

As of Fluent Bit v3.2, you can configure everything in YAML.

## List of available sections

Configuring Fluent Bit with YAML introduces the following root-level sections:

| Section Name        | Description                                                                                                                                                                                                                                  |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `service`           | Describes the global configuration for the Fluent Bit service. Optional. If not set, default values will apply. Only one `service` section can be defined.                                                                                   |
| `parsers`           | Lists parsers to be used by components like inputs, processors, filters, or output plugins. You can define multiple `parsers` sections, which can also be loaded from external files included in the main YAML configuration.                |
| `multiline_parsers` | Lists multiline parsers, functioning similarly to `parsers`. Multiple definitions can exist either in the root or in included files.                                                                                                         |
| `pipeline`          | Defines a pipeline composed of inputs, processors, filters, and output plugins. You can define multiple `pipeline` sections, but they won't operate independently. Instead, all components will be merged into a single pipeline internally. |
| `plugins`           | Specifies the path to external plugins (`.so` files) to be loaded by Fluent Bit at runtime.                                                                                                                                                  |
| `upstream_servers`  | Refers to a group of node endpoints that can be referenced by output plugins that support this feature.                                                                                                                                      |
| `env`               | Sets a list of environment variables for Fluent Bit. System environment variables are available, while the ones defined in the configuration apply only to Fluent Bit.                                                                       |

## Section documentation

To access detailed configuration guides for each section, use the following links:

* [Service Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/service-section.md)
  * Overview of global settings, configuration options, and examples.
* [Parsers Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/parsers-section.md)
  * Detailed guide on defining parsers and supported formats.
* [Multiline Parsers Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/multiline-parsers-section.md)
  * Explanation of multiline parsing configuration.
* [Pipeline Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/pipeline-section.md)
  * Details on setting up pipelines and using processors.
* [Plugins Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/plugins-section.md)
  * How to load external plugins.
* [Upstream Servers Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/upstream-servers-section.md)
  * Guide on setting up and using upstream nodes with supported plugins.
* [Environment Variables Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/environment-variables-section.md)
  * Information on setting environment variables and their scope within Fluent Bit.
* [Includes Section documentation](/manual/4.0/administration/configuring-fluent-bit/yaml/includes-section.md)
  * Description on how to include external YAML files.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fluentbit.io/manual/4.0/administration/configuring-fluent-bit/yaml.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
