You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ Please see below for links and descriptions of each component:
15
15
-[controller](https://github.com/drycc/controller) - Workflow API server
16
16
-[builder](https://github.com/drycc/builder) - Git server and source-to-image component
17
17
-[imagebuilder](https://github.com/drycc/imagebuilder) - The builder for [Docker](https://www.docker.com/) and [CNCF Buildpacks](https://buildpacks.io/) based applications
18
-
-[fluentd](https://github.com/drycc/fluentd) - Backend log shipping mechanism for `drycc logs`
18
+
-[fluentbit](https://github.com/drycc/fluentbit) - Backend log shipping mechanism for `drycc logs`
19
19
-[postgres](https://github.com/drycc/postgres) - The central database
20
20
-[registry](https://github.com/drycc/registry) - The Docker registry
21
21
-[logger](https://github.com/drycc/logger) - The (in-memory) log buffer for `drycc logs`
The logging platform is made up of 2 components - [Fluentd](https://github.com/drycc/fluentd) and [Logger](https://github.com/drycc/logger).
3
+
The logging platform is made up of 2 components - [Fluentbit](https://github.com/drycc/fluentbit) and [Logger](https://github.com/drycc/logger).
4
4
5
-
[Fluentd](https://github.com/drycc/fluentd) runs on every worker node of the cluster and is deployed as a [Daemon Set](http://kubernetes.io/v1.1/docs/admin/daemons.html). The Fluentd pods capture all of the stderr and stdout streams of every container running on the host (even those not hosted directly by kubernetes). Once the log message arrives in our [custom fluentd plugin](https://github.com/drycc/fluentd/tree/main/rootfs/opt/fluentd/drycc-output) we determine where the message originated.
5
+
[Fluentbit](https://github.com/drycc/fluentbit) runs on every worker node of the cluster and is deployed as a [Daemon Set](http://kubernetes.io/v1.1/docs/admin/daemons.html). The Fluentbit pods capture all of the stderr and stdout streams of every container running on the host (even those not hosted directly by kubernetes). Once the log message arrives in our [custom fluentbit plugin](https://github.com/drycc/fluentbit/tree/main/plugin) we determine where the message originated.
6
6
7
7
If the message was from the [Workflow Controller](https://github.com/drycc/controller) or from an application deployed via workflow we send it to the logs topic on the local [Redis Stream](http://redis.io) instance.
8
8
@@ -27,9 +27,9 @@ If the `drycc logs` command encounters an error it will return the following mes
27
27
28
28
```
29
29
Error: There are currently no log messages. Please check the following things:
30
-
1) Logger and fluentd pods are running.
30
+
1) Logger and fluentbit pods are running.
31
31
2) The application is writing logs to the logger component by checking that an entry in the ring buffer was created: kubectl --namespace=drycc logs <logger pod>
32
-
3) Making sure that the container logs were mounted properly into the fluentd pod: kubectl --namespace=drycc exec <fluentd pod> ls /var/log/containers
32
+
3) Making sure that the container logs were mounted properly into the fluentbit pod: kubectl --namespace=drycc exec <fluentbit pod> ls /var/log/containers
33
33
```
34
34
35
35
## Architecture Diagram
@@ -43,78 +43,12 @@ Error: There are currently no log messages. Please check the following things:
By default the Fluentd pod can be configured to talk to numerous syslog endpoints. So for example it is possible to have Fluentd send log messages to both the Logger component and [Papertrail](https://papertrailapp.com/). This allows production deployments of Drycc to satisfy stringent logging requirements such as offsite backups of log data.
54
-
55
-
Configuring Fluentd to talk to multiple syslog endpoints means modifying the Fluentd daemonset
56
-
manifest.
57
-
This means you will need to fetch the chart with `helm fetch oci://registry.drycc.cc/charts/workflow --untar`, then
58
-
modify `workflow/charts/fluentd/templates/logger-fluentd-daemon.yaml` with the following:
59
-
60
-
```
61
-
env:
62
-
- name: "SYSLOG_HOST_1"
63
-
value: "my.syslog.host"
64
-
- name: "SYSLOG_PORT_1"
65
-
value: "5144"
66
-
....
67
-
- name: "SYSLOG_HOST_N"
68
-
value: "my.syslog.host.n"
69
-
- name: "SYSLOG_PORT_N"
70
-
value: "51333"
71
-
```
72
-
73
-
If you only need to talk to 1 Syslog endpoint you can use the following configuration within your chart:
74
-
75
-
```
76
-
env:
77
-
- name: "SYSLOG_HOST"
78
-
value: "my.syslog.host"
79
-
- name: "SYSLOG_PORT"
80
-
value: "5144"
81
-
```
82
-
83
-
Then run `helm install ./workflow --namespace drycc` to install the modified chart.
84
-
85
-
### Customizing:
86
-
87
-
We currently support logging information to Syslog, Elastic Search, and Sumo Logic. However, we will gladly accept pull requests that add support to other locations. For more information please visit the [fluentd repository](https://github.com/drycc/fluentd).
88
-
89
-
90
-
### Custom Fluentd Plugins
91
-
92
-
That are many output plugins available for [Fluentd](https://github.com/search?q=fluentd+output&ref=opensearch). But, we purposefully do not ship our Fluentd image with these installed. Instead, we provide a mechanism that allows users to install a plugin at startup time of the container and configure it.
93
-
94
-
If you would like to install a plugin you can set an environment variable such as the following: `FLUENTD_PLUGIN_N=some-fluentd-plugin` where N is a positive integer that is incremented for every plugin you wish to install. After you set this value you must then set the configuration text for the `FILTER` or `STORE` plugin you are installing. You can do that by setting `CUSTOM_STORE_N=configuration text` where N is the corresponding index value of the plugin you just installed.
95
-
96
-
Here is an example of setting the values directly in the manifest of the daemonset.
97
-
98
-
```
99
-
env:
100
-
- name: "FLUENTD_PLUGIN_1"
101
-
value: "fluent-plugin-kafka"
102
-
- name: "CUSTOM_STORE_1"
103
-
value: |
104
-
<store>
105
-
@type kafka \
106
-
default_topic some_topic
107
-
</store>
108
-
```
109
-
110
-
Or you could configure it using the `daemonEnvironment` key in the `values.yaml`:
For more information please see the [Custom Plugins](https://github.com/drycc/fluentd#custom-plugins) section of the README.
53
+
Fluent Bit is based in a pluggable architecture where different plugins plays a major role in the data pipeline, more than 70 built-in plugins available.
54
+
Please refer to charts [values.yaml](https://github.com/drycc/fluentbit/blob/main/charts/fluentbit/values.yaml) for specific configurations.
output.disableDrycc | false | Disable the Drycc output plugin
134
-
boot.installBuildTools | false | Install the build tools package. This is useful when using custom plugins
135
-
daemonEnvironment | | Takes key-value pairs and turns them into environment variables.
136
-
137
-
For more information about the various environment variables that can be set please see the [README](https://github.com/drycc/fluentd/blob/main/README.md)
118
+
## Customizing Fluentbit
119
+
120
+
The following values can be changed in the `values.yaml` file or by using the `--values` flag with the Helm CLI.
0 commit comments