diff --git a/docs-2.0/README.md b/docs-2.0/README.md index fc3e11edb50..b871ddeed9d 100644 --- a/docs-2.0/README.md +++ b/docs-2.0/README.md @@ -44,3 +44,7 @@ Nebula Graph是一款开源的、分布式的、易扩展的原生图数据库 !!! compatibility nGQL与openCypher的兼容性或nGQL当前版本与历史版本的兼容性。 + +!!! enterpriseonly + + 描述社区版和企业版的差异。 \ No newline at end of file diff --git a/docs-2.0/nebula-dashboard/1.what-is-dashboard.md b/docs-2.0/nebula-dashboard/1.what-is-dashboard.md new file mode 100644 index 00000000000..13ff6dec8c2 --- /dev/null +++ b/docs-2.0/nebula-dashboard/1.what-is-dashboard.md @@ -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/)。 diff --git a/docs-2.0/nebula-dashboard/2.deploy-dashboard.md b/docs-2.0/nebula-dashboard/2.deploy-dashboard.md new file mode 100644 index 00000000000..6fe80ce75b7 --- /dev/null +++ b/docs-2.0/nebula-dashboard/2.deploy-dashboard.md @@ -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 & +``` + +服务启动后,可以在浏览器中输入`: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 & + ``` + +服务启动后,可以在浏览器中输入`: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 & + ``` + +服务启动后,可以在浏览器中输入`:9090`检查服务是否正常启动。 + +### 部署`nebula-http-gateway`服务。 + +!!! note + + 只需要在`nebula-graph-dashboard`服务所在机器部署`nebula-http-gateway`服务。 + +在目录`nebula-http-gateway`内执行如下命令启动服务: + +```bash +$ nohup ./nebula-httpd & +``` + +服务启动后,可以在浏览器中输入`: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 + ``` + +服务启动后,可以在浏览器中输入`:7003`检查服务是否正常启动。 + +## 停止Dashboard + +如果需要停止Dashboard,可以使用`kill `的方式停止,示例如下: + +```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服务 +``` \ No newline at end of file diff --git a/docs-2.0/nebula-dashboard/3.connect-dashboard.md b/docs-2.0/nebula-dashboard/3.connect-dashboard.md new file mode 100644 index 00000000000..60f34c03883 --- /dev/null +++ b/docs-2.0/nebula-dashboard/3.connect-dashboard.md @@ -0,0 +1,23 @@ +# 连接Dashboard + +Dashboard部署完成后,可以通过浏览器登录使用Dashboard。 + +## 前提条件 + +- Dashboard相关服务已经启动。详情请参见[部署Dashboard](2.deploy-dashboard.md)。 + +- 建议使用Chrome 58及以上的版本的Chrome浏览器,否则可能有兼容问题。 + +## 操作步骤 + +1. 确认`nebula-graph-dashboard`服务所在机器的IP地址,在浏览器中输入`:7003`打开登录页面。 + +2. 输入Nebula Graph数据库的账号和密码,单击登录。 + + - 如果Nebula Graph已经启用身份验证,用户可以使用已创建的账号连接Dashboard。 + + - 如果Nebula Graph未启用身份验证,用户只能使用默认用户`root`和任意密码连接Dashboard。 + + 如何启用身份验证请参见[身份验证](../7.data-security/1.authentication/1.authentication.md)。 + + ![登录页面](login.png) diff --git a/docs-2.0/nebula-dashboard/4.use-dashboard.md b/docs-2.0/nebula-dashboard/4.use-dashboard.md new file mode 100644 index 00000000000..1c36fc6a12c --- /dev/null +++ b/docs-2.0/nebula-dashboard/4.use-dashboard.md @@ -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)。 \ No newline at end of file diff --git a/docs-2.0/nebula-dashboard/6.monitor-parameter.md b/docs-2.0/nebula-dashboard/6.monitor-parameter.md new file mode 100644 index 00000000000..7e34ccd63f8 --- /dev/null +++ b/docs-2.0/nebula-dashboard/6.monitor-parameter.md @@ -0,0 +1,90 @@ +# 监控指标说明 + +本文介绍Dashboard中展示的Nebula Graph监控指标。 + +!!! note + + 磁盘容量和流量的默认单位为字节(Byte),页面显示时单位会随着数据量级而变化,例如流量低于1 KB/s时单位为Bytes/s。 + +## 机器 + +### CPU + +|参数|说明| +|:---|:---| +|`cpu_utilization`| CPU已使用百分比| +|`cpu_idle`| CPU空闲百分比| +|`cpu_wait`| 等待IO操作的CPU百分比| +|`cpu_user`| 用户空间(非Nebula Graph图空间)占用的CPU百分比| +|`cpu_system`| 内核空间(非Nebula Graph内核空间)占用的CPU百分比| + +### 内存 + +|参数|说明| +|:---|:---| +|`memory_utilization`| 内存已使用百分比| +|`memory_used`| 已使用内存| +|`memory_actual_used`| 实际使用内存| +|`memory_free`| 空闲内存| + +### 负载 + +|参数|说明| +|:---|:---| +|`load_1m`| 最近1分钟系统平均负载| +|`load_5m`| 最近5分钟系统平均负载| +|`load_15m`| 最近15分钟系统平均负载| + +### 磁盘 + +|参数|说明| +|:---|:---| +|`disk_used`| 磁盘已使用存储空间| +|`disk_free`| 磁盘剩余存储空间| +|`disk_readbytes`| 磁盘每秒读取的字节数| +|`disk_writebytes`| 磁盘每秒写入的字节数| +|`disk_readiops`| 磁盘每秒的读请求数量| +|`disk_writeiops`| 磁盘每秒的写请求数量| +|`inode_utilization`| inode已使用百分比| + +### 流量 + +|参数|说明| +|:---|:---| +|`network_in_rate`| 网卡每秒接收的字节数| +|`network_out_rate`| 网卡每秒发送的字节数| +|`network_in_errs`| 网卡每秒接收错误的字节数| +|`network_out_errs`| 网卡每秒发送错误的字节数| +|`network_in_packets`| 网卡每秒接收的数据包数量| +|`network_out_packets`| 网卡每秒发送的数据包数量| + +## 服务 + +### Graph + +|参数|说明| +|:---|:---| +|`num_queries`| 查询次数| +|`num_slow_queries`| 慢查询次数| +|`num_latency_us`| 查询平均延迟| +|`slow_query_latency_us`| 慢查询平均延迟| +|`num_query_errors`| 查询错误次数| + +### Meta + +|参数|说明| +|:---|:---| +|`heartbeat_latency_us`| 心跳延迟| +|`num_heartbeats`| 心跳次数| + +### Storage + +|参数|说明| +|:---|:---| +|`add_edges_atomic_latency_us`| 添加边的单次延迟| +|`add_edges_latency_us`| 添加边的平均延迟| +|`add_vertices_latency_us`| 添加点的平均延迟| +|`delete_edges_latency_us`| 删除边的平均延迟| +|`delete_vertices_latency_us`| 删除点的平均延迟| +|`forward_tranx_latency_us`| 传输平均延迟| +|`get_neighbors_latency_us`| 查询邻居平均延迟| diff --git a/docs-2.0/nebula-dashboard/eye.png b/docs-2.0/nebula-dashboard/eye.png new file mode 100644 index 00000000000..26d88536512 Binary files /dev/null and b/docs-2.0/nebula-dashboard/eye.png differ diff --git a/docs-2.0/nebula-dashboard/login.png b/docs-2.0/nebula-dashboard/login.png new file mode 100644 index 00000000000..5c9b544bc7b Binary files /dev/null and b/docs-2.0/nebula-dashboard/login.png differ diff --git a/docs-2.0/nebula-dashboard/machine.png b/docs-2.0/nebula-dashboard/machine.png new file mode 100644 index 00000000000..2ea839b4782 Binary files /dev/null and b/docs-2.0/nebula-dashboard/machine.png differ diff --git a/docs-2.0/nebula-dashboard/overview.png b/docs-2.0/nebula-dashboard/overview.png new file mode 100644 index 00000000000..89802f5115b Binary files /dev/null and b/docs-2.0/nebula-dashboard/overview.png differ diff --git a/docs-2.0/nebula-dashboard/service.png b/docs-2.0/nebula-dashboard/service.png new file mode 100644 index 00000000000..e1b05735fee Binary files /dev/null and b/docs-2.0/nebula-dashboard/service.png differ diff --git a/docs-2.0/stylesheets/note.css b/docs-2.0/stylesheets/note.css index a072205a0dd..333613e2086 100644 --- a/docs-2.0/stylesheets/note.css +++ b/docs-2.0/stylesheets/note.css @@ -103,20 +103,42 @@ background-image: url('data:image/svg+xml;charset=utf-8,') !important; } +:root { + --md-admonition-icon--enterpriseonly: url('data:image/svg+xml;charset=utf-8,') + } + +.md-typeset .admonition.enterpriseonly, +.md-typeset details.enterpriseonly { +border-color: rgb(255,208,0); +} + +.md-typeset .enterpriseonly > .admonition-title, +.md-typeset .enterpriseonly > summary { +background-color: rgba(255,208,0,0.1); +border-color: rgb(255,208,0); +} + +.md-typeset .enterpriseonly > .admonition-title::before, +.md-typeset .enterpriseonly > summary::before { +background-color: rgb(255,251,232); +-webkit-mask-image: var(--md-admonition-icon--enterpriseonly); +mask-image: var(--md-admonition-icon--enterpriseonly); +background-image: url('data:image/svg+xml;charset=utf-8,') !important; +} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 365bec077fd..9b349d57509 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -61,6 +61,8 @@ extra: release: master common: release: master + dashboard: + release: nebula-graph-dashboard-beta nav: - 前言: README.md @@ -333,6 +335,13 @@ nav: # - Nebula Algorithm: nebula-algorithm.md + - Nebula Graph Dashboard: + - 什么是Nebula Graph Dashboard: nebula-dashboard/1.what-is-dashboard.md + - 部署Dashboard: nebula-dashboard/2.deploy-dashboard.md + - 连接Dashboard: nebula-dashboard/3.connect-dashboard.md + - Dashboard页面介绍: nebula-dashboard/4.use-dashboard.md + - 监控指标说明: nebula-dashboard/6.monitor-parameter.md + - 附录: - Nebula Graph 常见问题: 20.appendix/0.FAQ.md - 生态工具概览: 20.appendix/6.eco-tool-version.md