亚马逊AWS官方博客

在 CloudTrail Lake 通过自然语言查询生成简化 AWS CloudTrail 日志分析(预览版)

今天,我非常高兴地宣布我们将在 AWS CloudTrail Lake 中推出由生成式人工智能(generative AI)驱动的自然语言查询生成,AWS CloudTrail Lake 是一种托管数据湖,用于捕获、存储、访问和分析 AWS CloudTrail 活动日志,以满足合规性、安全性和运营需求。您可以使用自然语言针对存储在 CloudTrail Lake 中的这些活动日志(管理和数据事件)提问,该过程不需要您编写 SQL 查询或花时间来解码活动事件的确切结构,因此您不需要具备专业技能知识就能提问。例如,您可能会问“告诉我有多少数据库实例在没有快照的情况下被删除”,该功能会将该问题转换为 CloudTrail Lake 查询,您可以按原样运行或修改查询以获取请求的事件信息。自然语言查询生成使探索 AWS 活动日志的过程变得更加简单。

现在,让我来展示如何开始使用自然语言查询生成。

自然语言查询生成入门
自然语言查询生成器使用生成式人工智能来根据您的提示生成即用型 SQL 查询,然后您可以选择在 CloudTrail Lake 的查询编辑器中运行该查询。

AWS CloudTrail 控制台中,我在“湖”下面选择了“查询”。查询生成器只能为收集 CloudTrail 管理和数据事件的事件数据存储生成查询。我从事件数据存储的下拉列表中为我的 CloudTrail Lake 查询选择一个事件数据存储。在查询生成器中,我使用自然语言在“提示”字段中输入以下提示:

过去一个月记录了多少错误?

然后,我选择生成查询。系统自动生成了以下 SQL 查询:

SELECT COUNT(*) AS error_count
FROM 8a6***
WHERE eventtime >= '2024-04-21 00:00:00'
    AND eventtime <= '2024-05-21 23:59:59'
    AND (
        errorcode IS NOT NULL
        OR errormessage IS NOT NULL
    )

我选择运行来查看结果。

这很有趣,但我想知道更多详细信息。我想看看哪些服务的错误最多,以及这些操作出错的原因。因此,我输入以下提示以请求更多详细信息:

在过去的一个月中,每项服务记录了多少条错误,每条错误的原因分别是什么?

我选择生成查询,然后系统生成以下 SQL 查询:

SELECT eventsource,
    errorcode,
    errormessage,
    COUNT(*) AS errorCount
FROM 8a6***
WHERE eventtime >= '2024-04-21 00:00:00'
    AND eventtime <= '2024-05-21 23:59:59'
    AND (
        errorcode IS NOT NULL
        OR errormessage IS NOT NULL
    )
GROUP BY 1,
    2,
    3
ORDER BY 4 DESC;

我选择运行来查看结果。

在结果中,我看到我的账户遇到的大多数错误都与 Amazon S3 有关,排名靠前的错误与 CORS 和对象级配置有关。我可以通过提出更多问题来继续深入挖掘以了解更多详细信息。但是现在让我给自然语言查询生成器下达另一条指令。我在“提示”字段中输入以下提示:

过去一个月我使用的前 10 个 AWS 服务是什么? 还要包括事件名称。

我选择生成查询,然后系统生成以下 SQL 查询。此 SQL 语句检索字段名称(eventSource
eventNameCOUNT (*) AS event_count),在 WHERE 子句中将日期间隔设置为上个月来限制行数,按 eventSourceeventName 对行进行分组,按使用次数对行进行排序,并按照我用自然语言提出的要求将结果限制为 10 行。

SELECT eventSource,
    eventName,
    COUNT(*) AS event_count
FROM 8a6***
WHERE eventTime >= timestamp '2024-04-21 00:00:00'
    AND eventTime <= timestamp '2024-05-21 23:59:59'
GROUP BY 1,
    2
ORDER BY 3 DESC
LIMIT 10;

我再次选择运行以查看结果。

现在,我更清楚地了解了过去一个月记录了多少条错误,错误对应的服务是哪些,以及导致错误的原因。您可以尝试用通俗易懂的语言提问,然后对日志运行生成的查询,以查看此功能如何处理您的数据。

加入预览版试用
在美国东部(弗吉尼亚州北部)地区,自然语言查询生成作为 CloudTrail Lake 的一部分以预览版的形式提供。

您可以在预览版中免费使用自然语言查询生成。运行查询以生成结果时,将产生 CloudTrail Lake 查询费用。有关更多信息,请访问 AWS CloudTrail 定价

要了解更多信息并开始使用自然语言查询生成,请访问 AWS CloudTrail Lake 用户指南

— Esra