操作场景
日志服务(Cloud Log Service,CLS)与 Grafana 打通,支持通过 Grafana 展示日志主题及指标主题数据并配置告警策略。本文以 CentOS 操作系统为例,指导您安装和配置 Grafana。
免腾讯云账号使用日志服务的方式概览
使用方式 | 功能支持 | 是否支持免腾讯云账号登录 | 开发工作量 | 账号权限管理 |
支持 CLS 的日志检索、仪表盘、告警功能 | 支持,独立部署,免密登录或密码鉴权登录 | 无 | 无/密码鉴权,支持多角色 | |
只支持 Grafana 的仪表盘、告警功能 | 支持,数据接入 Grafana 使用 | 需要安装 CLS 插件 | Grafana 的权限管理系统,支持多角色 |
其他旧方案
前提条件
操作步骤
步骤一:安装 CLS 插件到 Grafana(可选)
说明:
通过 Grafana 查看日志主题数据时需安装该插件,仅查看指标主题数据时无需安装插件,可跳过该步骤。
1. 进入 Grafana 的安装目录,执行以下命令,安装 日志服务插件。
grafana-cli --pluginUrl https://github.com/TencentCloud/tencentcloud-monitor-grafana-app/releases/download/2.8.6/tencentcloud-monitor-app-2.8.6.zip plugins install tencentcloud-monitor-app# 如果遇到安装后插件仍然无法找到,可能是由于插件目录配置不是默认值,可先进入插件安装目录,并执行以上命令# 如果需要安装指定版本的插件,请在${VERSION}填入指定的版本,如2.8.2grafana-cli --pluginUrl https://github.com/TencentCloud/tencentcloud-monitor-grafana-app/releases/download/${VERSION}/tencentcloud-monitor-app-${VERSION}.zip plugins install tencentcloud-monitor-app
2. 执行如下命令,重启 grafana 服务。
service grafana-server restart
3. 登录 Grafana,在左侧菜单栏中,选择设置图标,进入 Plugins 页面,选中 Tencent Cloud Monitor 插件,并在 Config 页面单击 Enable 启用该插件。
步骤二:配置数据源
1. 在 Data Sources 页面,单击 Add data source。
2. 选择 Tencent Cloud Monitor,按照页面内说明,填写数据源名称、鉴权方式,勾选日志服务(CLS),并单击保存。鉴权方式中的 SecretId 及 SecretKey 需跳转至 访问管理 页面获取。建议您单独创建一个子账号,使用该账号的 SecretId 及 SecretKey,权限策略可使用 推荐权限策略配置。

指标主题兼容 Prometheus 数据模型及接口,可以直接作为 Prometheus 数据源接入 Grafana,相当于每个指标主题都是一个 Prometheus 实例。
1. 获取配置信息
1.1 登录 日志服务控制台,在左侧导航栏中,单击指标主题。
1.2 在指标主题管理页面,单击需要添加的指标主题名称,进入指标主题基本信息页面。
1.3 在页面中,访问方式 > 数据查询 中的 URL 和鉴权方式为在 Grafana 中添加数据源所需的配置信息,鉴权方式中的 SecretId 及 SecretKey 需跳转至 访问管理 页面获取。建议您单独创建一个子账号,使用该账号的 SecretId 及 SecretKey,权限策略可使用 推荐权限策略配置。
2. 在 Data Sources 页面,单击 Add data source。
3. 选择 Prometheus,在表单中配置如下信息:

URL:即第1步获取配置信息中的 URL,Grafana 部署在腾讯云内网时(例如部署在 CVM 或 TKE 中)可使用内网地址,其它情况请使用外网地址。
Basic auth:打开该开关。
Basic Auth Details:即第1步获取配置信息中的鉴权方式,User 为 SecretId,Password 为 SecretKey。
Manage alerts via Alerting UI:关闭该开关,CLS 不兼容 Prometheus Alert 相关接口,不支持该功能。
4. 单击底部 Save & Test 测试配置信息是否正确并保存配置。
步骤三:在 Grafana 上查看数据
在 Grafana-Explore 中查看原始日志
1. 进入 Grafana-Explore ,数据源选择 Tencent Cloud Monitor 插件。
2. 插件类型选择日志服务,选择目标日志主题的所在地域、日志主题名称。
3. 在检索语句中输入语句,单击右上角的 Run query,即可查看日志检索结果。


在 Grafana-Dashboard 中查看原始日志
1. 进入 Grafana-Dashboard ,单击添加图表。
2. 在图表编辑页面,图表类型选择 Logs。数据源选择 Tencent Cloud Monitor 插件,插件类型选择日志服务,选择目标日志主题的所在地域、日志主题名称。
3. 在检索语句中输入语句,单击右上角的刷新按钮,即可查看日志检索结果。


对于 Grafana v8.3 以上版本用户,也可通过 Transform 功能中的 Extract fields 功能,对检索返回内容进行字段提取,在 Table 中查看日志。


