专业网站建设公司怎么选,wordpress 混合移动app,网页升级紧急通知正常更新,闲鱼钓鱼网站怎么做背景 如果没有监控#xff0c;那么最好的情况是没有问题发生#xff0c;最糟糕的情况则是问题发生了但没有被发现。——《Prometheus监控实战》 在10月10日收到了 TDengine 官方微信公众号的一条推送#xff0c;摘要如下#xff1a; 今天(2024年10月10日)我们非常高兴地宣布…背景 如果没有监控那么最好的情况是没有问题发生最糟糕的情况则是问题发生了但没有被发现。——《Prometheus监控实战》 在10月10日收到了 TDengine 官方微信公众号的一条推送摘要如下 今天(2024年10月10日)我们非常高兴地宣布TDengine 3.3.3.0 版本正式发布。本次更新引入了多项重要功能和性能优化旨在为用户提供更高效、更灵活的数据解决方案。在 3.3.3.0 版本中我们着重优化了监控和告警功能新增了多种常见的 MySQL 函数并增强了对 MongoDB 数据源的支持。这些改进将为用户在物联网和大数据应用中提供更强大的功能助力大家在数字化转型过程中实现更大的成功。 时序数据库作为软件项目的基础设施对其运行状态进行实时监控的重要性不言而喻今天就来体验下重优化了监控和告警功能。曾在 TDengine 2.1.2.0 发布后体验了将 TDengine 日志数据表的内容在 Grafana 仪表盘上可视化展现的功能后来官方不断扩展其监控能力打造了 TDinsight 这一可视化工具与 Grafana 的生态打成一片。这篇文章通过容器化安装 TDengine 时序数据库与 TDinsight 监控大盘使用 taosKeeper 与 TDinsight 实现对 TDengine 服务的状态监测与钉钉告警消息推送。
虚机资源
共用到了2台虚机1台作为应用服务节点1台运维监控节点。
主机名IP说明svc192.168.44.168服务节点ops192.168.44.169监控节点
基本选用当前最新版本即将安装的 Grafana 及组件版本信息如下
Grafana版本11.2.0TDengine版本3.3.3.0自带了taosAdapter与taosKeeper
系统环境
[rootops ~]# uname -a
Linux ops 5.10.0-182.0.0.95.oe2203sp3.x86_64 #1 SMP Sat Dec 30 13:10:36 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
[rootops ~]# cat /proc/version
Linux version 5.10.0-182.0.0.95.oe2203sp3.x86_64 (rootdc-64g.compass-ci) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Sat Dec 30 13:10:36 CST 2023svc节点Docker安装TDengine3.3.3.0
使用 Docker 安装 TDengine3.3.3.0 命名容器为 tdengine 并挂载了数据与日志的卷目录。
[rootsvc opt]# docker pull tdengine/tdengine:3.3.3.0[rootsvc opt]# docker run -d --name tdengine -v /opt/tdengine/data:/var/lib/taos \-v /opt/tdengine/log:/var/log/taos \-p 6030:6030 -p 6041:6041 -p 6043-6060:6043-6060 -p 6043-6060:6043-6060/udp tdengine/tdengine:3.3.3.0
0b9e36feac54d787114e5eed8b5dc7fa132dcd29d736b7489733194a27f28cab客户端工具验证TDengine安装效果 浏览器验证metrics端点
浏览器访问http://192.168.44.168:6043/metrics这些指标默认会被写入 TDengine 的 log 数据库而 Grafana 则通过读取 log 数据库的数据表实现监控数据可视化。
Note: taosKeeper 是 TDengine 3.0 版本监控指标的导出工具通过简单的几项配置即可获取 TDengine 的运行状态可以将这些指标导入到 Prometheus 本文直接使用 TDengine 存储。
ops节点docker-compose安装Grafana
参考云原生之运维监控实践-OpenEuler22.03SP3上安装Prometheus与Grafana实现主机状态监测
在 Grafana 所在主机安装 TDinsight 之后才可以在 Grafana 的数据源中添加 TDengine 数据源。
# 编辑TDinsight下载脚本
[rootops monitoring]# vi tdinsight-plugin.sh
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)
grafana-cli \--pluginUrl https://github.com/taosdata/grafanaplugin/releases/download/v$TDENGINE_PLUGIN_VERSION/tdengine-datasource-$TDENGINE_PLUGIN_VERSION.zip \plugins install tdengine-datasource# 复制下载脚本到Grafana容器中
[rootops monitoring]# docker cp tdinsight-plugin.sh ops-grafana:/usr/share/grafanaSuccessfully copied 2.05kB to ops-grafana:/usr/share/grafana# 下载并安装TDinsight插件
[rootops monitoring]# docker exec ops-grafana bash tdinsight-plugin.sh
Deprecation warning: The standalone grafana-cli program is deprecated and will be removed in the future. Please update all uses of grafana-cli to grafana cli
✔ Downloaded and extracted tdengine-datasource v3.6.0 zip successfully to /var/lib/grafana/plugins/tdengine-datasourcePlease restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary.# 重启Grafana容器
[rootops monitoring]# docker restart ops-grafana
ops-grafanaTDinsight监控实战
浏览器访问http://192.168.44.169:3000。
配置数据源
点击左侧菜单中的Add new connection。选择或搜索Data Sources。点击Add data source并选择TDengine Datasource。在HTTP部分输入TDengine地址eghttp://192.168.44.168:6041点击Save Test确认连接成功。 导入仪表板
查看现成的仪表板
https://grafana.com/grafana/dashboards/这个页面是 Grafana 的官方仪表板目录用户可以在这里找到和共享各种现成的 Grafana 仪表板。这些仪表板覆盖了多种监控需求包括系统性能、应用监控、网络流量等。用户可以根据自己的需求搜索和导入适合的仪表板提高监控效率和可视化效果。这里我们搜索 TDengine 结果中有个 TDinsight for 3.x 点击进去可以查看详细的UI效果复制仪表板的id此处是18180。
导入现成的仪表板
在右侧菜单中点击New按钮然后选择Import。在输入框中可以直接输入现成仪表板的ID或者上传JSON文件。常用的主机监控仪表板ID是18180TDinsight for 3.x。点击Load随后选择已配置好的数据源。点击Import完成导入。 TDinsight监控效果
TDinsight 是使用监控数据库和 Grafana 对 TDengine 进行监控的解决方案将集群状态、节点信息、插入及查询请求、资源使用情况等进行可视化展示同时还支持 vnode 、 dnode 、 mnode 节点状态异常告警。 TDinsight告警实战 一个好警报的关键是能够在正确的时间、以正确的理由和正确的速度发送并在其中放入有用的信息。 告警原理说明
Grafana告警定期查询数据源并评估告警规则中定义的条件如果条件被违反则会触发告警实例触发的实例根据匹配的标签路由到通知策略通知将发送到通知策略中指定的联系点。 配置告警规则
这里我们使用 TDinsight 默认提供的告警规则。要建立一个出色的通知系统需要考虑以下基础信息而基于 Grafana 的 TDinsight 监控方案做到了
哪些问题需要通知谁需要被告知如何告知他们多久告知他们一次。 配置推送方式
支持的推送方式较多这里选用钉钉推送从钉钉中获取机器人的 access_token 并命名推送方式为 DingDingPush 其中的 Message Type 后来我改成了 ActionCard 。 配置通知策略
默认的通知策略是邮件方式这里直接调整为我们的 DingDingPush 。 模拟压力告警
进入 TDengine 容器内部执行 taosBenchmark 为了模拟告警这里在 test 数据库中创建10000张表每张表写入2000000条数据由于容器的磁盘空间有限将会触发磁盘告警进而导致 DNodes 、 VNodes 停止工作然后触发告警。
[rootops monitoring]# docker exec -it tdengine /bin/bash
root9118ddbfa74b:~# taosBenchmark -I stmt -n 2000000 -t 10000在 TDinsight 的仪表板上可以看到磁盘使用率已到达95%根据报警规则设置即将触发告警。 告警触发推送与告警解除推送
当 taosBenchmark 写入数据逐渐将磁盘空间耗尽时会触发告警进而会通过我们配置的告警方式和策略进行推送本文中我们将通过钉钉接收到推送消息 当我通过 taos 命令行中执行 drop database test; 删除 test 数据库后 TDengine 服务恢复正常过一段时间一个告警监测周期后在钉钉上会收到各类告警解除的消息。
[rootlocalhost monitoring]# docker exec -it tdengine /bin/bash
root9118ddbfa74b:~# taos
Welcome to the TDengine Command Line Interface, Client Version:3.3.3.0
Copyright (c) 2023 by TDengine, all rights reserved.********************************* Tab Completion ************************************** The TDengine CLI supports tab completion for a variety of items, ** including database names, table names, function names and keywords. ** The full list of shortcut keys is as follows: ** [ TAB ] ...... complete the current word ** ...... if used on a blank line, display all supported commands ** [ Ctrl A ] ...... move cursor to the st[A]rt of the line ** [ Ctrl E ] ...... move cursor to the [E]nd of the line ** [ Ctrl W ] ...... move cursor to the middle of the line ** [ Ctrl L ] ...... clear the entire screen ** [ Ctrl K ] ...... clear the screen after the cursor ** [ Ctrl U ] ...... clear the screen before the cursor *****************************************************************************************
Server is TDengine Community Edition, ver:3.3.3.0 and will never expire.taos drop database test;
Drop OK, 0 row(s) affected (1.476353s)Note: 在 Prometheus 与 AlertManager 的生态中 alertstate 字段表示报警的状态有以下几种可能的取值
Firing表示报警处于触发状态。当报警规则的条件满足时报警状态会变为Firing表示触发了报警。通常情况下报警会发送给相关的接收器或通知渠道以便进行处理。Resolved表示报警已解决。当报警规则的条件不再满足时报警状态会变为Resolved表示报警已经解决。这意味着报警规则所监控的指标已经恢复到正常状态不再需要进一步的处理。Pending表示报警处于等待状态。当报警规则的条件满足时报警状态会从Firing变为Pending表示报警处于等待状态。在报警状态从Firing到Resolved之间的过渡期间报警可能会处于Pending状态这通常是因为报警规则定义了一些延迟或滞后的条件。
小总结 If you can’t measure it, you can’t improve it! 没有度量就没有改进这篇文章介绍了如何使用 TDengine 、 taosKeeper 和 TDinsight 来实现对 TDengine 服务的状态监测和告警功能。详细记录了在两台虚拟机上的安装过程包括在服务节点上使用 Docker 安装最新版的 TDengine 3.3.3.0 以及在监控节点上安装 Grafana 和 TDinsight 插件。此外还展示了如何配置 Grafana 数据源、导入 TDinsight 仪表板以及设置告警规则和通知策略。最后通过模拟压力测试演示了如何触发磁盘空间不足的告警并通过钉钉接收告警推送和解除通知。这个实践展示了 TDengine 生态系统在监控和告警方面的强大功能为数据库管理员及运维工程师提供了有效的监控解决方案。
Reference
https://github.com/taosdata/TDengine/releases/tag/ver-3.3.3.0https://github.com/taosdata/TDengine/releases/tag/ver-3.3.3.0https://grafana.com/grafana/dashboards/18180-tdinsight-for-3-x/https://docs.taosdata.com/reference/components/taoskeeper/ If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!