无需重新学习,使用 Kibana 查询/可视化 SLS 数据
内容提要
本文介绍了如何通过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及其相关变量名称来实现。