AWS EKS 集群日志上报观测云实践

    AWS Lambda 介绍

    AWS Lambda 是亚⻢逊提供的⼀种⽆服务器计算服务。它允许开发⼈员在⽆需管理服务器的情况下运⾏代码。AWS Lambda 基于事件驱动的模型,当触发指定的事件时,Lambda 会⾃动执⾏相应的代码逻辑。

    Amazon CloudWatch 日志

    CloudWatch 日志使您能够将您使用的所有系统、应用程序和 AWS 服务的日志集中到一个高度可扩展的单一服务中。然后,您可以轻松查看它们,在它们中搜索特定的错误代码或模式,根据特定字段对其进行筛选,或者将其安全地存档以备将来分析。 CloudWatch 日志使您可以将所有日志(无论其来源如何)视为按时间排序的单一且一致的事件流。

    方案说明

    AWS 集群日志流触发器,通过转发函数上报 DataKit,并上报观测云。

    前置条件

    • AWS 集群开启日志投递至 CloudWatch Logs
    • 安装 DataKit,公网可直接访问
    • 开通观测云账户

    接入步骤

    配置 DataKit 服务

    安装 DataKit

    # 需要把token 改成观测云空间的实际token值(可在观测云控制台-->集成-->Datakit 上面获取)
    DK_DATAWAY="https://openway.guance.com?token=tkn_xxxxxx" bash -c "$(curl -L https://static.guance.com/datakit/install.sh)" 
    

    开启外部访问 DataKit HTTP

    vim /usr/local/datakit/conf.d/datakit.conf
    

    默认的 HTTP 服务地址是 localhost:9529,如果 9529 端口被占用,或希望从外部访问 DataKit 的 HTTP 服务(比如希望接收 RUMTracing 数据),可将其修改成:

    [http_api]
       listen = "0.0.0.0:<other-port>"
       # 或使用 IPV6 地址
       # listen = "[::]:<other-port>"
    

    重启 DataKit

    # 在主机终端输入命令
    datakit service -R
    

    查看采集器是否开启

    # 在主机终端输入命令
    datakit monitor
    

    配置 Lambda

    创建 Lambda 函数

    克隆转发脚本

    修改上报 DataKit 地址。

    测试写入

    模板选择 couldwatch-logs 。

    看到日志写入成功。

    绑定 EKS log 触发器

    绑定完成后有新的集群日志即可上报观测云。

    FAQ

    转发脚本地址

    https://github.com/GuanceCloud/guance-serverless-functions/blob/main/AWS/Lambda/lambda-forward.py

    操作所需最小权限

    • logs: CreateLogGroup
    • logs: CreateLogStream
    • logs: PutLogEvents
    • lambda: *
    • AmazonS3ReadOnlyAccess

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

    在线开通,按量计费,真正的云服务!

    免费开启

    支持私有云环境部署

    代码托管平台