ZBLOG

1实现详细步骤

下面是使用 Fluent Bit 进行日志收集,仅采集指定命名空间的 Pod 日志的详细步骤:

  1. 在 Kubernetes 集群中安装 Fluent Bit:

    • 可以使用 Helm 安装 fluent-bit Chart。
    • 也可以使用 YAML 文件直接创建 fluent-bit 的 Deployment 和相关资源。
  2. 创建一个 ConfigMap,配置 Fluent Bit 的输入和输出插件以及过滤规则。示例 YAML 文件如下:

    apiVersion: v1
    kind: ConfigMap
    metadata:
     name: fluentbit-config
     namespace: <YOUR_NAMESPACE>
    data:
     fluent-bit.conf: |
       [SERVICE]
         Flush        1
         Daemon       off
         Log_Level    info
    
    
       @INCLUDE input-kubernetes.conf
       @INCLUDE filter-kubernetes.conf
       @INCLUDE output-elasticsearch.conf
    
  3. 创建三个额外的 ConfigMap,分别用于定义 Fluent Bit 的输入、过滤器和输出插件的配置。示例文件如下:

    • input-kubernetes.conf: “`conf [INPUT] Name tail Tag kube.* Path /var/log/containers/*.log Parser docker,crio,json DB /var/log/flb_kube.db Mem_Buf_Limit 5MB

    [FILTER]

    Name                kubernetes
    
    
    Match               kube.*
    Kube_URL            https://kubernetes.default.svc:443/
    
    
    Merge_Log           OnFirstLineKey log_processed
    
    
    K8S-Logging.Parser  On
    
    
    # Exclude some namespaces from being processed by the filter
    # Filter out the logs from "kube-system" and "default" namespaces
    K8S-Logging.Exclude On
    K8S-Logging.Exclude_Namespaces kube-system,default
    
    
    # Enable Kubernetes Audit Logs support, this requires a patched version
    # of Fluent Bit. Check the official repository for more details.
    ##K8S-Audit.Parser   On
    
    - filter-kubernetes.conf:
     ```conf
     [FILTER]
         Name                kubernetes
    
    
         Match               kube.*
         Kube_URL            https://kubernetes.default.svc:443/
    
    
         Merge_Log           OnFirstLineKey log_processed
    
    
         K8S-Logging.Parser  On
    
    
         # Exclude some namespaces from being processed by the filter
         # Filter out the logs from "kube-system" and "default" namespaces
         K8S-Logging.Exclude On
         K8S-Logging.Exclude_Namespaces kube-system,default
    
    
         # Enable Kubernetes Audit Logs support, this requires a patched version
         # of Fluent Bit. Check the official repository for more details.
         ##K8S-Audit.Parser   On
    
    • output-elasticsearch.conf: “`conf [OUTPUT] Name es Match * Host Port Index kubernetes_cluster

    HTTP_User elastic (optional) HTTP_Passwd changeme (optional)

    Retry_Limit False

    TLS Off #(optional) “`

  4. 在你的目标命名空间中创建一个 DaemonSet,用于运行 Fluent Bit 的实例。示例 YAML 文件如下:

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
     name: fluentbit-daemonset
     namespace: <YOUR_NAMESPACE>
    spec:
     selector:
       matchLabels:
         app: fluent-bit
     template:
       metadata:
         labels:
           app: fluent-bit
       spec:
         containers:
           - name: fluent-bit
             image: fluent/fluent-bit:<VERSION>
             resources:
               limits:
                 memory: 200Mi
               requests:
                 cpu: 100m
                 memory: 100Mi
             volumeMounts:
               - name: config-volume
                 mountPath: /fluent-bit/etc/
             ports:
               - containerPort: 2020
         volumes:
           - name: config-volume
             configMap:
               name: fluentbit-config
    
  5. 替换示例 YAML 文件中的 <YOUR_NAMESPACE><ELASTICSEARCH_HOST><ELASTICSEARCH_PORT> 分别为目标命名空间名称、Elasticsearch 主机和端口。

  6. 应用以上 YAML 文件,创建 ConfigMap 和 DaemonSet:

    kubectl apply -f <configmap_file.yaml>
    kubectl apply -f <daemonset_file.yaml>
    

这样就配置了 Fluent Bit 以仅采集指定命名空间的 Pod 日志。你可以根据实际需求进行进一步的调整和定制化,例如添加认证或更改输出插件等。请确保适当测试和验证配置,以确保日志收集正常工作并满足预期要求。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=2950

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?