无需重新学习,使用 Kibana 查询/可视化 SLS 数据

💡 原文中文,约4200字,阅读约需10分钟。
📝

内容提要

本文介绍了如何通过Kibana来查询和可视化阿里云SLS的数据。通过部署Kibana、Proxy和Elasticsearch等组件,可以实现将SLS的数据转发到Kibana进行可视化。文章详细介绍了部署过程和访问Kibana的方法,并提供了一些常见问题的解答。适合之前使用Kibana的用户将日志数据迁移到阿里云SLS上,并希望继续使用Kibana进行查询和分析的情况。

🔎

延伸解读

为什么还需要部署 Elasticsearch?

文章指出,SLS 的 Logstore 不支持更新操作,而 Kibana 需要存储大量元数据,如图表配置和 Index Pattern 配置,这些数据不适合放在 SLS 中。因此,部署一个 Elasticsearch 实例专门用于存储 Kibana 的元数据。由于只存元数据,该 ES 实例的资源占用非常小,不会成为负担。

Index Pattern 创建的关键限制

在 Kibana 中创建 Index Pattern 时,必须手动输入完整格式 ${project}.${logstore},不支持通配符匹配。这意味着用户无法使用 * 来批量匹配 Logstore,每个 Logstore 都需要单独创建 Index Pattern。此外,创建时输入框不会自动提示,需要完全正确输入后才会显示匹配结果。

多 Project 访问的配置方法

如果需要在 Kibana 上访问多个 SLS Project,可以通过 kproxy 配置实现。第一个 Project 使用 SLS_PROJECT、SLS_ENDPOINT 等变量,从第二个 Project 开始,变量名添加数字后缀,如 SLS_PROJECT2、SLS_ENDPOINT2。如果后续 Project 的 AccessKey 与第一个相同,则可以省略 AccessKey 配置,简化部署。

常见问题与排查方向

文章列举了几个常见问题:Kibana 上看不到 Logstore 是因为需要手动创建 Index Pattern;创建时无提示是正常现象;不支持通配符;右侧无提示可能因为 ES 兼容地址错误或 AccessKey 缺少读权限。排查时应检查 kproxy 中 SLS_ENDPOINT 是否包含 /es/ 后缀,以及 AccessKey 是否具有读 Logstore 的权限。

❓

Q&A

如何使用Kibana查询阿里云SLS的数据?

通过部署Kibana、Proxy和Elasticsearch等组件,可以将SLS的数据转发到Kibana进行查询和可视化。

Kibana的Index Pattern如何创建?

在Kibana中创建Index Pattern时,需要手动输入完整格式,如${project}.${logstore},不支持通配符。

Kibana支持哪些查询方式?

Kibana支持KQL和Lucene两种查询方式,可以进行简单和复杂的查询。

如何在Kibana中可视化数据?

用户可以通过选择Dashboard并点击Create Dashboard来创建图表,设置横轴和纵轴字段进行可视化。

在Kibana中无法看到Logstore的原因是什么?

可能是因为Logstore需要通过手动创建Index Pattern的方式来查询,且未正确配置相关参数。

可以在Kibana上访问多个SLS项目吗?

可以,通过在kproxy中配置多个SLS_PROJECT及其相关变量名称来实现。

🏷️

标签

➡️

继续阅读