Kibana 查询/可视化阿里云 SLS 数据教程

260次阅读
没有评论

共计 2522 个字符,预计需要花费 7 分钟才能阅读完成。

简介: 本文演示了使用 Kibana 连接阿里云 SLS 兼容接口进行查询和分析的方法。

什么是 SLS?

阿里云日志服务 (Simple Log Service,简称 SLS) 是云原生观测分析平台,为 Log/Metric/Trace 等数据提供大规模、低成本、实时平台化服务。

场景

本文通过 SLS 的 ES 兼容能力,可以很方便地实现用 Kibana 来查询和可视化 SLS 的数据。对于从 ES 迁移到 SLS 的用户可以继续保留原来的 Kibana 使用习惯。下面来演示如何通过 Kibana 来访问 SLS。

使用方法

部署架构

Kibana 查询/可视化阿里云 SLS 数据教程
这里蓝色部分是需要客户端部署的组件
  • Kibana 就是用来可视化的。
  • Proxy 用来区分 Kibana 的请求,将 SLS 相关的转发到 SLS 的 ES 兼容接口。
  • Elasticsearch 用来存 Kibana 的 Meta。

为什么这里还需要一个ES?原因是 SLS 的 Logstore 不支持更新,很多 Meta 类的数据不适合存在 SLS。

而 Kibana 有很多元数据要存储,比如 Kibana 的图表配置、Index Pattern 配置等,因此需要部署一个 ES 实例,这个 ES 实例只会存 Kibana 的元数据,所以它的资源占用非常小。

部署过程

部署es 7

sudo mkdir /data  # Elasticsearch数据的存储目录, 请根据实际情况修改。
sudo chmod 777 /data # 配置权限。
sudo docker run -d --name es -p 9200:9200 \
           -e "discovery.type=single-node" \
           -e "ES_JAVA_OPTS=-Xms6G -Xmx8G" \
           -e ELASTIC_USERNAME=elastic \
           -e ELASTIC_PASSWORD=密码 \
           -e xpack.security.enabled=true \
           -v /data:/usr/share/elasticsearch/data \
           elasticsearch:7.17.3

部署完成后可以通过 下面命令

curl -u elastic:密码 http://${Elasticsearch所在机器的IP地址}:9200

验证是否work,正常应该是返回200

部署proxy

sudo docker run  -d --name proxy \
            -e ES_ENDPOINT=${Elasticsearch所在机器的IP地址}:9200 \
            -e SLS_ENDPOINT=https://prjA.cn-guangzhou.log.aliyuncs.com/es/ \
            -e SLS_PROJECT=prjA \
            -e SLS_ACCESS_KEY_ID=${aliyunAccessId} \
            -e SLS_ACCESS_KEY_SECRET=${aliyunAccessKey} \
            -p 9201:9201 \
            -ti sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:1.9d

SLS_ENDPOINT 格式是 https://${project}.${sls endpoint}

如果有第二个project的话,可以再加环境变量SLS_PROJECT2=prjB 如果第二个project对应的endpoint和SLS_ENDPOINT不同的话,可以设置对应SLS_ENDPOINT2值。同理可最多加32个project

部署完成后可以通过 下面命令

curl -u elastic:密码 http://${Proxy所在机器的IP地址}:92001

验证是否work,正常应该是返回200

部署Kibana

sudo docker run -d --name kibana \
            -e ELASTICSEARCH_HOSTS=http://${Proxy所在机器的IP地址}:9201 \
            -e ELASTICSEARCH_USERNAME=elastic \
            -e ELASTICSEARCH_PASSWORD=密码 \
            -e XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED=true \
            -p 5601:5601 \
            kibana:7.17.3

访问Kibana

浏览器访问 http://${部署Kibaba的IP地址}:5601  输入账号密码登录Kibana

配置Index Pattern

选择Stack Managment

Kibana 查询/可视化阿里云 SLS 数据教程

点击Index Pattern Tab,在Index pattern列表中看不到数据是正常的日志服务的logstore映射到Kibana中的Index patterns需要手动创建。在提示框中单击create an index pattern against hidden or system indices.

Kibana 查询/可视化阿里云 SLS 数据教程

在Create Index Pattern页,Name填写格式为 ${project}.${logstore},  注意这里比必须完全填写,不支持*匹配

Kibana 查询/可视化阿里云 SLS 数据教程

点完成Create index pattern完成pattern创建,然后进入Discover里就可以查询数据了

Kibana 查询/可视化阿里云 SLS 数据教程

查询Logstore

Kibana 查询/可视化阿里云 SLS 数据教程
Kibana的查询框中可以选择KQL和Lucene 两种方式,SLS 的ES兼容接口都进行了支持。

简单的过滤查询:

Kibana 查询/可视化阿里云 SLS 数据教程
复杂一些query、filter都可以查询
Kibana 查询/可视化阿里云 SLS 数据教程

可视化图表

那么除了查询,可以用kibana来做可视化吗?当然可以!

选择Dashboard:

Kibana 查询/可视化阿里云 SLS 数据教程

进入后点击 Create Dashboard 来创建一个图表:

Kibana 查询/可视化阿里云 SLS 数据教程
通过设置,横轴、纵轴的字段和统计方式,可以很方便地做出想要图

比如最简单的统计一个请求访问数的柱状图,时间为横轴,记录数为纵轴:

Kibana 查询/可视化阿里云 SLS 数据教程

现在我想看到每个柱子中 status 的情况,可以选择 Break down by 的字段为 status:

Kibana 查询/可视化阿里云 SLS 数据教程

小结

本文演示了使用Kibana连sls es兼容接口进行查询和分析的方法,对于kibana的query和可视化能力都能正常对接和使用。

适合下面两种情况:

  • 如果您之前的使用习惯是 Kibana,而日志已经存在了阿里云 SLS 上,可以使用该方案对接。
  • 如果您现在使用的是标准的 ELK 方案,但厌倦了 ES 使用时维护工作或者调优,不妨试一试阿里云 SLS 的方案(c++底层、serverless、低成本、ES 兼容)。

参考文档

正文完
点击链接加入群聊【轩源技术交流群】:https://qm.qq.com/q/xrQ0LCYwTe
post-qrcode
 0
轩源
版权声明:本站原创文章,由 轩源 于2024-08-01发表,共计2522字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
支持作者

☝️用微信请我喝杯咖啡☕️

😛如果文章对您有用,请支持作者😛

支持作者

☝️用支付宝请我喝杯奶茶🧋

评论(没有评论)