本文档介绍了如何绘制 Log Analytics 查询结果图表,以便您找出日志数据中的模式和趋势。借助 Log Analytics,您可以使用 SQL 查询搜索和汇总日志,以生成有用的数据分析。
运行查询后,您可以查看表格中的查询结果,也可以将其转换为图表,还可以将查询及其可视化结果保存到信息中心。例如,如需查看日志生成的严重性类型,请创建一个图表,用于显示过去 12 小时内生成的日志数量,并按 severity
对日志进行细分。下图展示了数据点按不同严重性类型细分的情况:
准备工作
本部分介绍了在使用 Log Analytics 之前必须完成的步骤。
配置日志存储分区
确保您的日志存储分区已升级为使用 Log Analytics:
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
- 对于包含您要查询的日志视图的每个日志存储桶,请确保日志分析可用列显示打开。如果系统显示升级,请点击升级并完成对话框。
配置 IAM 角色和权限
本部分介绍使用 Log Analytics 所需的 IAM 角色或权限:
-
如需获得使用 Log Analytics 和查询日志视图所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
如需查询
_Required
和_Default
日志存储分区,请使用以下角色:Logs Viewer (roles/logging.viewer
) -
如需查询项目中的所有日志视图,请使用以下角色:
Logs View Accessor (
roles/logging.viewAccessor
)
您可以通过以下任一方式将主账号限制为只能访问特定的日志视图:向项目级别授予的日志视图访问权限角色授予中添加 IAM 条件,或者向日志视图的政策文件中添加 IAM 绑定。如需了解详情,请参阅控制对日志视图的访问权限。
这些权限与您在 Logs Explorer 页面上查看日志条目时所需的权限相同。如需了解查询用户定义的存储桶中的视图或查询
_Default
日志存储桶的_AllLogs
视图所需的其他角色,请参阅 Cloud Logging 角色。 -
如需查询
-
如需获得创建图表所需的权限,请让您的管理员向您授予项目的 Monitoring Editor (
roles/monitoring.editor
) IAM 角色。
选择要用于绘制图表的数据
如需配置要在图表中显示的数据,请使用 SQL 构建查询。当您选择图表标签页时,日志记录会根据您的查询结果自动生成图表。运行查询并生成图表后,您可以通过更改图表类型和选择列来查看不同的数据,从而自定义图表配置。
如需将查询结果以图表的形式查看,请按以下步骤运行查询:
-
在 Google Cloud 控制台中,前往 Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在查询窗格中,输入查询,然后点击运行。
查询完成后,在结果标签页中,选择查看查询结果的方式:
表格:仅限表格格式。
图表:仅限图表格式
全部:图表和表格格式。
选择查看查询结果的方式后,您可以为所选的可视化图表配置任何字段,然后将查询和结果保存到自定义信息中心。如果您选择了表格选项,则保存的格式为表格格式。否则,格式为图表。
对于图表,您可以通过可视化图表选项选择图表类型,以及选择要绘制图表的行和列。如需详细了解图表配置,请参阅自定义图表配置。
自定义图表配置
您可以通过更改图表类型、选择要绘制图表的维度和指标,以及应用细分来自定义图表配置。维度用于对行进行分组或分类,是 X 轴值。测量(即 Y 轴值)是与 Y 轴对应的绘制数据系列。
更改图表类型
您可以从以下图表类型中进行选择,具体取决于您选择了哪些行和列作为维度和测量指标,以及您希望以何种方式直观呈现这些数据。
条形图(默认):条形图会在两个轴上绘制数据。如果您的图表使用类别或字符串作为维度,则可以将条形图的图表配置设为水平或垂直,其中维度轴和测量轴会互换。
折线图: 折线图可用于显示数据随时间的变化情况。使用折线图时,每个时序都会用一条与您所选测量指标对应的线条显示。
如果 X 轴是基于时间的,则每个数据点都位于时间间隔的开头。每个数据点均通过线性插值连接。
堆叠面积图: 面积图基于折线图,每条线下方的区域均会着色。在面积图中,数据系列会堆叠显示。例如,如果您有两个完全相同的系列,则这些系列在折线图中会重叠,但在面积图中会堆叠。
饼图或甜甜圈图:饼图使用圆圈表示整个数据集,并使用圆圈中的楔形表示数据集中的类别,以此来显示数据集中的类别与整个数据集的关系。楔形的大小表示相应类别对总体的贡献度(通常以百分比表示)。
表格:表格会为查询结果中的每一行显示一行。表中的列由
SELECT
子句定义。如果您打算在信息中心内以表格形式显示数据,请使用LIMIT
子句将结果中的行数限制在几百行以下。仪表盘或统计信息摘要图表:仪表盘和统计信息摘要图表会根据该值与一组阈值的比较情况,为您提供最新值以及绿色、黄色或红色指示。与仅显示最新值的仪表盘不同,统计信息摘要还可以包含有关过去值的信息。
只有当查询结果包含至少一行,且该行包含包含时间戳的列和包含数值数据的列时,仪表板和计分卡才能显示查询结果。查询结果可以包含多行和多列。
如果您想在查询中执行基于时间的汇总,请执行以下操作:
配置查询以汇总一段时间内的数据、按降序时间戳对结果进行排序,以及限制结果中的行数。您可以使用
LIMIT
子句或使用时间范围选择器来限制查询结果中的行数。例如,以下查询会按小时对数据进行汇总、应用限制并对结果进行排序:
SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count FROM `TABLE_NAME_OF_LOG_VIEW` WHERE severity IS NOT NULL AND severity = "DEFAULT" GROUP BY hour,severity ORDER BY hour DESC LIMIT 10
将维度设置为与报告时间单位的列一致。 例如,如果您的查询按一小时对数据进行汇总,并创建一个名为
hour
的列,请将维度菜单设置为hour
。选择停用间隔,因为您的查询已指定汇总间隔。在此示例中,此间隔为 1 小时。
将测量设置为数字列,并将函数设置为无。
如果您想让 Log Analytics 为您执行基于时间的汇总,请执行以下操作:
- 配置时间范围选择器,该选择器会影响查询结果中的行数。
- 将维度设置为与报告时间单位的列一致。
例如,您可以将此菜单设置为
timestamp
。 - 将间隔菜单设置为汇总间隔,以指定间隔。例如,将此字段的值设置为
1 hour
。请勿选择自动间隔。 - 将衡量设置为数字列,然后选择一个函数(例如 sum)。
更改维度和测量
您可以通过选择维度和衡量列来选择要绘制图表的行和列。
维度
维度必须是时间戳、数值或字符串列。默认情况下,维度会设置为架构中第一个基于时间戳的列。如果查询中不存在时间戳,则系统会选择第一个字符串列作为维度。您还可以在图表显示面板中自定义维度。选择时间戳列作为维度后,图表会显示数据随时间的推移而发生的变化。
默认情况下,系统会自动设置时间戳间隔,但您也可以选择自定义间隔。自动间隔会根据时间范围选择器更改值,以保持相似大小的组。
您还可以停用该间隔,以便在查询中指定自己的汇总和时间范围,以进行更复杂的分析。停用间隔后,系统会将测量的聚合函数设置为
none
。停用维度间隔后,系统仅允许使用数值测量。测量
您可以在图表显示面板中选择多个测量参数。选择测量时,您还必须选择要对其分组值执行的聚合函数,例如
count
、sum
、average
和percentile-99
。例如,count-distinct
会返回给定列中的唯一值数量。如果您为维度选择停用间隔复选框,则可以使用
none
聚合函数选项。如果维度是字符串值,系统不会显示停用间隔复选框。不过,将测量的聚合函数设置为none
也会停用间隔。
添加细分维度
如需根据另一个列将单个数据系列拆分为多个数据系列,请添加细分。
选择细分项时,请选择包含少量简短且有意义的标签(例如 region_name
)的列,而不是可能包含大量字符串或长字符串的字段(例如 textPayload
)。
例如,请参阅以下图表配置,其中“维度”字段设置为“类型”“测量”字段设置为“行数”,而“细分”字段设置为“严重程度”:
以下图表是添加了细分信息的图表示例:
在上面的屏幕截图中,您看到了一个堆叠数据系列,其中资源类型 k8s_container
被拆分为不同的 severity
类型。这样,您就可以确定某个资源生成了每种严重级别的日志数量。
将图表保存到自定义信息中心
从查询生成图表后,您可以将该图表保存到自定义信息中心。借助自定义信息中心,您可以使用各种类型的小部件来显示和整理对您有用的信息。您还可以通过这些信息中心定义变量,这些变量是信息中心级过滤条件,仅适用于特定微件。如需将变量应用于微件,您必须修改查询。如需了解详情,请参阅将变量应用于微件。
例如,您可以创建一个信息中心,以详细了解 Cloud Storage 存储分区的使用情况:
如需将图表保存到信息中心,请执行以下操作:
-
在 Google Cloud 控制台中,前往 Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
运行查询以生成图表,然后点击 Chart 标签页中的 Save chart。
在保存到信息中心对话框中,输入图表的标题,然后选择要将图表保存到其中的信息中心。
可选:如需查看自定义信息中心,请在通知中点击查看信息中心。
如需查看包含由 Log Analytics SQL 查询生成的图表的自定义信息中心列表,请前往保存图表按钮,然后点击 arrow_drop_down 菜单。
修改保存到自定义信息中心的图表
如需修改保存到信息中心的 Log Analytics SQL 查询生成的图表,请参阅修改微件的配置。在配置 widget 对话框中,您可以修改用于生成图表的查询,也可以自定义图表配置以直观呈现不同的数据。
限制
如果您的 Google Cloud 项目位于使用 Assured Workloads 的文件夹中,则您生成的图表无法显示在自定义信息中心内。
信息中心级过滤条件不适用于通过 Log Analytics SQL 查询生成的图表。
查询示例
本部分提供了用于绘制查询结果图表的 SQL 查询示例。如需从日志中获得更实用的分析洞见,请自定义图表配置。如需使用示例查询,请执行以下操作:
-
在 Google Cloud 控制台中,前往 Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
指定要查询的日志视图的表名称。
如需确定此名称,请前往日志视图列表,找到相应日志视图,然后选择查询。查询窗格会填充默认查询,其中包含要查询的日志视图的表名称。表名称的格式为
project_ID.region.bucket_ID.view_ID
。如需详细了解如何访问默认查询,请参阅查询日志视图。
将 TABLE_NAME_OF_LOG_VIEW 替换为您要查询的日志视图的表名称,然后复制查询。
将查询粘贴到查询窗格中,然后点击运行查询。
按位置和严重级别绘制日志条目图表
以下查询会选择 location
和 severity
,并将位置转换为字符串:
SELECT
CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
severity,
FROM
`TABLE_NAME_OF_LOG_VIEW`
示例图表和图表配置如下所示:
在上面的屏幕截图中,图表配置具有以下图表配置:
- 图表类型:条形图,横向
- 维度:
location
,上限为 10 - 衡量:计算行数
- 明细:
severity
,上限为 5 个
以图表形式查看 BigQuery 数据访问审核日志
以下查询会过滤 BigQuery data_access
审核日志,并选择特定字段,例如 user_email
、ip
、auth_permission
和 job_execution_project
。例如,您可以创建一个图表,直观显示每个主要角色在一段时间内的 BigQuery API 使用频率。
SELECT
timestamp,
proto_payload.audit_log.authentication_info.principal_email as user_email,
proto_payload.audit_log.request_metadata.caller_ip as ip,
auth.permission as auth_permission,
auth.granted as auth_granted,
JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `TABLE_NAME_OF_LOG_VIEW` as data_access,
UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
log_id="cloudaudit.googleapis.com/data_access"
AND data_access.resource.type = 'bigquery_dataset'
示例图表和图表配置如下所示:
在上面的屏幕截图中,图表配置具有以下图表配置:
- 图表类型:条形图,垂直
- 维度:
user_email
,上限为 5 - 衡量:计算行数
- 明细:
auth_permission
,上限为 5
限制
所选列中至少应有一行包含非 null 值。
如果您保存查询并自定义图表配置,系统不会保存自定义图表配置。
如果您的查询已包含汇总,则生成的图表可能会有所不同,因为 Log Analytics 会自动应用其他汇总。
JSON 路径必须转换为字符串和数字,才能绘制图表。
后续步骤
如需大致了解 Log Analytics,请参阅查询和分析日志概览。
如需查看示例查询,请参阅 SQL 查询示例。
如需了解如何使用 Log Analytics 通过审核日志进行分析,请参阅使用 SQL 查询获取安全洞见。