IoTDB配套监控面板是IoTDB企业版配套工具之一。它旨在解决IoTDB及其所在操作系统的监控问题,主要包括:操作系统资源监控、IoTDB性能监控,及上百项内核监控指标,从而帮助用户监控集群健康状态,并进行集群调优和运维。本文将以常见的3C3D集群(3个Confignode和3个Datanode)为例,为您介绍如何在IoTDB的实例中开启系统监控模块,并且使用Prometheus + Grafana的方式完成对系统监控指标的可视化。
监控面板工具的使用说明可参考文档 使用说明 章节。
| 配置项 | 所在配置文件 | 配置说明 |
|---|---|---|
| cn_metric_reporter_list | conf/iotdb-system.properties | 将配置项取消注释,值设置为PROMETHEUS |
| cn_metric_level | conf/iotdb-system.properties | 将配置项取消注释,值设置为IMPORTANT |
| cn_metric_prometheus_reporter_port | conf/iotdb-system.properties | 将配置项取消注释,可保持默认设置9091,如设置其他端口,不与其他端口冲突即可 |
| dn_metric_reporter_list | conf/iotdb-system.properties | 将配置项取消注释,值设置为PROMETHEUS |
| dn_metric_level | conf/iotdb-system.properties | 将配置项取消注释,值设置为IMPORTANT |
| dn_metric_prometheus_reporter_port | conf/iotdb-system.properties | 将配置项取消注释,可默认设置为9092,如设置其他端口,不与其他端口冲突即可 |
以3C3D集群为例,需要修改的监控配置如下:
| 节点ip | 主机名 | 集群角色 | 配置文件路径 | 配置项 |
|---|---|---|---|---|
| 192.168.1.3 | iotdb-1 | confignode | conf/iotdb-system.properties | cn_metric_reporter_list=PROMETHEUS cn_metric_level=IMPORTANT cn_metric_prometheus_reporter_port=9091 |
| 192.168.1.4 | iotdb-2 | confignode | conf/iotdb-system.properties | cn_metric_reporter_list=PROMETHEUS cn_metric_level=IMPORTANT cn_metric_prometheus_reporter_port=9091 |
| 192.168.1.5 | iotdb-3 | confignode | conf/iotdb-system.properties | cn_metric_reporter_list=PROMETHEUS cn_metric_level=IMPORTANT cn_metric_prometheus_reporter_port=9091 |
| 192.168.1.3 | iotdb-1 | datanode | conf/iotdb-system.properties | dn_metric_reporter_list=PROMETHEUS dn_metric_level=IMPORTANT dn_metric_prometheus_reporter_port=9092 |
| 192.168.1.4 | iotdb-2 | datanode | conf/iotdb-system.properties | dn_metric_reporter_list=PROMETHEUS dn_metric_level=IMPORTANT dn_metric_prometheus_reporter_port=9092 |
| 192.168.1.5 | iotdb-3 | datanode | conf/iotdb-system.properties | dn_metric_reporter_list=PROMETHEUS dn_metric_level=IMPORTANT dn_metric_prometheus_reporter_port=9092 |
./sbin/stop-standalone.sh #先停止confignode和datanode ./sbin/start-confignode.sh -d #启动confignode ./sbin/start-datanode.sh -d #启动datanode
此处以prometheus安装在服务器192.168.1.3为例。
tar xvfz prometheus-*.tar.gz cd prometheus-*
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "confignode" static_configs: - targets: ["iotdb-1:9091","iotdb-2:9091","iotdb-3:9091"] honor_labels: true - job_name: "datanode" static_configs: - targets: ["iotdb-1:9092","iotdb-2:9092","iotdb-3:9092"] honor_labels: true
./prometheus --config.file=prometheus.yml --storage.tsdb.retention.time=180d
确认启动成功。在浏览器中输入 http://192.168.1.3:9090,进入Prometheus,点击进入Status下的Target界面,当看到State均为Up时表示配置成功并已经联通。
点击Targets中左侧链接可以跳转到网页监控,查看相应节点的监控信息:
此处以Grafana安装在服务器192.168.1.3为例。
tar -zxvf grafana-*.tar.gz cd grafana-*
./bin/grafana-server web
登录Grafana。在浏览器中输入 http://192.168.1.3:3000(或修改后的端口),进入Grafana,默认初始用户名和密码均为 admin。
配置数据源。在Connections中找到Data sources,新增一个data source并配置Data Source为Prometheus
在配置Data Source时注意Prometheus所在的URL,配置好后点击Save & Test 出现 Data source is working 提示则为配置成功
进入Grafana,选择Dashboards:
点击右侧 Import 按钮
使用upload json file的方式导入Dashboard
选择IoTDB监控面板中其中一个面板的json文件,这里以选择 Apache IoTDB ConfigNode Dashboard为例(监控面板安装包获取参见本文【安装准备】):
选择数据源为Prometheus,然后点击Import
之后就可以看到导入的Apache IoTDB ConfigNode Dashboard监控面板
同样地,我们可以导入Apache IoTDB DataNode Dashboard、Apache Performance Overview Dashboard、Apache System Overview Dashboard,可看到如下的监控面板:
至此,IoTDB监控面板就全部导入完成了,现在可以随时查看监控信息了。
该面板展示了当前系统CPU、内存、磁盘、网络资源的使用情况已经JVM的部分状况。
eno 指的是到公网的网卡,lo 是虚拟网卡。
该面板展示了集群中所有管理节点的表现情况,包括分区、节点信息、客户端连接情况统计等。
该面板展示了集群中所有数据节点的监控情况,包含写入耗时、查询耗时、存储文件数等。
查询的数据交换耗时。