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

added dashboard #720

Merged
merged 11 commits into from
Jul 19, 2021
Merged
Show file tree
Hide file tree
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
4 changes: 4 additions & 0 deletions docs-2.0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,7 @@ Nebula Graph是一款开源的、分布式的、易扩展的原生图数据库
!!! compatibility

nGQL与openCypher的兼容性或nGQL当前版本与历史版本的兼容性。

!!! enterpriseonly

描述社区版和企业版的差异。
37 changes: 37 additions & 0 deletions docs-2.0/nebula-dashboard/1.what-is-dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 什么是Nebula Graph Dashboard

Nebula Graph Dashboard(简称Dashboard)是一款用于监控Nebula Graph集群中机器和服务状态的可视化工具。

## 产品功能

- 监控集群中所有机器的状态,包括CPU、内存、负载、磁盘和流量。

- 监控集群中所有服务的信息,包括服务IP地址、版本和监控指标(例如查询数量、查询延迟、心跳延迟等)。

- 监控集群本身的信息,包括集群的服务信息、分区信息、配置和长时任务。

- 企业版功能:(TODO: planning)

!!! enterpriseonly

Dashboard分为社区版和企业版,大部分功能为二者通用,仅企业版提供的功能会进行标注说明。

## 适用场景

如果有以下任一需求,都可以使用Dashboard:

- 需要方便快捷地监测关键指标,集中呈现业务的多个重点信息,保证业务正常运行。

- 需要多维度(例如时间段、聚合规则、指标)监控集群。

- 故障发生后,需要复盘问题,确认故障发生时间、异常现象。

## 注意事项

- 监控数据默认更新频率约为7秒。

- 监控数据默认保留14天,即只能查询最近14天内的监控数据。

!!! note

