Skip to main content

TDinsight

TDinsight 是使用监控数据库和 Grafana 对 TDengine 进行监控的解决方案。

TDengine 通过 taosKeeper 将服务器的 CPU、内存、硬盘空间、带宽、请求数、磁盘读写速度、慢查询等信息定时写入指定数据库,并对重要的系统操作(比如登录、创建、删除数据库等)以及各种错误报警信息进行记录。通过 GrafanaTDengine 数据源插件,TDinsight 将集群状态、节点信息、插入及查询请求、资源使用情况等进行可视化展示,同时还支持 vnode、dnode、mnode 节点状态异常告警,为开发者实时监控 TDengine 集群运行状态提供了便利。本文将指导用户安装 Grafana 服务器并通过 TDinsight.sh 安装脚本自动安装 TDengine 数据源插件及部署 TDinsight 可视化面板。

系统要求

  • 单节点的 TDengine 服务器或多节点的 TDengine 集群,以及一个Grafana服务器。此仪表盘需要 TDengine 3.0.0.0 及以上,并开启监控服务,具体配置请参考:TDengine 监控配置
  • taosAdapter 已经安装并正常运行。具体细节请参考:taosAdapter 使用手册
  • taosKeeper 已安装并正常运行。注意需要 taos.cfg 文件中打开 monitor 相关配置项,具体细节请参考:taosKeeper 使用手册

记录以下信息:

  • taosAdapter 集群 REST API 地址,如:http://tdengine.local:6041
  • taosAdapter 集群认证信息,可使用用户名及密码。
  • taosKeeper 记录监控指标的数据库名称。

安装 Grafana

我们建议在此处使用最新的Grafana 8 或 9 版本。您可以在任何支持的操作系统中,按照 Grafana 官方文档安装说明 安装 Grafana

对于 Debian 或 Ubuntu 操作系统,建议使用 Grafana 镜像仓库。使用如下命令从零开始安装:

sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key |\
sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" |\
sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

安装 TDengine 数据源插件

从 GitHub 安装 TDengine 最新版数据源插件。

get_latest_release() {
curl --silent "https://api.github.com/repos/taosdata/grafanaplugin/releases/latest" |
grep '"tag_name":' |
sed -E 's/.*"v([^"]+)".*/\1/'
}
TDENGINE_PLUGIN_VERSION=$(get_latest_release)
sudo grafana-cli \
--pluginUrl https://github.com/taosdata/grafanaplugin/releases/download/v$TDENGINE_PLUGIN_VERSION/tdengine-datasource-$TDENGINE_PLUGIN_VERSION.zip \
plugins install tdengine-datasource
note

3.1.6 和更早版本插件需要在配置文件 /etc/grafana/grafana.ini 中添加如下设置,以启用未签名插件。

[plugins]
allow_loading_unsigned_plugins = tdengine-datasource

启动 Grafana 服务

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

登录到 Grafana

在 Web 浏览器中打开默认的 Grafana 网址:http://localhost:3000。 默认用户名/密码都是 admin。Grafana 会要求在首次登录后更改密码。

添加 TDengine 数据源

指向 Configurations -> Data Sources 菜单,然后点击 Add data source 按钮。

TDengine Database TDinsight 添加数据源按钮

搜索并选择TDengine

TDengine Database TDinsight 添加数据源

配置 TDengine 数据源。

TDengine Database TDinsight 数据源配置

保存并测试,正常情况下会报告 'TDengine Data source is working'。

TDengine Database TDinsight 数据源测试

导入仪表盘

在配置 TDengine 数据源界面,点击 Dashboards tab。

TDengine Database TDinsight 导入仪表盘和配置

选择 TDengine for 3.x,并点击 import

导入完成后,在搜索界面已经出现了 TDinsight for 3.x dashboard。

TDengine Database TDinsight 查看导入结果

进入 TDinsight for 3.x dashboard 后,选择 taosKeeper 中设置的记录监控指标的数据库。

TDengine Database TDinsight 选择数据库

然后可以看到监控结果。

TDinsight 仪表盘详细信息

TDinsight 仪表盘旨在提供 TDengine 相关资源的使用情况和状态,比如 dnodes、 mnodes、 vnodes 和数据库等。

指标详情如下:

集群状态

TDengine Database TDinsight mnodes overview

这部分包括集群当前信息和状态,告警信息也在此处(从左到右,从上到下)。

  • First EP:当前 TDengine 集群中的firstEp设置。
  • Version:TDengine 服务器版本(master mnode)。
  • Master Uptime: 当前 Master MNode 被选举为 Master 后经过的时间。
  • Expire Time - 企业版过期时间。
  • Used Measuring Points - 企业版已使用的测点数。
  • Databases - 数据库个数。
  • Connections - 当前连接个数。
  • DNodes/MNodes/VGroups/VNodes:每种资源的总数和存活数。
  • DNodes/MNodes/VGroups/VNodes Alive Percent:每种资源的存活数/总数的比例,启用告警规则,并在资源存活率(1 分钟内平均健康资源比例)不足 100%时触发。
  • Measuring Points Used:启用告警规则的测点数用量(社区版无数据,默认情况下是健康的)。
  • Grants Expire Time:启用告警规则的企业版过期时间(社区版无数据,默认情况是健康的)。
  • Error Rate:启用警报的集群总合错误率(每秒平均错误数)。

