ZBLOG

fluentd收集k8s集群日志写到到文件完整

要将Kubernetes集群的日志收集到文件中,可以使用Fluentd和Fluent Bit。以下是一个完整的步骤:

  1. 在Kubernetes集群上安装Fluentd或Fluent Bit。

  2. 创建一个ConfigMap来定义日志收集器配置。例如:

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: fluentd-config
  5. namespace: kube-system
  6. data:
  7. fluent.conf: |
  8. <source>
  9. @type tail
  10. path /var/log/containers/*.log
  11. pos_file /var/log/fluentd-containers.log.pos
  12. tag kubernetes.*
  13. format json
  14. read_from_head true
  15. </source>
  16. <match **>
  17. @type file
  18. path /var/log/kube-logs/${tag}/%Y/%m/%d/kubernetes.${tag}.log
  19. flush_interval 5s
  20. create_symlink true
  21. </match>

这个配置指定了从/var/log/containers/*.log路径下读取容器日志,并将其标记为kubernetes.*。然后将所有标签匹配到的日志写入到/var/log/kube-logs/${tag}/%Y/%m/%d/kubernetes.${tag}.log路径下,并设置了一个刷新间隔和创建符号链接选项。

  1. 部署一个DaemonSet来运行Fluentd或Fluent Bit实例。例如:
  1. apiVersion: apps/v1beta2
  2. kind: DaemonSet
  3. metadata:
  4. name: fluent-bit
  5. namespace: kube-system
  6. spec:
  7. selector:
  8. matchLabels:
  9. app: fluent-bit
  10. template:
  11. metadata:
  12. labels:
  13. app: fluent-bit
  14. spec:
  15. containers:
  16. - name: fluent-bit
  17. image: fluent/fluent-bit:latest
  18. env:
  19. - name: FLUENT_UID
  20. value: "0"
  21. volumeMounts:
  22. - name: config-volume
  23. mountPath: /fluent-bit/etc/
  24. volumes:
  25. - name: config-volume
  26. configMap:
  27. name: fluentd-config
  28. updateStrategy:
  29. type: RollingUpdate

这个DaemonSet使用Fluent Bit镜像来运行,并指定了一个ConfigMap挂载到/fluent-bit/etc/路径下。

  1. 在Kubernetes中启用聚合层。例如:
  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: fluentd-aggregator
  5. namespace: kube-system
  6. ---
  7. kind: ClusterRoleBinding
  8. apiVersion: rbac.authorization.k8s.io/v1beta1
  9. metadata:
  10. name: fluentd-aggregator-rolebinding
  11. subjects:
  12. - kind: ServiceAccount
  13. name: fluentd-aggregator
  14. namespace :kube-system
  15. roleRef:
  16. kind : ClusterRole
  17. name : view
  18. apiGroup : rbac.authorization.k8s.io
  19. ---
  20. apiVersion : extensions/v1beta1
  21. kind : Deployment
  22. metadata :
  23. namespace : kube-system
  24. labels :
  25. k8s-app : aggregator-fluentd
  26. name : aggregator-fluentd
  27. spec :
  28. replicas : 2
  29. template :
  30. metadata :
  31. labels :
  32. k8s-app : aggregator-fluentd
  33. spec :
  34. serviceAccountName : fluentd-aggregator
  35. containers :
  36. - image : kiwigrid/fluentd-kubernetes-daemonset:v0.12.43-kafka-0.10.2
  37. name : fluentd-aggregator

这个配置将创建一个聚合器,它会收集所有节点的日志,并将其发送到Fluentd实例。

  1. 确认文件已经成功写入。您可以通过SSH连接到Fluentd或Fluent Bit容器并检查文件是否存在来验证它们是否正在写入。

以上是完整的步骤,它们可以帮助您将Kubernetes集群的日志收集到文件中。

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?