监控服务由prometheus提供,更新频率和保留时间等都可以自行修改。详情请参见[prometheus官方文档](https://prometheus.io/docs/prometheus/latest/configuration/configuration/)。
195 changes: 195 additions & 0 deletions docs-2.0/nebula-dashboard/2.deploy-dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
# 部署Dashboard

安装部署Dashboard涉及5种服务,本文将详细介绍如何安装部署。

## 端口说明

部署Dashboard需要占用如下端口:

- 9200

- 9100

- 9090

- 8090

- 7003

## 下载Dashboard

执行如下命令下载压缩包:

```bash
wget https://oss-cdn.nebula-graph.com.cn/nebula-graph-dashboard/{{dashboard.release}}.tar.gz
```

## 目录结构说明

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

|目录名称|说明|
|:---|:---|
|node-exporter | 收集集群中机器的资源信息,包括CPU、内存、负载、磁盘和流量。|
|nebula-stats-exporter | 收集集群的性能指标,包括服务IP地址、版本和监控指标(例如查询数量、查询延迟、心跳延迟等)。|
|prometheus | 存储监控数据的时间序列数据库。|
|nebula-http-gateway | 为集群服务提供HTTP接口,访问prometheus服务或者执行nGQL语句与Nebula Graph数据库进行交互。|
|nebula-graph-dashboard| 提供Dashboard服务。该目录名称与根目录相同,请注意区分,后文所述`nebula-graph-dashboard`是指子目录。|

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

## 操作步骤

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

!!! note

集群中的每个机器都需要部署`node-exporter`服务。

在目录`node-exporter`内执行如下命令启动服务:

```bash
$ nohup ./node-exporter --web.listen-address=:9200 &
```

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

### 部署`nebula-stats-exporter`服务。

!!! note

只需要在`nebula-graph-dashboard`服务所在机器部署`nebula-stats-exporter`服务。

1. 在目录`nebula-stats-exporter`内修改文件`config.yaml`,配置所有服务的HTTP端口,示例如下:

```bash
version: v0.0.2
nebulaItems:
- instanceName: metad0
endpointIP: 192.168.xx.1
endpointPort: 19559
componentType: metad
- instanceName: metad1
endpointIP: 192.168.xx.2
endpointPort: 19559
componentType: metad
- instanceName: metad2
endpointIP: 192.168.xx.3
endpointPort: 19559
componentType: metad
- instanceName: graphd0
endpointIP: 192.168.xx.4
endpointPort: 19669
componentType: graphd
- instanceName: storaged0
endpointIP: 192.168.xx.5
endpointPort: 19779
componentType: storaged
- instanceName: storaged1
endpointIP: 192.168.xx.6
endpointPort: 19779
componentType: storaged
- instanceName: storaged2
endpointIP: 192.168.xx.7
endpointPort: 19779
```

2. 执行如下命令启动服务:

```bash
$ nohup ./nebula-stats-exporter --bare-metal --bare-metal-config=./config.yaml &
```

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

### 部署`prometheus`服务。

!!! note

只需要在`nebula-graph-dashboard`服务所在机器部署`prometheus`服务。

1. 在目录`prometheus`内修改文件`prometheus.yaml`,配置`node-exporter`服务和`nebula-stats-exporter`服务的IP地址和端口,示例如下:

```bash
global:
scrape_interval: 5s
evaluation_interval: 5s
scrape_configs:
- job_name: 'nebula-exporter'
static_configs:
- targets: [
'192.168.xx.100:9100', # nebula-stats-exporter服务的IP地址和端口。
]
- job_name: 'node-exporter'
static_configs:
- targets: [
'192.168.xx.101:9200' # node-exporter服务的IP地址和端口。
]
```

- scrape_interval:收集监控数据的间隔时间。默认为1分钟。

- evaluation_interval:告警规则扫描时间间隔。默认为1分钟。

2. 执行如下命令启动服务:

```bash
$ nohup ./prometheus --config.file=./prometheus.yaml &
```

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

### 部署`nebula-http-gateway`服务。

!!! note

只需要在`nebula-graph-dashboard`服务所在机器部署`nebula-http-gateway`服务。

在目录`nebula-http-gateway`内执行如下命令启动服务:

```bash
$ nohup ./nebula-httpd &
```

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

### 部署`nebula-graph-dashboard`服务。

1. 在目录`nebula-graph-dashboard/static/`内修改文件`custom.json`,配置Graph服务的IP地址和端口,示例如下:

```bash
{
"connection": {
"ip": "192.168.xx.4",
"port": 9669
},
"alias": {
"ip:port": "instance1"
},
"chartBaseLine": {

}
}
...
```

2. 在目录`nebula-graph-dashboard`内执行如下命令启动服务:

```bash
$ npm run start
```

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

## 停止Dashboard

如果需要停止Dashboard,可以使用`kill <pid>`的方式停止,示例如下:

```bash
$ kill $(lsof -t -i :9200) # 停止node-exporter服务
$ kill $(lsof -t -i :9100) # 停止nebula-stats-exporter服务
$ kill $(lsof -t -i :9090) # 停止prometheus服务
$ kill $(lsof -t -i :8090) # 停止nebula-http-gateway服务
$ cd nebula-graph-dashboard
$ npm run stop # 停止nebula-graph-dashboard服务
```
23 changes: 23 additions & 0 deletions docs-2.0/nebula-dashboard/3.connect-dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 连接Dashboard

Dashboard部署完成后,可以通过浏览器登录使用Dashboard。

## 前提条件

- Dashboard相关服务已经启动。详情请参见[部署Dashboard](2.deploy-dashboard.md)。

- 建议使用Chrome 58及以上的版本的Chrome浏览器,否则可能有兼容问题。

## 操作步骤

1. 确认`nebula-graph-dashboard`服务所在机器的IP地址,在浏览器中输入`<IP>:7003`打开登录页面。

2. 输入Nebula Graph数据库的账号和密码,单击登录。

- 如果Nebula Graph已经启用身份验证,用户可以使用已创建的账号连接Dashboard。

- 如果Nebula Graph未启用身份验证,用户只能使用默认用户`root`和任意密码连接Dashboard。

如何启用身份验证请参见[身份验证](../7.data-security/1.authentication/1.authentication.md)。

![登录页面](login.png)
84 changes: 84 additions & 0 deletions docs-2.0/nebula-dashboard/4.use-dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Dashboard页面介绍

Dashboard页面主要分为机器、服务、管理三个部分,本文将详细介绍这些界面。

## 页面概览

![页面概览](overview.png)

## 机器页面介绍

机器页面分为如下几个子页面:

- 概览

可以查看最近一天的CPU、内存、负载、磁盘和上下行流量变化情况。

如果需要查看某一项更详细的监控指标,可以单击模块右上角的![页面概览](eye.png)标志,或者在左侧单击监控项。

- CPU、内存、负载、磁盘、流量

分类展示机器各个维度的详细监控数据。

- 默认可以选择最多14天的监控数据进行查看,也可以快捷选择1小时、6小时、12小时、1天、3天、7天和14天。

- 可以选择需要查看的机器和监控指标。监控指标详情请参见[监控指标说明](6.monitor-parameter.md)。

![机器页面](machine.png)

## 服务页面介绍

服务页面分为如下几个子页面:

- 概览

可以查看最近一天各种服务的监控指标变化情况,右上角还可以切换到**版本**页面查看所有服务的IP地址和版本。

如果需要查看某一种服务更详细的监控指标,可以单击模块右上角的眼睛标志,或者在左侧单击具体服务。

!!! note

当前社区版的概览页仅支持每种服务设置两个监控指标,可以单击模块内的**设置**按钮进行调整。

- Graph、Meta、Storage

分类展示各个服务的详细监控数据。

- 默认可以选择最多14天的监控数据进行查看,也可以快捷选择1小时、6小时、12小时、1天、3天、7天和14天。

- 可以选择需要查看监控数据的机器、监控指标、聚合方式和周期。监控指标详情请参见[监控指标说明](6.monitor-parameter.md)。

- 可以查看当前服务的状态。

![服务页面](service.png)

## 管理页面介绍

!!! note

非`root`用户只能查看服务信息和有空间权限的分片信息,无法查看配置和长时任务。

管理页面分为如下几个子页面:

- 服务信息

展示Storage服务的基本信息,包括机器信息、leader总数、分片分布和leader分布。

- 分片信息

可以选择不同图空间,查看分片信息。参数说明如下。

|参数|说明|
|:---|:---|
|`Partition ID`|分片序号。|
|`Leader`|分片的leader的IP地址和端口。|
|`Peers`|分片所有副本的IP地址和端口。|
|`Losts`|分片的故障离线副本的的IP地址和端口。|

- 配置

展示各个服务的配置信息。暂不支持在线修改配置,详情请参见[配置管理](../5.configurations-and-logs/1.configurations/1.configurations.md)。

- 长时任务

展示所有作业的信息。暂不支持在线管理作业,详情请参见[作业管理](../3.ngql-guide/18.operation-and-maintenance-statements/4.job-statements.md)。
Loading