码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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命名空间

    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
    
    • 1

    创建cluster-info的ConfigMap

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

    创建fluent bit的daemonset

    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
    
    • 1

    验证部署

    kubectl get pods -n amazon-cloudwatch
    
    • 1

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

    /aws/containerinsights/uat/application
    
    • 1

    总结

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

    参考

    • 将 Fluent Bit 设置为 DaemonSet 以将日志发送到 CloudWatch Logs
    • 验证 先决条件
  • 相关阅读:
    【大数据】Flink SQL 语法篇(八):集合、Order By、Limit、TopN
    台式电脑怎么格式化重装系统
    Ubuntu 22.04‘Temporary failure resolving‘ 解决方案
    [翻译]理解Postgres的IOPS:为什么数据即使都在内存,IOPS也非常重要
    快速安装docker-compose
    java-php-python-springboot携手助学助学交流平台计算机毕业设计
    【m98】接收udp包到变为CopyOnWriteBuffer的rtp包及call模块传递的过程
    没有密码,如何去除Word文档的限制编辑
    【异步与线程池】串讲&优化详情页加载
    在java应用程序中使用spring
  • 原文地址:https://blog.csdn.net/fxtxz2/article/details/136741903
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号