在 Grafana 上配置统计图表
1. 进入 Grafana-Dashboard ,单击添加图表。
2. 在图表编辑页面,选择目标图表类型。数据源选择 Tencent Cloud Monitor 插件,插件类型选择日志服务,选择目标日志主题的所在地域、日志主题名称。
3. 在检索语句中输入SQL 语句,单击右上角的刷新按钮,即可查看统计图表结果。
绘制时序图的语句示例
*
|
select
histogram
(
cast
(
TIMESTAMP
as
timestamp
)
,
interval
1
minute
)
as
analytic_time
,
count
(
*
)
as
log_count
group
by
analytic_time
order
by
analytic_time
limit
1000
绘制饼图的语句示例
注意右侧图表配置项
Value Options - show
选择 All values
*
|
select
try_cast
(
status
as
varchar
)
as
status
,
count
(
*
)
as
log_count
group
by
status
1. 进入 Grafana-Explore ,数据源选择步骤2添加的 Prometheus 数据源。
2. 输入查询语句,单击右上角的 Run query,即可查看指标数据。

步骤四:在 Grafana 上配置监控告警
1. 进入 Grafana-Alert rules ,单击新建告警规则。
2. 进入告警规则编辑页面,在 A 中,数据源选择 Tencent Cloud Monitor 插件,监控告警的统计时间范围按照需求选择。
3. 在 A 中,插件类型选择日志服务,选择目标日志主题的所在地域、日志主题名称。
4. 在 A 中,在检索语句中输入 SQL语句,其结果作为监控告警指标。
5. 在 B 中,选择 A 中告警指标取值,示例中取最近一个值。
6. 在 C 中,配置告警指标值的告警触发条件,示例中配置值大于100时触发告警。
7. 单击 Preview 预览告警结果。填写告警通知配置,单击保存。

1. 进入 Grafana-Alert rules ,单击新建告警规则,由于指标主题不兼容 Prometheus Alert 相关接口,请使用【Grafana managed alert】
2. 进入告警规则编辑页面,在 A 中,数据源选择步骤2中添加的 Promethues 数据源。
3. 在 A 中,填写指标查询语句。
4. 在 B 中,选择 A 中告警指标取值,示例中取最近一个值。
5. 在 C 中,配置告警指标值的告警触发条件,示例中配置小于1024时触发告警。
单击 Preview 预览告警结果。填写告警通知配置,单击保存。

Grafana 常见问题
Grafana 图表出现超时报错怎么处理?
安装后,建议修改 grafana.ini 文件的 [dataproxy] 配置。
Grafana 默认超时时间为30s,在大数据量的检索时,可能导致 timeout 问题,详情请参见 Grafana proxy queries timeout after 30s with dataproxy。建议修改至60s,以最大限度发挥日志服务的能力。修改配置如下:
[dataproxy]timeout = 60dialTimeout = 60keep_alive_seconds = 60
Grafana 如何安装更多可视化图表?
例如,您需要安装饼图(pie panel),可执行如下命令:
grafana-cli plugins install grafana-piechart-panelservice grafana-server restart
Grafana 如何配置地域与日志主题的变量?
在 Grafana 配置地域变量与日志主题变量,并在图表中引用。可以对仪表盘图表的地域和日志主题进行替换。其配置过程如下:


1. 进入 Grafana 仪表盘配置-Variables 菜单,选择新建 Variables。先配置地域变量,再配置日志主题变量。
2. Variables type 选择 Query。
3. Query options 中 DataSource 选择 Tencent Cloud Monitor 插件。

4. Query 服务类型选择云监控,查询语句如下:
地域变量
Namespace=QCE/CLS&Action=DescribeRegions
日志主题变量
Namespace=QCE/CLS&Action=DescribeInstances&Region=$region&display=${TopicName} (${TopicId})
日志主题变量(只保留符合过滤条件的日志主题)
Namespace=QCE/CLS&Action=DescribeInstances&Region=$region&payload={"Filters":[{"Key":"topicName","Values":["过滤的内容"]}]}&display=${TopicName} (${TopicId})
5. 配置完成后,单击保存。
Grafana 如何使用变量过滤日志数据?
在 Grafana 配置变量,并插入到图表的查询语句中。通过选择不同的变量值,实现对图表数据的过滤。此处以配置用户 IP 过滤器为例:
1. 进入 Grafana 仪表盘配置-Variables 菜单,选择新建 Variables。
2. Variables type 选择 Query。
3. Query options 中 DataSource 选择 Tencent Cloud Monitor 插件。


4. Query 服务类型选择日志服务,查询语句如下 (以 remote_addr 为例,实际使用请替换为目标字段) :
* | select remote_addr group by remote_addr limit 1000
5. (可选)Selection options 勾选多选与全选操作,全选的默认值填写为:*


6. 在语句中插入变量 ${IP} ,配置完成。


Grafana 时序图提示 Data is missing a time field 如何处理?


解决方法:
1. 点击切换到 Transform 的 Tab 页面,添加 Convert field type。
2. 配置 Convert field type,Field 选择 SQL 里的时间字段,as 为 Time 类型。

