kubernetes - 如何将来自不同服务的 Fargate EKS Fluent Bit Logs 发送到不同的 Cloudwatch 组?
问题描述
我已按照本指南在我的 EKS 集群上配置 Fluent Bit 和 Cloudwatch,但目前所有日志都转到一个日志组。我尝试遵循一个单独的教程,该教程使用 Fluent Bit 的 kubernetes 插件在达到 [OUTPUT] 配置之前标记服务。这导致了问题,因为 Fargate EKS 目前不按照本文档底部处理 Fluent Bit [INPUT] 配置。
有没有人遇到过这个?我想将日志拆分为单独的服务。
这是我当前的 YAML 文件。我添加了解析器和过滤器,以查看是否可以获得任何其他信息以在 Cloudwatch 上使用。
kind: Namespace
apiVersion: v1
metadata:
name: aws-observability
labels:
aws-observability: enabled
---
kind: ConfigMap
apiVersion: v1
metadata:
name: aws-logging
namespace: aws-observability
data:
parsers.conf: |
[PARSER]
Name docker
Format json
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L
Time_Keep On
filters.conf: |
[FILTER]
Name kubernetes
Match kube.*
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token
# Kube_Tag_Prefix kube.var.log.containers.
Kube_URL https://kubernetes.default.svc:443
Merge_Log On
Merge_Log_Key log_processed
Use_Kubelet true
Buffer_Size 0
Dummy_Meta true
output.conf: |
[OUTPUT]
Name cloudwatch_logs
Match *
region us-east-1
log_group_name fluent-bit-cloudwatch2
log_stream_prefix from-fluent-bit-
auto_create_group On
解决方案
所以我发现这实际上很简单。
fluent bit 上的默认输入标记包含您正在登录的服务的名称,因此您实际上可以使用通配符运算符在服务名称周围堆叠多个 [OUTPUT] 块. 这就是我将流发送到不同的日志组所要做的一切。这是我的 YAML 供参考。
kind: Namespace
apiVersion: v1
metadata:
name: aws-observability
labels:
aws-observability: enabled
---
kind: ConfigMap
apiVersion: v1
metadata:
name: aws-logging
namespace: aws-observability
data:
output.conf: |
[OUTPUT]
Name cloudwatch_logs
Match *logger*
region us-east-1
log_group_name logger-fluent-bit-cloudwatch
log_stream_prefix from-fluent-bit-
auto_create_group On
[OUTPUT]
Name cloudwatch_logs
Match *alb*
region us-east-1
log_group_name alb-fluent-bit-cloudwatch
log_stream_prefix from-fluent-bit-
auto_create_group On
推荐阅读
- java - Java正则表达式从文件中的一行句子中获取特定的字符串
- python - 在 PySpark 中按特定日期分组
- android - 为什么 materialButton 会关闭我的应用程序?
- c++ - 使用不同的索引变量索引数组时的OpenMP for循环?
- javascript - 如何避免重复使椭圆移动的代码?目前我必须为每个椭圆重复它
- angularjs - AnjularJs 材质 $mdDialog closeTo 条件
- laravel - 雄辩的 Laravel 现在在哪里
- ruby-on-rails - Active Storage 文件上传回调
- r - 带有 tabPanel 的条件面板
- python - 来自 Python 中 Nao 的 https 请求不起作用