Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add a new method to deploy dashboard #1896

Merged
merged 3 commits into from
Jun 23, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 154 additions & 12 deletions docs-2.0/nebula-dashboard/2.deploy-dashboard.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 部署 Dashboard

安装部署 Dashboard 涉及 5 种服务,本文将详细介绍如何通过 tar 包安装部署。下载和编译 Nebula Dashboard 的最新源码,请参见 [GitHub nebula dashboard](https://github.com/vesoft-inc/nebula-dashboard#readme) 页面的说明。
安装部署 Dashboard 涉及 5 种服务,本文将详细介绍如何通过 TAR 包安装部署。下载和编译 Nebula Dashboard 的最新源码,请参见 [GitHub nebula dashboard](https://github.com/vesoft-inc/nebula-dashboard#readme) 页面的说明。

## 前提条件

Expand All @@ -24,14 +24,18 @@

## 下载 Dashboard

根据需要下载 tar 包,建议选择最新版本。
根据需要下载 TAR 包,建议选择最新版本。

| Dashboard 安装包 | Nebula Graph 版本 |
| :----- | :----- |
| [nebula-dashboard-{{ dashboard.release }}.x86_64.tar.gz](https://oss-cdn.nebula-graph.com.cn/nebula-graph-dashboard/{{ dashboard.release }}/nebula-dashboard-{{ dashboard.release }}.x86_64.tar.gz) | 2.5.x ~ 3.1.x |

## 目录结构说明

!!! caution

按照部署需要,复制 4 个目录到**各个机器**上,详情请参见下文。

执行命令`tar -xvf nebula-dashboard-{{ dashboard.release }}.x86_64.tar.gz`解压缩,目录`nebula-dashboard/vendors`内一共有 4 个子目录,说明如下。

|目录名称|说明|端口号|
Expand All @@ -41,9 +45,8 @@
|prometheus | 存储监控数据的时间序列数据库。|9090|
|nebula-http-gateway | 为集群服务提供 HTTP 接口,执行 nGQL 语句与 Nebula Graph 数据库进行交互。|8090|

4 个目录需要按照部署需要,复制到各个机器上,详情请参见下文。

## 操作步骤
## 方式一 逐一部署 Dashboard 依赖服务

### 部署`node-exporter`服务

Expand Down Expand Up @@ -194,14 +197,153 @@ $ nohup ./nebula-httpd &

服务启动后,可以在浏览器中输入`<IP>:7003`检查服务是否正常启动。

## 方式二 通过 Docker Compose 部署 Dashboard 依赖服务

支持通过 Docker Compose 启动 Dashboard 所需的所有服务。

### 前提条件

确保用户在部署 Dashboard 的机器上已经安装了 Docker。

### 操作步骤

1. 在`nebula-dashboard`安装目录下,部署 Dashboard 所需的服务。

1. 进入`vendors/nebula-stats-exporter`目录,通过修改`config.yaml`文件,配置 Nebula Grpah 集群所有服务的 HTTP 端口及所在机器的 IP。示例如下:

```yaml
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
```

2. 进入`vendors/node-exporter`目录,然后执行以下命令启动`node-exporter`。

```bash
nohup ./node-exporter --web.listen-address=":9100" &
```

!!! note

集群中的每台机器都需要启动`node-exporter`服务。


3. 进入`vendors/prometheus`目录,通过修改`prometheus.yaml`文件,配置`node-exporter`和`nebula-stats-exporter`服务的 IP 地址和端口。示例如下:

```bash
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 服务的 IP 地址和端口。
]
```

4. 在目录`nebula-dashboard`内,修改文件`config.json`,配置任一 Graph 服务的 IP 地址,端口和配置代理服域名。

```json
{
"port": 7003,
"proxy":{
"gateway":{
"target": "http://nebula-http-gateway:8090" # nebula-http-gateway 服务的 IP 和端口号。
},
"prometheus":{
"target": "prometheus:9090" # Prometheus 服务的 IP 和端口号。
}
},
"nebulaServer": {
"ip": "192.168.8.131", # 部署 Graph 服务的机器 IP。
"port": 9669 # Graph 服务的端口号。
}
}
```

2. 在`nebula-dashboard`的安装目录下,执行以下命令创建供 Dashboard 中所有服务相互访问的网络。

```bash
docker network create nebula-net
```

3. 进入`docker-compose`目录,执行以下命令启动 Dashboard 的依赖服务。

```bash
docker-compose -f docker-compose.yaml up -d
```

关于`docker-compose.yaml`文件中参数的解释,参见[服务配置](https://docs.docker.com/compose/compose-file/compose-file-v3/#service-configuration-reference)。


4. 执行`docker ps`命令查看服务的状态,然后分别进行以下操作检查服务是否都正常启动。

- 在浏览器中输入`<IP>:9200`检查`nebula-stats-exporter`服务是否正常启动。
- 在浏览器中输入`<IP>:9100`检查`node-exporter`服务是否正常启动。
- 在浏览器中输入`<IP>:9090`检查`prometheus`服务是否正常启动。
- 在浏览器中输入`<IP>:8090`检查`nebula-http-gateway`服务是否正常启动。
- 在浏览器中输入`<IP>:7003`检查`dashboard`服务是否正常启动。


## 停止 Dashboard
abby-cyber marked this conversation as resolved.
Show resolved Hide resolved

如果需要停止 Dashboard,可以使用`kill <pid>`的方式停止,示例如下:
- 对于通过逐一部署方式启动的 Dashboard,执行`kill <pid>`的方式停止,示例如下:

```bash
$ 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 服务
```
```bash
$ 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 服务
```

- 对于通过`docker-compose`启动的 Dashboard,执行`docker-compose stop`命令停止。


## 后续操作

[连接 Dashboard](3.connect-dashboard.md)