DNodes 状态

TDengine Database TDinsight mnodes overview

  • DNodes Statusshow dnodes 的简单表格视图。
  • DNodes Lifetime:从创建 dnode 开始经过的时间。
  • DNodes Number:DNodes 数量变化。

MNode 概述

TDengine Database TDinsight mnodes overview

  1. MNodes Statusshow mnodes 的简单表格视图。
  2. MNodes Number:类似于DNodes Number,MNodes 数量变化。

请求

TDengine Database TDinsight requests

  1. Requests Rate(Inserts per Second):平均每秒插入次数。
  2. Requests (Selects):查询请求数及变化率(count of second)。

数据库

TDengine Database TDinsight database

数据库使用情况,对变量 $database 的每个值即每个数据库进行重复多行展示。

  1. STables:超级表数量。
  2. Total Tables:所有表数量。
  3. Tables:所有普通表数量随时间变化图。
  4. Tables Number Foreach VGroups:每个 VGroups 包含的表数量。

DNode 资源使用情况

TDengine Database TDinsight dnode-usage

数据节点资源使用情况展示,对变量 $fqdn 即每个数据节点进行重复多行展示。包括:

  1. Uptime:从创建 dnode 开始经过的时间。
  2. Has MNodes?:当前 dnode 是否为 mnode。
  3. CPU Cores:CPU 核数。
  4. VNodes Number:当前 dnode 的 VNodes 数量。
  5. VNodes Masters:处于 master 角色的 vnode 数量。
  6. Current CPU Usage of taosd:taosd 进程的 CPU 使用率。
  7. Current Memory Usage of taosd:taosd 进程的内存使用情况。
  8. Disk Used:taosd 数据目录的总磁盘使用百分比。
  9. CPU Usage:进程和系统 CPU 使用率。
  10. RAM Usage:RAM 使用指标时间序列视图。
  11. Disk Used:多级存储下每个级别使用的磁盘(默认为 level0 级)。
  12. Disk Increasing Rate per Minute:每分钟磁盘用量增加或减少的百分比。
  13. Disk IO:磁盘 IO 速率。
  14. Net IO:网络 IO,除本机网络之外的总合网络 IO 速率。

登录历史

TDengine Database TDinsight 登录历史

目前只报告每分钟登录次数。

监控 taosAdapter

TDengine Database TDinsight monitor taosadapter

支持监控 taosAdapter 请求统计和状态详情。包括:

  1. Http Request Total: 请求总数。
  2. Http Request Fail: 请求总数。
  3. CPU Used: taosAdapter CPU 使用情况。
  4. Memory Used: taosAdapter 内存使用情况。
  5. Http Request Inflight: 即时处理请求数。
  6. Http Status Code: taosAdapter http 状态码。

升级

通过 TDinsight.sh 脚本安装的 TDinsight,可以通过重新运行该脚本就可以升级到最新的 Grafana 插件和 TDinsight Dashboard。

手动安装的情况下,可按照上述步骤自行安装新的 Grafana 插件和 Dashboard。

卸载

通过 TDinsight.sh 脚本安装的 TDinsight,可以使用命令行 TDinsight.sh -R 清理相关资源。

手动安装时,要完全卸载 TDinsight,需要清理以下内容:

  1. Grafana 中的 TDinsight Dashboard。
  2. Grafana 中的 Data Source 数据源。
  3. 从插件安装目录删除 tdengine-datasource 插件。

整合的 Docker 示例

git clone --depth 1 https://github.com/taosdata/grafanaplugin.git
cd grafanaplugin

根据需要在 docker-compose.yml 文件中修改:

version: '3.7'

services:
grafana:
image: grafana/grafana:7.5.10
volumes:
- ./dist:/var/lib/grafana/plugins/tdengine-datasource
- ./grafana/grafana.ini:/etc/grafana/grafana.ini
- ./grafana/provisioning/:/etc/grafana/provisioning/
- grafana-data:/var/lib/grafana
environment:
TDENGINE_API: ${TDENGINE_API}
TDENGINE_USER: ${TDENGINE_USER}
TDENGINE_PASS: ${TDENGINE_PASS}
ports:
- 3000:3000
volumes:
grafana-data:

替换docker-compose.yml中的环境变量或保存环境变量到.env文件,然后用docker-compose up启动 Grafana。docker-compose 工具的具体用法参见 Docker Compose Reference

docker-compose up -d

TDinsight 已经通过 Provisioning 部署完毕,请到 http://localhost:3000/d/tdinsight/ 查看仪表盘。