AWS云上面的k8s统一日志收集(Fluent Bit+EKS+CW)

目标

k8s上面的常见的统一日志方案是EFK,具体如下:

  • E:elasticsearch;
  • F:fluentd;
  • K:kibana
    这里我们变成了使用fluentd的AWS替代品Fluent Bit,直接将日志输出到CloudWatch组。不需要E和K了。不过,这样仅仅用于AWS EKS。

步骤

给EC2 IAM角色CloudWatchAgentServerPolicy权限

给支撑运行EKS的EC2上面的IAM角色添加CloudWatchAgentServerPolicy策略。这里的角色名是AmazonEKSNodeRole。

创建amazon-cloudwatch命名空间

bash 复制代码
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cloudwatch-namespace.yaml

创建cluster-info的ConfigMap

bash 复制代码
ClusterName=cluster-name
RegionName=cluster-region
FluentBitHttpPort='2020'
FluentBitReadFromHead='Off'
[[ ${FluentBitReadFromHead} = 'On' ]] && FluentBitReadFromTail='Off'|| FluentBitReadFromTail='On'
[[ -z ${FluentBitHttpPort} ]] && FluentBitHttpServer='Off' || FluentBitHttpServer='On'
kubectl create configmap fluent-bit-cluster-info \
--from-literal=cluster.name=${ClusterName} \
--from-literal=http.server=${FluentBitHttpServer} \
--from-literal=http.port=${FluentBitHttpPort} \
--from-literal=read.head=${FluentBitReadFromHead} \
--from-literal=read.tail=${FluentBitReadFromTail} \
--from-literal=logs.region=${RegionName} -n amazon-cloudwatch

其中,cluster-name表示集群名称;cluster-region表示云区。

创建fluent bit的daemonset

bash 复制代码
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/fluent-bit/fluent-bit.yaml

验证部署

bash 复制代码
kubectl get pods -n amazon-cloudwatch

应该能够查询出fluent-bit-*开头的pod,就表示部署fluent bit成功。然后,跑到CloudWatch页面看看是否存在/aws/containerinsights/*开头的相关日志组:

具体的SpringBoot服务的日志,在这个日志组下面:

bash 复制代码
/aws/containerinsights/uat/application

总结

这就是在AWS云上的k8s统一日志方案。和EFK方案很类似了。对业务服务SVC也是无侵入式的。

参考

相关推荐
张忠琳7 小时前
【client-go v0.36.1】(store Part 3)Store 超深度分析 — 集成模式、完整数据流、不变量、与 DeltaFIFO 协作
云原生·kubernetes·informer·store·client-go
赵渝强老师9 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
鹤落晴春9 小时前
【K8s】配置存储卷
云原生·容器·kubernetes
AKAMAI10 小时前
Akamai 块存储:低延迟、高可靠的云原生持久存储方案
云计算
张忠琳11 小时前
【client-go v0.36.1】(DeltaFIFO Part 1)DeltaFIFO 超深度分析 — 模块定位、类结构、接口层次、构造与初始化
云原生·kubernetes·deltafifo·informer·client-go
AOwhisky12 小时前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
ba_pi12 小时前
k8s删除pod
linux·容器·kubernetes
张忠琳15 小时前
【client-go v0.36.1】tools/cache 深度分析(下篇)— RealFIFO 深度、集成架构、生命周期、设计模式总结
云原生·kubernetes·cache·informer·client-go
张忠琳15 小时前
【client-go v0.36.1】(store Part 2)Store 超深度分析 — threadSafeMap 核心、索引体系、RV追踪、事务机制
云原生·kubernetes·informer·store·client-go
sbjdhjd16 小时前
04(上)| k8s中的微服务
微服务·云原生·kubernetes·开源·云计算·excel·kubelet