# Default values for fluent-bit. # kind -- DaemonSet or Deployment kind: DaemonSet # replicaCount -- Only applicable if kind=Deployment replicaCount: 1 image: repository: fluent/fluent-bit # Overrides the image tag whose default is {{ .Chart.AppVersion }} tag: "" pullPolicy: Always testFramework: enabled: false image: repository: busybox pullPolicy: Always tag: latest imagePullSecrets: [] nameOverride: "" fullnameOverride: "" serviceAccount: create: true annotations: {} name: rbac: create: true nodeAccess: false podSecurityPolicy: create: false annotations: {} podSecurityContext: {} # fsGroup: 2000 hostNetwork: false dnsPolicy: ClusterFirst dnsConfig: {} # nameservers: # - 1.2.3.4 # searches: # - ns1.svc.cluster-domain.example # - my.dns.search.suffix # options: # - name: ndots # value: "2" # - name: edns0 hostAliases: [] # - ip: "1.2.3.4" # hostnames: # - "foo.local" # - "bar.local" securityContext: {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 service: type: ClusterIP port: 2020 labels: {} # nodePort: 30020 annotations: {} # prometheus.io/path: "/api/v1/metrics/prometheus" # prometheus.io/port: "2020" # prometheus.io/scrape: "true" serviceMonitor: enabled: false # namespace: monitoring # interval: 10s # scrapeTimeout: 10s # selector: # prometheus: my-prometheus prometheusRule: enabled: false # namespace: "" # additionnalLabels: {} # rules: # - alert: NoOutputBytesProcessed # expr: rate(fluentbit_output_proc_bytes_total[5m]) == 0 # annotations: # message: | # Fluent Bit instance {{ $labels.instance }}'s output plugin {{ $labels.name }} has not processed any # bytes for at least 15 minutes. # summary: No Output Bytes Processed # for: 15m # labels: # severity: critical dashboards: enabled: false labelKey: grafana_dashboard annotations: {} livenessProbe: httpGet: path: / port: http readinessProbe: httpGet: path: /api/v1/health port: http resources: {} # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi nodeSelector: {} tolerations: [] affinity: {} labels: {} annotations: {} podAnnotations: {} podLabels: {} priorityClassName: "" env: [] envFrom: [] extraContainers: [] # - name: do-something # image: busybox # command: ['do', 'something'] extraPorts: [] # - port: 5170 # containerPort: 5170 # protocol: TCP # name: tcp # nodePort: 30517 extraVolumes: [] extraVolumeMounts: [] updateStrategy: {} # type: RollingUpdate # rollingUpdate: # maxUnavailable: 1 # Make use of a pre-defined configmap instead of the one templated here existingConfigMap: "" networkPolicy: enabled: false # ingress: # from: [] luaScripts: {} ## https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/configuration-file config: service: | [SERVICE] Daemon Off Flush 1 Log_Level {{ .Values.logLevel }} Parsers_File parsers.conf Parsers_File custom_parsers.conf HTTP_Server On HTTP_Listen 0.0.0.0 HTTP_Port {{ .Values.service.port }} Health_Check On ## https://docs.fluentbit.io/manual/pipeline/inputs inputs: | [INPUT] Name tail Path /var/log/containers/*.log multiline.parser docker, cri Tag kube.* Mem_Buf_Limit 5MB Skip_Long_Lines On [INPUT] Name systemd Tag host.* Systemd_Filter _SYSTEMD_UNIT=kubelet.service Read_From_Tail On ## https://docs.fluentbit.io/manual/pipeline/filters filters: | [FILTER] Name kubernetes Match kube.* Merge_Log On Keep_Log Off K8S-Logging.Parser On K8S-Logging.Exclude On ## https://docs.fluentbit.io/manual/pipeline/outputs outputs: | [OUTPUT] Name es Match kube.* Host elasticsearch-master Logstash_Format On Retry_Limit False [OUTPUT] Name es Match host.* Host elasticsearch-master Logstash_Format On Logstash_Prefix node Retry_Limit False ## https://docs.fluentbit.io/manual/pipeline/parsers customParsers: | [PARSER] Name docker_no_time Format json Time_Keep Off Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%L # This allows adding more files with arbitary filenames to /fluent-bit/etc by providing key/value pairs. # The key becomes the filename, the value becomes the file content. extraFiles: {} # example.conf: | # [OUTPUT] # Name example # Match foo.* # Host bar # The config volume is mounted by default, either to the existingConfigMap value, or the default of "fluent-bit.fullname" volumeMounts: - name: config mountPath: /fluent-bit/etc/fluent-bit.conf subPath: fluent-bit.conf - name: config mountPath: /fluent-bit/etc/custom_parsers.conf subPath: custom_parsers.conf daemonSetVolumes: - name: varlog hostPath: path: /var/log - name: varlibdockercontainers hostPath: path: /var/lib/docker/containers - name: etcmachineid hostPath: path: /etc/machine-id type: File daemonSetVolumeMounts: - name: varlog mountPath: /var/log - name: varlibdockercontainers mountPath: /var/lib/docker/containers readOnly: true - name: etcmachineid mountPath: /etc/machine-id readOnly: true args: [] command: [] # This supports either a structured array or a templatable string initContainers: [] # Array mode # initContainers: # - name: do-something # image: bitnami/kubectl:1.22 # command: ['kubectl', 'version'] # String mode # initContainers: |- # - name: do-something # image: bitnami/kubectl:{{ .Capabilities.KubeVersion.Major }}.{{ .Capabilities.KubeVersion.Minor }} # command: ['kubectl', 'version'] logLevel: info