AWS EKS 集群日志上报观测云实践
本文介绍 AWS 集群日志如何通过转发函数上报 DataKit,并上报观测云。
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 服务(比如希望接收 RUM 或 Tracing 数据),可将其修改成:
[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
Get a tailored plan
Contact us
Join the community
Scan with WeChat
to join the community
to join the community
Try Guance
Start online and pay only for what you use.
Get startedChoose a Guance plan