AWS日志入门及AWS Glue日志快速输出至CloudWatch技术咨询
嘿,针对你的两个AWS日志相关问题,我来分享下实操经验,都是新手能快速上手的思路:
1. 如何熟悉AWS中的日志体系?
AWS的日志体系核心围绕CloudWatch Logs展开,不同服务的日志输出逻辑略有不同,你可以按这个路径快速熟悉:
- 先抓核心:CloudWatch Logs是绝大多数AWS服务的日志存储中心,先搞懂日志组、日志流的概念,以及如何通过控制台/CLI查询、过滤日志。
- 按服务分类梳理:
- 计算类服务(EC2、ECS):需要手动安装CloudWatch Agent来收集实例/容器的系统日志、应用日志;
- 无服务器服务(Lambda、Glue):默认就集成CloudWatch,日志会自动推送,只需确认配置开启;
- 审计类日志:CloudTrail专门记录AWS API调用操作,和业务日志区分开,用于合规审计;
- 实操演练:挑2-3个常用服务(比如Glue、Lambda),手动触发一些操作,去CloudWatch里找对应的日志,对比不同服务的日志格式、推送规则;
- 进阶工具:试试CloudWatch Insights,用类SQL语法查询日志,比如过滤特定关键词、统计日志出现频率,这个在排查问题时特别实用。
2. AWS Glue新手:将日志输出至CloudWatch并快速查看
作为Glue新手,其实这个流程非常简单,分三步就能搞定:
步骤1:确认Glue作业的日志配置
创建或编辑Glue作业时,滑到「监控」区域,确保CloudWatch日志选项是启用状态(默认就是开的)。你可以指定自定义的日志组,比如/aws-glue/jobs/my-custom-jobs,如果用默认的话,日志会存在/aws-glue/jobs/output这个日志组里。
步骤2:在Glue代码中使用内置Logger输出日志
Glue提供了内置的日志对象,直接调用就能把日志推送到CloudWatch,不用额外配置SDK。你的代码示例可以优化得更清晰:
import pyspark.sql.functions as F # 获取Glue上下文的内置logger logger = glueContext.get_logger() # 计算目标字段的去重计数 result_count = df.select(F.countDistinct(df.struct1.field1)).collect()[0][0] # 输出日志到CloudWatch(支持info/error/warn等级别) logger.info(f"Resultcount: {result_count}")
glueContext.get_logger():这是Glue封装好的日志工具,会自动把日志发送到你配置的CloudWatch日志组;- 日志级别:除了
info,还可以用logger.error()记录错误信息,logger.warn()记录警告,方便后续在CloudWatch里按级别过滤。
步骤3:快速查看日志的两种方式
- 从Glue作业控制台直接跳转(最方便):
打开你的Glue作业,进入「运行历史」标签,找到对应的作业运行记录,点击右侧的「日志」链接,会直接跳转到CloudWatch中该次运行的日志流,不用手动找日志组。 - 从CloudWatch控制台查询:
进入CloudWatch控制台,找到「日志组」,定位到你的Glue日志组(比如默认的/aws-glue/jobs/output),找到对应作业名称+运行ID的日志流,就能查看所有日志。如果要快速找到特定内容,比如你的Resultcount,可以用CloudWatch Insights写查询:
这个查询会过滤出所有包含fields @timestamp, @message | filter @message like /Resultcount/ | sort @timestamp descResultcount的日志,并按时间倒序排列。
内容的提问来源于stack exchange,提问作者naturalia
相关产品推荐
相关产品推荐

