TDinsight for 2.x

使用警报监控 TDengine 数据库

TDinsight for 2.x screenshot 1
TDinsight for 2.x screenshot 2
TDinsight for 2.x screenshot 3
TDinsight for 2.x screenshot 4
TDinsight for 2.x screenshot 5
TDinsight for 2.x screenshot 6
TDinsight for 2.x screenshot 7

TDinsight - 一个用于 TDengine 的零依赖监控解决方案,集成 Grafana

语言:英语 简体中文

TDinsight v2.x 使用 TDengine 内置数据库(log)和 Grafana 来监控 TDengine 本身。

TDengine 启动后,会自动创建一个名为 log 的数据库,并定期记录服务器的 CPU、内存、磁盘使用情况、网络带宽、请求数、磁盘读写吞吐量、慢查询以及其他用于监控的信息。它还会记录重要的系统操作(例如登录、创建或删除数据库等)和错误。TDinsight 将通过 GrafanaTDengine 数据源插件将 TDengine 集群状态、节点信息、插入和查询请求、资源使用情况等进行可视化。它还支持 vnode、dnode 和 mnode 等节点的异常状态告警,方便运维人员实时监控 TDengine 集群的运行状态。本文将指导用户安装 Grafana 服务器,然后通过 TDinsight.sh 脚本自动或手动安装 TDengine 数据源插件并部署 TDinsight 可视化仪表盘。

要求

至少,您必须拥有一个单节点的 TDengine 服务器或一个多节点的 TDengine 集群,以及一个用于 Grafana 的服务器主机。此仪表盘需要新的日志数据库(自 v2.3.3.0 起),包括 cluster_infodnodes_infovgroups_info 等表。

安装 Grafana

功能丰富的 Grafana 仪表盘用于 TDengine(集群或非集群)需要 Grafana 7.x 或 8.x,因此我们建议此处使用最新的 Grafana 7/8 版本。您可以在任何支持的操作系统上安装 Grafana,按照安装说明进行操作。

在 Debian 或 Ubuntu 上安装 Grafana

对于 Debian 或 Ubuntu 操作系统,第一个选项是使用 grafana APT 仓库。以下是如何从头开始安装:

bash
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

在 CentOS/RHEL 上安装 Grafana

您可以从官方 YUM 仓库安装。

bash
sudo tee /etc/yum.repos.d/grafana.repo << EOF
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
sudo yum install grafana

或使用 RPM 安装

bash
wget https://dl.grafana.com/oss/release/grafana-7.5.11-1.x86_64.rpm
sudo yum install grafana-7.5.11-1.x86_64.rpm
# it's ok to use in one line
sudo yum install \
  https://dl.grafana.com/oss/release/grafana-7.5.11-1.x86_64.rpm

自动设置 TDinsight v2.x

我们创建了一个 TDinsight.sh 脚本,通过 Grafana 配置策略实现自动化。

您可以通过 wget 或其他工具下载该脚本

bash
wget https://github.com/taosdata/grafanaplugin/releases/latest/download/TDinsight.sh
chmod +x TDinsight.sh

此脚本将自动下载最新的 TDengine 数据源插件TDinsight 仪表盘,将它们转换为配置并设置 TDinsight 仪表盘。通过一些额外的警报选项,您只需一条命令行即可获得警报通知功能。

对于最简单的用例,假设您在同一主机上运行 TDengine 和 Grafana,并且都使用默认选项。运行 ./TDinsight.sh 并打开 Grafana URL 是您设置 TDinsight 所需的全部操作。

以下是 TDinsight.sh 的用法

bash
Usage:
   ./TDinsight.sh
   ./TDinsight.sh -h|--help
   ./TDinsight.sh -n <ds-name> -a <api-url> -u <user> -p <password>

Install and configure TDinsight dashboard in Grafana on Ubuntu 18.04/20.04 system.

-h, -help,          --help                  Display help

-V, -verbose,       --verbose               Run script in verbose mode. Will print out each step of execution.

-v, --plugin-version <version>              TDengine datasource plugin version, [default: latest]

-P, --grafana-provisioning-dir <dir>        Grafana provisioning directory, [default: /etc/grafana/provisioning/]
-G, --grafana-plugins-dir <dir>             Grafana plugins directory, [default: /var/lib/grafana/plugins]
-O, --grafana-org-id <number>               Grafana organization id. [default: 1]

