部署 Dashboard¶
安装部署 Dashboard 涉及 5 种服务,本文将详细介绍如何通过 TAR 包安装部署。下载和编译 NebulaGraph Dashboard 的最新源码,请参见 GitHub nebula dashboard 页面的说明。
前提条件¶
在部署 Dashboard 之前,用户需要确认以下信息:
- NebulaGraph 服务已经部署并启动。详细信息参考 NebulaGraph 安装部署。
-
确保以下端口未被使用:
- 9200
- 9100
- 9090
- 8090
- 7003
- 使用的 Linux 发行版为 CentOS ,安装有版本为 v10.12.0 以上的 Node.js,安装有版本为 1.13 及以上的 Go。
下载 Dashboard¶
在每台机器上下载 TAR 包,建议选择最新版本。
Dashboard 安装包 | NebulaGraph 版本 |
---|---|
nebula-dashboard-3.1.0.x86_64.tar.gz | 2.5.x ~ 3.1.x |
目录结构说明¶
执行命令tar -xvf nebula-dashboard-3.1.0.x86_64.tar.gz
解压缩,目录nebula-dashboard/vendors
内一共有 4 个子目录,说明如下。
目录名称 | 说明 | 端口号 |
---|---|---|
node-exporter | 收集集群中机器的资源信息,包括 CPU、内存、负载、磁盘和流量。 | 9100 |
nebula-stats-exporter | 收集集群的性能指标,包括服务 IP 地址、版本和监控指标(例如查询数量、查询延迟、心跳延迟等)。 | 9200 |
prometheus | 存储监控数据的时间序列数据库。 | 9090 |
nebula-http-gateway | 为集群服务提供 HTTP 接口,执行 nGQL 语句与 NebulaGraph 数据库进行交互。 | 8090 |
方式一 通过 Docker Compose 部署 Dashboard 依赖服务¶
支持通过 Docker Compose 启动 Dashboard 所需的所有服务。
前提条件¶
确保用户在部署 Dashboard 的机器上已经安装了 Docker。
操作步骤¶
-
在 NebulaGraph 集群的每台机器上的
nebula-dashboard
安装目录下,进入vendors/node-exporter
,然后分别执行以下命令启动node-exporter
。nohup ./node-exporter --web.listen-address=":9100" &
Note
用户可根据需要,决定是否在集群中的每台机器上启动
node-exporter
服务。 -
在部署 Dashboard 机器上的
nebula-dashboard
安装目录下,部署 Dashboard 所需的服务。-
进入
vendors/nebula-stats-exporter
目录,通过修改config.yaml
文件,配置 NebulaGraph 集群所有服务的 HTTP 端口及所在机器的 IP。示例如下:clusters: - name: nebula instances: - name: metad0 endpointIP: 192.168.8.157 endpointPort: 19559 componentType: metad - name: metad1 endpointIP: 192.168.8.155 endpointPort: 19559 componentType: metad - name: metad2 endpointIP: 192.168.8.154 endpointPort: 19559 componentType: metad - name: graphd0 endpointIP: 192.168.8.157 endpointPort: 19669 componentType: graphd - name: graphd1 endpointIP: 192.168.8.155 endpointPort: 19669 componentType: graphd - name: graphd2 endpointIP: 192.168.8.154 endpointPort: 19669 componentType: graphd - name: storaged0 endpointIP: 192.168.8.157 endpointPort: 19779 componentType: storaged - name: storaged1 endpointIP: 192.168.8.155 endpointPort: 19779 componentType: storaged - name: storaged2 endpointIP: 192.168.8.154 endpointPort: 19779 componentType: storaged
-
进入
vendors/prometheus
目录,通过修改prometheus.yaml
文件,配置node-exporter
和nebula-stats-exporter
服务的地址和端口。示例如下:global: scrape_interval: 5s # 收集监控数据的间隔时间。默认为 1 分钟。 evaluation_interval: 5s # 告警规则扫描时间间隔。默认为 1 分钟。 scrape_configs: - job_name: 'node-exporter' static_configs: - targets: [ '192.168.8.154:9100', '192.168.8.155:9100', '192.168.8.157:9100' # node-exporter 服务的 IP 地址和端口。 ] - job_name: 'nebula-stats-exporter' static_configs: - targets: [ 'nebula-stats-exporter:9200', # nebula-stats-exporter 服务的地址和端口。 ]
-
在目录
nebula-dashboard
内,修改文件config.json
,配置代理信息。{ "port": 7003, "proxy":{ "gateway":{ "target": "nebula-http-gateway:8090" # nebula-http-gateway 服务的地址和端口号。 }, "prometheus":{ "target": "prometheus:9090" # Prometheus 服务的地址和端口号。 }, "graph":{ "target": "graphd:19669" # 用于获取 Graph 服务的运行配置。 }, "storage":{ "target": "graphd:19779" # 用于获取 Storage 服务的运行配置。 } }, "nebulaServer": { "ip": "192.168.8.131", # 任一 Graph 服务的机器 IP。 "port": 9669 # Graph 服务的端口号。 } }
-
-
在任意目录下执行以下命令创建供 Dashboard 中所有服务相互访问的网络。
docker network create nebula-net
-
在目录
nebula-dashboard
内,执行以下命令启动 Dashboard 的依赖服务。docker-compose -f docker-compose.yaml up -d
关于
docker-compose.yaml
文件中参数的解释,参见服务配置。 -
执行
docker ps
命令查看服务的状态,然后分别进行以下操作检查服务是否都正常启动。- 在浏览器中输入
<IP>:9200
检查nebula-stats-exporter
服务是否正常启动。 - 在浏览器中输入
<IP>:9100
检查node-exporter
服务是否正常启动。 - 在浏览器中输入
<IP>:9090
检查prometheus
服务是否正常启动。 - 在浏览器中输入
<IP>:8090
检查nebula-http-gateway
服务是否正常启动。 - 在浏览器中输入
<IP>:7003
检查dashboard
服务是否正常启动。
- 在浏览器中输入
方式二 逐一部署 Dashboard 依赖服务¶
部署node-exporter
服务¶
Caution
集群中的每个机器都需要部署node-exporter
服务。
在目录node-exporter
内执行如下命令启动服务:
$ nohup ./node-exporter --web.listen-address=":9100" &
服务启动后,可以在浏览器中输入<IP>:9100
检查服务是否正常启动。
部署nebula-stats-exporter
服务¶
Caution
只需要在nebula-dashboard
服务所在机器部署nebula-stats-exporter
服务。
-
在目录
nebula-stats-exporter
内修改文件config.yaml
,配置所有服务的 HTTP 端口,示例如下:clusters: - name: nebula instances: - name: metad0 endpointIP: 192.168.8.157 endpointPort: 19559 componentType: metad - name: metad1 endpointIP: 192.168.8.155 endpointPort: 19559 componentType: metad - name: metad2 endpointIP: 192.168.8.154 endpointPort: 19559 componentType: metad - name: graphd0 endpointIP: 192.168.8.157 endpointPort: 19669 componentType: graphd - name: graphd1 endpointIP: 192.168.8.155 endpointPort: 19669 componentType: graphd - name: graphd2 endpointIP: 192.168.8.154 endpointPort: 19669 componentType: graphd - name: storaged0 endpointIP: 192.168.8.157 endpointPort: 19779 componentType: storaged - name: storaged1 endpointIP: 192.168.8.155 endpointPort: 19779 componentType: storaged - name: storaged2 endpointIP: 192.168.8.154 endpointPort: 19779 componentType: storaged
-
执行如下命令启动服务:
$ nohup ./nebula-stats-exporter --listen-address=":9200" --bare-metal --bare-metal-config=./config.yaml &
服务启动后,可以在浏览器中输入<IP>:9200
检查服务是否正常启动。
部署prometheus
服务¶
Caution
只需要在nebula-dashboard
服务所在机器部署prometheus
服务。
-
在目录
prometheus
内修改文件prometheus.yaml
,配置node-exporter
服务和nebula-stats-exporter
服务的 IP 地址和端口,示例如下:global: scrape_interval: 5s evaluation_interval: 5s scrape_configs: - job_name: 'nebula-stats-exporter' static_configs: - targets: [ '192.168.xx.100:9200' # nebula-stats-exporter 服务的 IP 地址和端口。 ] - job_name: 'node-exporter' static_configs: - targets: [ '192.168.xx.100:9100', # node-exporter 服务的 IP 地址和端口。 '192.168.xx.101:9100' ]
- scrape_interval:收集监控数据的间隔时间。默认为 1 分钟。
- evaluation_interval:告警规则扫描时间间隔。默认为 1 分钟。
-
执行如下命令启动服务:
$ nohup ./prometheus --config.file=./prometheus.yaml &
服务启动后,可以在浏览器中输入<IP>:9090
检查服务是否正常启动。
部署nebula-http-gateway
服务¶
Caution
只需要在nebula-dashboard
服务所在机器部署nebula-http-gateway
服务。
在目录nebula-http-gateway
内执行如下命令启动服务:
$ nohup ./nebula-httpd &
服务启动后,可以在浏览器中输入<IP>:8090
检查服务是否正常启动。
部署dashboard
服务¶
-
在目录
nebula-dashboard
内修改文件config.json
,配置代理信息,示例如下:port: 7003 proxy: gateway: target: "127.0.0.1:8090" // nebula-http-gateway 服务的 IP 和端口号。 prometheus: target: "127.0.0.1:9090" // Prometheus 服务的 IP 和端口号。 graph: target: "127.0.0.1:19669" // 用于获取 Graph 服务的运行配置。 storage: target: "127.0.0.1:19779" // 用于获取 Storage 服务的运行配置。 nebulaServer: ip: "192.168.8.143" // 任一 Graph 服务的机器 IP。 port: 9669 // Graph 服务的端口号。 ...
-
在目录
nebula-dashboard
内执行如下命令启动服务:$ nohup ./dashboard &
服务启动后,可以在浏览器中输入<IP>:7003
检查服务是否正常启动。
停止 Dashboard¶
- 对于通过 Docker Compose 启动的 Dashboard,执行
docker-compose stop
命令停止。
-
对于通过逐一部署方式启动的 Dashboard,执行
kill <pid>
的方式停止,示例如下:$ kill $(lsof -t -i :9100) # 停止 node-exporter 服务 $ kill $(lsof -t -i :9200) # 停止 nebula-stats-exporter 服务 $ kill $(lsof -t -i :9090) # 停止 prometheus 服务 $ kill $(lsof -t -i :8090) # 停止 nebula-http-gateway 服务 $ kill $(lsof -t -i :7003) # 停止 dashboard 服务