本文档介绍了如何为 Log Analytics 查询结果绘制图表,以便识别日志数据中的模式和趋势。借助 Log Analytics,您可以使用 SQL 查询搜索和汇总日志,以生成有用的数据分析。
运行查询后,可以在表中查看查询结果,也可以将其转换为图表。例如,如需查看您的日志生成的严重类型,请创建一个图表来显示过去 12 小时内生成的日志计数,并按 severity
细分日志。以下屏幕截图展示了分为不同严重级别类型的数据点:
准备工作
确保您的日志存储桶已升级为使用 Log Analytics。日志存储页面列出了您的日志存储分区及其配置信息。
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择日志存储:
-
如需获取加载日志分析页面和运行查询所需的权限,请让管理员授予您 Cloud Logging 的 Logs Viewer (
roles/logging.viewer
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。在日志分析页面上查看日志条目和运行查询所需的权限与在日志浏览器页面上查看日志所需的权限相同。如需了解查询用户定义的存储桶的视图或查询
_Default
日志存储桶的_AllLogs
视图所需的其他角色,请参阅 Cloud Logging 角色。
-
如需获取使用 Google Cloud 控制台创建和管理信息中心所需的权限,请让管理员授予您项目的 Monitoring Editor (
roles/monitoring.editor
) IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限。
选择要绘制图表的数据
如需配置要在图表上显示的数据,请使用 SQL 构建查询。选择图表标签页后,Logging 会根据您的查询结果自动生成图表。运行查询并生成图表后,您可以通过更改图表类型并选择列来查看不同数据来自定义图表配置。
如需以图表形式查看查询结果,请执行以下操作以运行查询:
-
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Log Analytics:
在查询窗格中,输入查询,然后点击运行。
查询完成后,在结果标签页中,选择查看查询结果的方式:
表格:仅查看包含查询结果的表格。
图表:仅查看包含查询结果的图表。
两者:并排查看表格和图表。
如果您选择了 Chart 或 Both 标签页,则可以通过更改图表类型以及自定义要绘制成图表的行和列来自定义图表配置。如需详细了解图表配置,请参阅自定义图表配置。
自定义图表配置
您可以通过更改图表类型、选择维度和测量值以绘制图表,并应用细分来自定义图表配置。维度用于对行进行分组或分类,它是 X 轴的值。测量值(即 Y 轴值)是沿 Y 轴绘制的数据系列。
更改图表类型
您可以从以下图表类型中进行选择,具体取决于您选择作为维度和衡量指标的行和列的类型,以及您希望如何直观呈现数据。
条形图(默认)
条形图在两条轴上绘制数据。如果您的图表使用类别或字符串作为维度,那么您可以将条形图的图表配置设置为水平或垂直,此时维度和测量轴会进行交换。
折线图
折线图可用于显示数据随时间的变化。使用折线图时,每个时序都会通过与所选测量对应的不同线条显示。
如果 X 轴基于时间,则每个数据点都位于时间间隔的开头。每个数据点都通过线性插值连接。
面积图 面积图基于折线图,每条折线下方的区域用阴影表示。在面积图中,数据系列堆叠显示。例如,如果您有两个相同的数据系列,则该系列在折线图中会重叠,但阴影区域堆叠在面积图中。
饼图
饼图显示了数据集中的类别与整个数据集之间的关系,方法是使用圆圈表示整个数据集,使用楔形部分表示数据集中的类别。楔形调整架的大小表示相应类别对整体的贡献程度(通常以百分比表示)。
更改维度和测量
您可以通过选择维度和测量字段来选择要绘制哪些行和列。
维度
该维度必须是时间戳、数字或字符串列。默认情况下,该维度设置为架构中第一个基于时间戳的列。如果查询中没有时间戳,则会选择第一个字符串列作为维度。您还可以在图表显示面板中自定义维度。选择时间戳列作为维度后,图表会显示数据随时间的变化。
默认情况下,系统会自动设置时间戳的间隔,但您也可以选择自定义间隔。自动间隔会根据时间范围选择器更改值,以维持规模相近的组。
您还可以停用该间隔,这让您可以在查询中指定自己的聚合和时间范围,以实现更复杂的分析。停用间隔会将测量的聚合函数设置为
none
。如果停用维度间隔,则只能使用数字测量。测量
您可以在图表显示面板中选择多个测量。选择测量时,您还必须选择要对其分组值执行的聚合函数,例如
count
、sum
、average
和percentile-99
。例如,count-distinct
会返回给定列中唯一值的数量。如果您为维度选中了停用间隔复选框,则可以使用
none
聚合函数选项。如果维度是字符串值,系统不会显示停用间隔时间复选框。不过,将测量的聚合函数设置为none
也会停用时间间隔。
添加细分
要根据其他列将单个数据系列拆分为多个数据系列,请添加细分。
选择细分时,请选择包含少量有意义的短标签(如 region_name
)的列,而不是可能包含大量字符串或长字符串(如 textPayload
)的字段。
例如,请查看以下图表配置,其中维度字段设置为 type,Measure 字段设置为计算行数,细分字段设置为 severity:
以下图表是添加了细分的图表示例:
在上一个屏幕截图中,您会看到一个堆叠的数据系列,其中资源类型 k8s_container
拆分为不同的 severity
类型。这样,您就可以确定特定资源生成了每种严重性类型的日志数量。
将图表保存到自定义信息中心
通过查询生成图表后,您可以将该图表保存到自定义信息中心。借助自定义信息中心,您可以使用各种类型的 widget 来显示和整理对您有用的信息。例如,您可以创建一个信息中心,提供有关 Cloud Storage 存储分区使用情况的详细信息:
如需将图表保存到信息中心,请执行以下操作:
-
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Log Analytics:
运行查询以生成图表,然后点击 Chart 标签页中的 保存图表。
在保存到信息中心对话框中,输入图表标题,然后选择要将图表保存到的信息中心。
可选:如需查看自定义信息中心,请在消息框中点击查看信息中心。
如需查看包含由 Log Analytics SQL 查询生成的图表的自定义信息中心列表,请点击保存图表按钮,然后点击 arrow_drop_down 菜单。
修改保存到自定义信息中心的图表
如需修改由保存到信息中心的 Log Analytics SQL 查询生成的图表,请参阅修改微件的配置。在 Configure widget 对话框中,您可以修改用于生成图表的查询,也可以自定义图表配置以直观呈现不同的数据。
限制
如果您的 Google Cloud 项目在使用 Assured Workloads 的文件夹中,则您生成的图表无法在自定义信息中心内显示。
信息中心级过滤条件不适用于通过 Log Analytics SQL 查询生成的图表。
查询示例
本部分提供了用于绘制查询结果图表的示例 SQL 查询。如需从日志中获取更实用的数据洞见,请自定义图表配置。 如需使用示例查询,请执行以下操作:
-
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Log Analytics:
通过运行默认查询来标识日志视图的表名称:
在日志视图列表中,找到日志视图,然后选择查询。查询窗格中填充了默认查询,其中包括所查询的表的名称。表名称的格式为
project_ID.region.bucket_ID.view_ID
。如需详细了解如何访问默认查询,请参阅查询日志视图。
将 TABLE 替换为与您要查询的视图对应的表名称,然后复制该查询。
将查询粘贴到查询窗格中,然后点击运行查询。
按位置和严重性为日志条目绘制图表
以下查询会选择 location
和 severity
,其中位置类型转换为字符串:
SELECT
CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
severity,
FROM
`TABLE`
示例图表和图表配置如下所示:
在上一屏幕截图中,图表配置具有以下图表配置:
- 图表类型:条形图、横向
- 维度:
location
,上限为 10 - 测量:计算行数
- 细分维度:
severity
,最多五项
绘制 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` 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
,最多五项
限制
所选列应至少包含一行包含非 null 值。
如果您保存查询并自定义图表配置,则系统不会保存自定义图表配置。
如果您的查询已包含聚合,那么生成的图表可能会因 Log Analytics 自动应用的额外聚合而有所不同。
JSON 路径必须转换为字符串和数字,才能绘制成图表。
后续步骤
如需简要了解 Log Analytics,请参阅日志分析。
如需查看示例查询,请参阅 SQL 查询示例。
如需了解如何使用 Log Analytics 进行分析,请参阅使用 SQL 查询来获取安全性数据分析。