-n, --tdengine-ds-name <string>             TDengine datasource name, no space. [default: TDengine]
-a, --tdengine-api <url>                    TDengine REST API endpoint. [default: http://127.0.0.1:6041]
-u, --tdengine-user <string>                TDengine user name. [default: root]
-p, --tdengine-password <string>            TDengine password. [default: taosdata]

-i, --tdinsight-uid <string>                Replace with a non-space ASCII code as the dashboard id. [default: tdinsight]
-t, --tdinsight-title <string>              Dashboard title. [default: TDinsight]
-e, --tdinsight-editable                    If the provisioning dashboard could be editable. [default: false]

大多数 CLI 选项都可被环境变量识别。

短选项长选项环境变量描述
-v–plugin-versionTDENGINE_PLUGIN_VERSIONTDengine 数据源插件版本,默认为最新。
-P–grafana-provisioning-dirGF_PROVISIONING_DIRGrafana 配置目录,[默认: /etc/grafana/provisioning/]
-G–grafana-plugins-dirGF_PLUGINS_DIRGrafana 插件目录,默认为 /var/lib/grafana/plugins
-O–grafana-org-idGF_ORG_IDGrafana 组织 ID,默认为 1。
-n–tdengine-ds-nameTDENGINE_DS_NAMETDengine 数据源名称,默认为 TDengine。
-a–tdengine-apiTDENGINE_APITDengine REST API 端点,默认为 http://127.0.0.1:6041
-u–tdengine-userTDENGINE_USERTDengine 用户名。[默认: root]
-p–tdengine-passwordTDENGINE_PASSWORDTDengine 密码。[默认: taosdata]
-i–tdinsight-uidTDINSIGHT_DASHBOARD_UIDTDinsight 仪表盘 uid。[默认: tdinsight]
-t–tdinsight-titleTDINSIGHT_DASHBOARD_TITLETDinsight 仪表盘标题。[默认: TDinsight]
-e–tdinsight-editableTDINSIGHT_DASHBOARD_EDITABLE配置的仪表盘是否可编辑。[默认: false]

假设您在主机 tdengine 上运行 TDengine,HTTP API 端口为 6041,用户名为 root1,密码为 pass5ord。使用脚本如下:

bash
./TDinsight.sh -a http://tdengine:6041 -u root1 -p pass5ord

我们提供了 -E 选项,用于从命令行配置现有的 TDinsight 通知通道。假设您的 Grafana 用户名和密码都是 admin:admin,使用以下命令获取通知通道:

bash
curl --no-progress-meter -u admin:admin https://:3000/api/alert-notifications | jq

在这里,我们使用通知通道的 uid 属性作为 -E 输入。

bash
./TDinsight.sh -a http://tdengine:6041 -u root1 -p pass5ord -E existing-notifier

如果您想监控多个 TDengine 集群,您需要设置多个 TDinsight 仪表盘。设置非默认 TDinsight 需要做一些更改 - 需要将 -n-i-t 选项更改为其他名称。

bash
sudo ./TDengine.sh -n TDengine-Env1 -a http://another:6041 -u root -p taosdata -i tdinsight-env1 -t 'TDinsight Env1'

请注意,配置的数据源、通知通道和仪表盘在前台是不可更改的。您应该通过此脚本再次更新配置或手动更改配置。配置都位于 /etc/grafana/provisioning 目录中(此目录是 Grafana 的默认目录,如果需要,可以使用 -P 选项更改)。

对于特殊用例,-O 将在您使用 Grafana Cloud 或使用不同组织时设置组织 ID。-G 让您选择 Grafana 插件安装目录。-e 将设置仪表盘为可编辑。

手动设置 TDinsight v2.x

安装 TDengine 数据源插件

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

bash
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

注意:如果您使用的是 v3.1.7 之前的旧版本,请通过在 /etc/grafana/grafana.ini 中添加以下行来配置允许使用未签名插件。

ini
[plugins]
allow_loading_unsigned_plugins = tdengine-datasource

启动 Grafana 服务

bash
systemctl enable grafana-server
systemctl start grafana-server

登录 Grafana

在您的网络浏览器中打开默认的 grafana url:https://:3000。默认用户名/密码都是 admin。Grafana 会在首次登录后要求您更改密码。

添加 TDengine 数据源

指向配置 (Configurations) -> 数据源 (Data Sources) 菜单,然后点击添加数据源 (Add data source) 按钮。

add data source button

搜索并选择 TDengine

add data source

配置 TDengine 数据源。

data source configuration

保存并测试,应该显示“TDengine 数据源正常工作”。

data source test

导入 TDengine 仪表盘

指向 + / 创建 (Create) - 导入 (import) (或 /dashboard/import url)。

import dashboard and config

使用 grafana.com 上的仪表盘 ID 15167

import via grafana.com

然后就完成了。

TDengine 的全页面视图如下所示。

display

TDinsight v2.x 仪表盘详情

TDinsight 仪表盘旨在提供 TDengine 集群资源使用情况以及 dnodes、mnodes、vnodes 或数据库的状态。它包含几个指标分区。

集群状态

tdinsight-mnodes-overview

包括集群当前信息和状态(从左到右,从上到下)。

  • First EP:当前 TDengine 集群中的第一个 EP。
  • Version:MNode 的服务器版本。
  • Master Uptime:当前 master mnode 选举以来的时间。
  • Expire Time - 企业版到期时间。
  • Used Measuring Points - 企业版已使用的测量点。
  • Databases - 数据库总数。
  • Connections - 当前连接数。
  • DNodes/MNodes/VGroups/VNodes:每种资源的总体数量和活动数量。
  • DNodes/MNodes/VGroups/VNodes Alive Percent:每种资源的活动数量/总数量百分比,启用了告警规则,默认情况下,当资源活动百分比非 100% 时触发。
  • Measuring Points Used:已启用告警的企业版已使用的测量点。
  • Grants Expire Time:已启用告警的企业版到期时间。
  • Error Rate:已启用告警的集群总体错误率。
  • Variables:由 show variables 命令生成并以表格视图显示。

DNode 状态

tdinsight-mnodes-overview

  • DNodes Statusshow dnodes 的简单表格视图。
  • DNodes Lifetime:DNode 创建以来经过的时间。
  • DNodes Number:DNode 数量变化的时间序列图。
  • Offline Reasons:如果任何 dnode 状态为离线,则显示离线原因饼状图。

MNodes 概览

tdinsight-mnodes-overview

  1. MNodes Statusshow mnodes 的简单表格视图。
  2. MNodes Number:与 DNodes Number 类似,但针对 mnodes。

请求

tdinsight-requests

  1. Requests Rate (Inserts per Second):每秒插入计数速率。
  2. Requests (Selects):查询请求计数和速率。
  3. Requests (HTTP):HTTP 请求计数和速率。

每个 $database 的数据库

tdinsight-database

  1. STables:超表数量。
  2. Total Tables:所有表总数。
  3. Sub Tables:作为超表的子表的数量。
  4. Tables:表变化的时间序列数据。
  5. Tables Number Foreach VGroups:每个 vgroups 的表数量。

每个 $fqdn 的 DNode 使用情况

dnode-usage

特定节点的 DNode 资源详情,使用 grafana 查询类型变量 $fqdn(来自 select tbname from log.dn),包括:

  • 当前内存使用率、CPU 使用率、带宽速度、IO 读写速率、磁盘使用量等。
  • 过去一小时或某个时间段内的最大资源使用量。
  • CPU 图表视图。
  • 内存使用情况。
  • 磁盘使用百分比:带有告警规则的图表视图。
  • 磁盘使用量。
  • 每分钟请求计数。
  • IO 速率(读/写),与过去一小时的数据进行对比。

以下是指标列表

  1. Uptime:DNode 创建以来的经过时间。
  2. Has MNodes?:如果 DNode 有 MNode。
  3. CPU Cores:CPU 核数。
  4. VNodes Number:当前 DNode 的 VNodes 数量。
  5. VNodes Masters:处于 master 角色的 VNodes 数量。
  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:每个级别的磁盘使用量。
  12. Disk Increasing Rate per Minute:每分钟磁盘增长速率。
  13. Disk IO:进程读/写字节的时间序列数据和视图。
  14. Net IO:除 lo 外所有网络的总入/出比特数。

登录历史

login-history

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

TaosAdapter

taosadapter

包括 taosAdapter http 请求统计信息和状态信息

以下是指标列表

  1. http_request:包括总 http 请求数、失败的 http 请求数以及进行中的 http 请求数。
  2. top 3 request endpoint:排名前 3 的总请求数及相应的端点。
  3. Memory Used:taosAdapter 内存使用量
  4. latency_quantile(ms):每个阶段的百分位数(1, 2, 5, 9, 99)
  5. top 3 failed request endpoint:排名前 3 的请求失败数及相应的端点。
  6. CPU Used:taosAdapter CPU 使用率

升级

使用 TDinsight.sh 重新安装将升级 Grafana 插件和 TDinsight 仪表盘。

在其他情况下,用户应首先安装新的 TDengine 数据源插件,然后移除并安装新的 TDinsight 仪表盘。

卸载

使用 TDinsight.sh,只需运行 TDinsight.sh -R 即可清理所有已安装的组件。

如果您是手动安装 TDinsight,请按照以下步骤进行清理。

  1. 在 Grafana 网页中移除 TDinsight 仪表盘。
  2. 从 Grafana 数据源中移除 TDengine。
  3. 从 Grafana 插件目录中移除 tdengine-datasource 插件。

一体化 Docker 示例

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

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

yaml
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 启动 Grafana。

bash
docker-compose up -d

TDinsight v2.x 已内置,请访问 https://:3000/dashboards 查看仪表盘。

修订
修订描述创建时间

获取此仪表盘

导入仪表盘模板

下载 JSON

数据源
依赖项