Grafana 添加 Aliyun SLS 数据源并展示图表

如果在 公众号 文章发现状态为 已更新, 建议点击 查看原文 查看最新内容。

状态: 未更新

原文链接: https://typonotes.com/posts/2023/05/18/grafana-add-aliyun-sls-source/

采集完成日志后, 有了原始数据, 就可以开始分析了。

1. Grafana 配置 Aliyun SLS 作为数据源

Aliyun SLS 服务是阿里云提供的日志服务, 类似于 ELK 一整套。

Aliyun SLS 并不是 Grafana 默认的数据源, 因此自建 Grafana 需要到 Github 去下载 aliyun/aliyun-log-grafana-datasource-plugin , 并安装。

配置数据源

进入在 Setting -> DataSource -> Add Data Source -> aliyun-log-sources

  1. Name: 数据源名称。 在 Grafana 本地显示。

  1. Endpoint: 目标域名阿里云域名公共访问入口,参考 服务入口
  2. Project: 目标 SLS 的项目名称。 项目列表参考 项目列表
  3. Logstore: 目标日志库名称。 上一步选中 Project 后进入可以看到。

  1. AccessKeyID/AccessKeySecret: 访问 RAM 账户 创建账户, 获取密钥。 账户只需要 SLS ReadOnly 权限即可。

配置完成后, 点击 Save and Test 即可。

参考: https://help.aliyun.com/document_detail/311082.html

2. 使用日志数据进行分析、画图

在进行画图之前, 有一些准备工作要做。

  1. 采集完成的日志数据, 需要提取 关键字段。 所谓关键字段就是我们的查询内容。
  2. 在 Query 语句中 所使用 的关键字段, 需要提前创建 索引

可以参考文档:

  1. Aliyun Logtail 收集 JSON 格式日志
  2. Nginx 配置 JSON 日志格式 以及在 Aliyun SLS 上创建索引。

使用日志画图

  1. 创建一个全新的 Dashboard

  1. 进入 Dashboard Setting(右上角齿轮按钮) -> Variables 配置变量

变量1: 查询时间间隔

  • Name: 变量名称。 查询语句展示面板 中可用。 使用时, 以 $ 开头
  • Label: 选择变量的提示名字。
  • Type: 变量类型。 Interval, 内置类型, 时间间隔。
  • Values: 默认值。 可以使用静态字段, 也可以使用查询语句。

变量2: 域名

  • Name: 变量名称。 这个字段是 字符串值。 将直接用于 SLS 搜索。
  • Label: 提示名字
  • Type: 变量类型。 Customize, 自定义类型。
  • Values: 默认值。 这里手动输入两个或多个域名。
  1. 点击 Add Panel(右上角) -> Add a new Panel 以创建一个新画板。

  1. Time Series: 时间序列。 一种展示方式, 点开可以选择其他画板。
  2. Title: 画板标题。 这里使用了, 变量 $host, 可以在画板标题看到当先选择的域名。
  3. Data Source: 数据源。 选择上一步创建的数据源。
  4. Query 查询语句。
  5. $host 变量, 具体值通过上面选择。 用于 Aliyun SLS 进行字符串搜索
  6. remote_addr: 这个是 Nginx 日志字段, 在 SLS 中创建了索引。 通过函数聚合。
  7. select ...: Aliyun SLS 查询语句

注意: 在 Query 语句中, 氛围两部分, 以 管道符 | 作为分割。 左边是 SLS 查询语句, 右边是是对查询结果的 分析语句

$host | select approx_distinct(remote_addr) as uv ,count(1) as pv , __time__ - __time__ % $$myinterval as time group by time order by time limit 1000

注意: 这里 $$myinternal 时间是 两个 $ 符号。

  1. ycol: 纵轴。 使用 uv,pv, 这两个标签时在上一步 Query 语句创建的字段。
  2. xcol(time): 横轴。 使用 time, 这个标签也是在上一步 Query 语句中创建的字段。

参考文档: https://help.aliyun.com/document_detail/60952.htm

3. Aliyun SLS 文档

  1. 查询语法: https://help.aliyun.com/document_detail/53608.html
  2. 分析语法: https://help.aliyun.com/document_detail/29060.html
  3. 函数概览: https://help.aliyun.com/document_detail/321454.html
  4. 日志服务案例中心: https://sls.aliyun.com/doc