Hi - have been trying to get my fluent operator to...
# fluent-operator
n
Hi - have been trying to get my fluent operator to work with fluent bit - output to Cloudwatch. I am using helm charts to install the operator. This works fine - except the output is getting set to null when I do this
kubectl get secret fluent-bit-config -o jsonpath="{.data['fluent-bit\.conf']}" | base64 --decode
This is the output
Copy code
[Service]
    Http_Server    true
    Parsers_File    parsers.conf
[Input]
    Name    systemd
    Path    /var/log/journal
    DB    /fluent-bit/tail/systemd.db
    DB.Sync    Normal
    Tag    service.*
    Systemd_Filter    _SYSTEMD_UNIT=containerd.service
    Systemd_Filter    _SYSTEMD_UNIT=kubelet.service
    Strip_Underscores    off
    storage.type    memory
[Input]
    Name    tail
    Path    /var/log/containers/*.log
    Read_from_Head    false
    Refresh_Interval    10
    Skip_Long_Lines    true
    DB    /fluent-bit/tail/pos.db
    DB.Sync    Normal
    Mem_Buf_Limit    100MB
    Parser    cri
    Tag    kube.*
    storage.type    memory
[Filter]
    Name    lua
    Match    kube.*
    script    /fluent-bit/config/containerd.lua
    call    containerd
    time_as_table    true
[Filter]
    Name    kubernetes
    Match    kube.*
    Kube_URL    <https://kubernetes.default.svc:443>
    Kube_CA_File    /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    Kube_Token_File    /var/run/secrets/kubernetes.io/serviceaccount/token
    Labels    false
    Annotations    false
[Filter]
    Name    nest
    Match    kube.*
    Operation    lift
    Nested_under    kubernetes
    Add_prefix    kubernetes_
[Filter]
    Name    modify
    Match    kube.*
    Remove    stream
    Remove    kubernetes_pod_id
    Remove    kubernetes_host
    Remove    kubernetes_container_hash
[Filter]
    Name    nest
    Match    kube.*
    Operation    nest
    Wildcard    kubernetes_*
    Nest_under    kubernetes
    Remove_prefix    kubernetes_
[Filter]
    Name    lua
    Match    service.*
    script    /fluent-bit/config/systemd.lua
    call    add_time
    time_as_table    true
[Output]
    Name    null
    Match   *%
Here is the values being set for the chart. (Note - If I enable
es
in the values - there are settings in the
[Output]
above but there is no elasticsearch pipeline.)
Copy code
containerRuntime: containerd
Kubernetes: true

operator:
  initcontainer:
    repository: "docker"
    tag: "20.10"

    resources:
      limits:
        cpu: 100m
        memory: 64Mi
      requests:
        cpu: 50m
        memory: 64Mi
  container:
    repository: "kubesphere/fluent-operator"
    tag: "v2.7.0"
  nodeSelector: {}
  tolerations: []
  priorityClassName: ""
  podSecurityContext: {}
  securityContext: {}
  resources:
    limits:
      cpu: 100m
      memory: 60Mi
    requests:
      cpu: 100m
      memory: 20Mi
  annotations: {}
  imagePullSecrets: []
  labels: {}
  logPath:
    containerd: /var/log
  disableComponentControllers: ""

fluentbit:
  crdsEnable: true
  enable: true
  image:
    repository: "kubesphere/fluent-bit"
    tag: "v2.2.0"
  resources:
    limits:
      cpu: 500m
      memory: 200Mi
    requests:
      cpu: 10m
      memory: 25Mi
  annotations:
    {}
  labels: {}

  serviceAccountAnnotations: {}

  imagePullSecrets: []
  secrets: []
  hostNetwork: false
  podSecurityContext: {}
  securityContext: {}
  additionalVolumes: []
  additionalVolumesMounts: []
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: <http://node-role.kubernetes.io/edge|node-role.kubernetes.io/edge>
                operator: DoesNotExist
  nodeSelector: {}
  tolerations:
    - operator: Exists
  priorityClassName: ""
  envVars: []
  schedulerName: ""



  namespaceFluentBitCfgSelector: {}

  input:
    tail:
      enable: true
      refreshIntervalSeconds: 10
      memBufLimit: 100MB
      path: "/var/log/containers/*.log"
      skipLongLines: true
      readFromHead: false
      storageType: memory
      pauseOnChunksOverlimit: "off"
    systemd:
      enable: true
      systemdFilter:
        enable: true
        filters: []
      path: "/var/log/journal"
      includeKubelet: true
      stripUnderscores: "off"
      storageType: memory
      pauseOnChunksOverlimit: "off"
    nodeExporterMetrics: {}
    fluentBitMetrics: {}

  output:
    es:
      enable: false
      host: "<Elasticsearch url like elasticsearch-logging-data.kubesphere-logging-system.svc>"
      port: 9200
      logstashPrefix: ks-logstash-log
      bufferSize: 20MB
      traceError: true
    kafka:
      enable: false
      brokers: "<kafka broker list like xxx.xxx.xxx.xxx:9092,yyy.yyy.yyy.yyy:9092>"
      topics: ks-log
    opentelemetry: {}
    opensearch: {}
    stdout:
      enable: false
    prometheusMetricsExporter: {}
    
    loki:
      enable: false      
      host: 127.0.0.1      
      port: 3100      
      httpUser: myuser
      httpPassword: mypass
      tenantID: ''

    cloudWatchLogs:
      enable: true
      region: "us-east-1"
      logGroupName: "/aws/containerinsights/avct/application"
      logStreamPrefix: "${HOST_NAME}-"
      autoCreateGroup: true
      extraUserAgent: "container-insights"
      logRetentionDays: 15

  service:
    storage: {}

  filter:
    kubernetes:
      enable: true
      labels: false
      annotations: false
    containerd:
      enable: true
    systemd:
      enable: true

  kubeedge:
    enable: false
    prometheusRemoteWrite:
      host: "<cloud-prometheus-service-host>"
      port: "<cloud-prometheus-service-port>"

fluentd:
  crdsEnable: true
  enable: false
  name: fluentd
  mode: "collector"
  port: 24224
  image:
    repository: "kubesphere/fluentd"
    tag: "v1.15.3"
  replicas: 1
  forward:
    port: 24224
  watchedNamespaces:
    - kube-system
    - default
  resources:
    limits:
      cpu: 500m
      memory: 500Mi
    requests:
      cpu: 100m
      memory: 128Mi
  schedulerName: ""
  envVars: []
  imagePullSecrets: []
  logLevel: ""
  priorityClassName: ""
  extras: {}
  output:
    es:
      enable: false
      host: elasticsearch-logging-data.kubesphere-logging-system.svc
      port: 9200
      logstashPrefix: ks-logstash-log
      buffer:
        enable: false
        type: file
        path: /buffers/es
    kafka:
      enable: false
      brokers: "my-cluster-kafka-bootstrap.default.svc:9091,my-cluster-kafka-bootstrap.default.svc:9092,my-cluster-kafka-bootstrap.default.svc:9093"
      topicKey: kubernetes_ns
      buffer:
        enable: false
        type: file
        path: /buffers/kafka
    opensearch: {}

nameOverride: ""
fullnameOverride: ""
namespaceOverride: ""