| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <title>Pegasus | Monitoring</title> |
| <link rel="stylesheet" href="/zh/assets/css/app.css"> |
| <link rel="shortcut icon" href="/zh/assets/images/favicon.ico"> |
| <link rel="stylesheet" href="/zh/assets/css/utilities.min.css"> |
| <link rel="stylesheet" href="/zh/assets/css/docsearch.v3.css"> |
| <script src="/assets/js/jquery.min.js"></script> |
| <script src="/assets/js/all.min.js"></script> |
| <script src="/assets/js/docsearch.v3.js"></script> |
| <!-- Begin Jekyll SEO tag v2.8.0 --> |
| <title>Monitoring | Pegasus</title> |
| <meta name="generator" content="Jekyll v4.3.2" /> |
| <meta property="og:title" content="Monitoring" /> |
| <meta property="og:locale" content="en_US" /> |
| <meta name="description" content="组件 从v1.12.0开始, Pegasus 支持使用 Prometheus 和 Grafana 进项监控项的采集和展示。 Prometheus Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。 Grafana Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。 注意* 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus不包含、不维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。 配置 Prometheus 本小节介绍如何配置 Prometheus。 第一步: 配置Pegasus服务 Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下: [pegasus.server] perf_counter_sink = prometheus prometheus_port = 9091 注: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 http://{pegasus_host}:{prometheus_port}/metrics 是否能正常访问. Onebox使用Prometheus 如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 prometheus_port. [pegasus.server] perf_counter_sink = prometheus prometheus_port = @PROMETHEUS_PORT@ 由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port: collector : 9091 meta: [9092, 9093, 9094…] replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…] 例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下: ./run.sh start_onebox -r 3 -m 2 -c meta1: 9092, meta2: 9093 replica1: 9094, replica2: 9095, replica3: 9096 第二步: 安装及运行 Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz tar xvfz prometheus-2.15.2.linux-amd64.tar.gz cd prometheus-2.15.2.linux-amd64 修改prometheus目录下的prometheus.yml文件,配置模板如下所示: global: scrape_interval: 5s scrape_configs: - job_name: 'pegasus' static_configs: - targets: ['collector_host:9091'] labels: group: collector - targets: ['meta_host1:9091', 'meta_host2:9091', 'meta_host3:9091'] labels: group: meta - targets: ['replica_host1:9091', 'replica_host2:9091', 'replica_host3:9091'] labels: group: replica # # NOTE: Add the following lines if node exporter is deployed. # - targets: # [ # 'node_exporter_host1:9100', # 'node_exporter_host2:9100', # ... # 'node_exporter_hostn:9100', # ] # labels: # group: node_exporter 对于上述通过 ./run.sh start_onebox -r 3 -m 2 -c 启动的onebox集群, 实际配置如下: global: scrape_interval: 5s scrape_configs: - job_name: "pegasus" static_configs: - targets: ["0.0.0.0:9091"] labels: group: collector - targets: ["0.0.0.0:9092", "0.0.0.0:9093"] labels: group: meta - targets: ["0.0.0.0:9094", "0.0.0.0:9095", "0.0.0.0:9096"] labels: group: replica 修改完prometheus.yml之后,启动prometheus: ./prometheus --config.file=prometheus.yml 进入网址 localhost:9090 看到如下界面即表示到这一步为止是成功的。 注: 如果你想要测试Prometheus是否正确配置, 可以检查 http://{prometheus_host}:9090/targets 查看各节点的监控上报状态. 在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。 注意 实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: Node Exporter Alert Manager 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。 目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:配置文件说明、实现动态服务发现 配置 Grafana 本小节介绍如何配置 Grafana。 第一步: 安装及运行 Grafana 首先下载grafana二进制包: wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate tar -zxvf grafana-6.0.0.linux-amd64.tar.gz cd grafana-6.0.0 启动Grafana ./bin/grafana-server web 观察到如下输出,即为启动成功 INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800 ... INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket= INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2 第二步: 添加 Prometheus 数据源 登录 Grafana 界面。如下图所示: 默认地址:http://localhost:3000 默认账户:admin 默认密码:admin 注意: Change Password 步骤可以选择 Skip。 点击 Grafana 侧边栏菜单 Configuration 中的 Data Source。 点击 Add data source。 指定数据源的相关信息: 在 Name 处,为数据源指定一个名称。 在 Type 处,选择 Prometheus。 在 URL 处,指定 Prometheus 的 IP 地址。 根据需求指定其它字段。 点击 Add 保存新的数据源。 第三步: 导入 Pegasus DashBoard 目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: Pegasus json文件 下载了json文件后,可以通过import的方式将其导入进去。其步骤如下: 进入grafana,点击左边框的”+”,选择import,进入import页面 点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面 然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示 从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。" /> |
| <meta property="og:description" content="组件 从v1.12.0开始, Pegasus 支持使用 Prometheus 和 Grafana 进项监控项的采集和展示。 Prometheus Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。 Grafana Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。 注意* 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus不包含、不维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。 配置 Prometheus 本小节介绍如何配置 Prometheus。 第一步: 配置Pegasus服务 Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下: [pegasus.server] perf_counter_sink = prometheus prometheus_port = 9091 注: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 http://{pegasus_host}:{prometheus_port}/metrics 是否能正常访问. Onebox使用Prometheus 如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 prometheus_port. [pegasus.server] perf_counter_sink = prometheus prometheus_port = @PROMETHEUS_PORT@ 由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port: collector : 9091 meta: [9092, 9093, 9094…] replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…] 例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下: ./run.sh start_onebox -r 3 -m 2 -c meta1: 9092, meta2: 9093 replica1: 9094, replica2: 9095, replica3: 9096 第二步: 安装及运行 Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz tar xvfz prometheus-2.15.2.linux-amd64.tar.gz cd prometheus-2.15.2.linux-amd64 修改prometheus目录下的prometheus.yml文件,配置模板如下所示: global: scrape_interval: 5s scrape_configs: - job_name: 'pegasus' static_configs: - targets: ['collector_host:9091'] labels: group: collector - targets: ['meta_host1:9091', 'meta_host2:9091', 'meta_host3:9091'] labels: group: meta - targets: ['replica_host1:9091', 'replica_host2:9091', 'replica_host3:9091'] labels: group: replica # # NOTE: Add the following lines if node exporter is deployed. # - targets: # [ # 'node_exporter_host1:9100', # 'node_exporter_host2:9100', # ... # 'node_exporter_hostn:9100', # ] # labels: # group: node_exporter 对于上述通过 ./run.sh start_onebox -r 3 -m 2 -c 启动的onebox集群, 实际配置如下: global: scrape_interval: 5s scrape_configs: - job_name: "pegasus" static_configs: - targets: ["0.0.0.0:9091"] labels: group: collector - targets: ["0.0.0.0:9092", "0.0.0.0:9093"] labels: group: meta - targets: ["0.0.0.0:9094", "0.0.0.0:9095", "0.0.0.0:9096"] labels: group: replica 修改完prometheus.yml之后,启动prometheus: ./prometheus --config.file=prometheus.yml 进入网址 localhost:9090 看到如下界面即表示到这一步为止是成功的。 注: 如果你想要测试Prometheus是否正确配置, 可以检查 http://{prometheus_host}:9090/targets 查看各节点的监控上报状态. 在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。 注意 实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: Node Exporter Alert Manager 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。 目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:配置文件说明、实现动态服务发现 配置 Grafana 本小节介绍如何配置 Grafana。 第一步: 安装及运行 Grafana 首先下载grafana二进制包: wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate tar -zxvf grafana-6.0.0.linux-amd64.tar.gz cd grafana-6.0.0 启动Grafana ./bin/grafana-server web 观察到如下输出,即为启动成功 INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800 ... INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket= INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2 第二步: 添加 Prometheus 数据源 登录 Grafana 界面。如下图所示: 默认地址:http://localhost:3000 默认账户:admin 默认密码:admin 注意: Change Password 步骤可以选择 Skip。 点击 Grafana 侧边栏菜单 Configuration 中的 Data Source。 点击 Add data source。 指定数据源的相关信息: 在 Name 处,为数据源指定一个名称。 在 Type 处,选择 Prometheus。 在 URL 处,指定 Prometheus 的 IP 地址。 根据需求指定其它字段。 点击 Add 保存新的数据源。 第三步: 导入 Pegasus DashBoard 目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: Pegasus json文件 下载了json文件后,可以通过import的方式将其导入进去。其步骤如下: 进入grafana,点击左边框的”+”,选择import,进入import页面 点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面 然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示 从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。" /> |
| <meta property="og:site_name" content="Pegasus" /> |
| <meta property="og:type" content="article" /> |
| <meta property="article:published_time" content="2023-11-23T14:57:08+00:00" /> |
| <meta name="twitter:card" content="summary" /> |
| <meta property="twitter:title" content="Monitoring" /> |
| <script type="application/ld+json"> |
| {"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-11-23T14:57:08+00:00","datePublished":"2023-11-23T14:57:08+00:00","description":"组件 从v1.12.0开始, Pegasus 支持使用 Prometheus 和 Grafana 进项监控项的采集和展示。 Prometheus Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。 Grafana Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。 注意* 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus不包含、不维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。 配置 Prometheus 本小节介绍如何配置 Prometheus。 第一步: 配置Pegasus服务 Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下: [pegasus.server] perf_counter_sink = prometheus prometheus_port = 9091 注: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 http://{pegasus_host}:{prometheus_port}/metrics 是否能正常访问. Onebox使用Prometheus 如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 prometheus_port. [pegasus.server] perf_counter_sink = prometheus prometheus_port = @PROMETHEUS_PORT@ 由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port: collector : 9091 meta: [9092, 9093, 9094…] replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…] 例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下: ./run.sh start_onebox -r 3 -m 2 -c meta1: 9092, meta2: 9093 replica1: 9094, replica2: 9095, replica3: 9096 第二步: 安装及运行 Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz tar xvfz prometheus-2.15.2.linux-amd64.tar.gz cd prometheus-2.15.2.linux-amd64 修改prometheus目录下的prometheus.yml文件,配置模板如下所示: global: scrape_interval: 5s scrape_configs: - job_name: 'pegasus' static_configs: - targets: ['collector_host:9091'] labels: group: collector - targets: ['meta_host1:9091', 'meta_host2:9091', 'meta_host3:9091'] labels: group: meta - targets: ['replica_host1:9091', 'replica_host2:9091', 'replica_host3:9091'] labels: group: replica # # NOTE: Add the following lines if node exporter is deployed. # - targets: # [ # 'node_exporter_host1:9100', # 'node_exporter_host2:9100', # ... # 'node_exporter_hostn:9100', # ] # labels: # group: node_exporter 对于上述通过 ./run.sh start_onebox -r 3 -m 2 -c 启动的onebox集群, 实际配置如下: global: scrape_interval: 5s scrape_configs: - job_name: "pegasus" static_configs: - targets: ["0.0.0.0:9091"] labels: group: collector - targets: ["0.0.0.0:9092", "0.0.0.0:9093"] labels: group: meta - targets: ["0.0.0.0:9094", "0.0.0.0:9095", "0.0.0.0:9096"] labels: group: replica 修改完prometheus.yml之后,启动prometheus: ./prometheus --config.file=prometheus.yml 进入网址 localhost:9090 看到如下界面即表示到这一步为止是成功的。 注: 如果你想要测试Prometheus是否正确配置, 可以检查 http://{prometheus_host}:9090/targets 查看各节点的监控上报状态. 在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。 注意 实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: Node Exporter Alert Manager 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。 目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:配置文件说明、实现动态服务发现 配置 Grafana 本小节介绍如何配置 Grafana。 第一步: 安装及运行 Grafana 首先下载grafana二进制包: wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate tar -zxvf grafana-6.0.0.linux-amd64.tar.gz cd grafana-6.0.0 启动Grafana ./bin/grafana-server web 观察到如下输出,即为启动成功 INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800 ... INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket= INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2 第二步: 添加 Prometheus 数据源 登录 Grafana 界面。如下图所示: 默认地址:http://localhost:3000 默认账户:admin 默认密码:admin 注意: Change Password 步骤可以选择 Skip。 点击 Grafana 侧边栏菜单 Configuration 中的 Data Source。 点击 Add data source。 指定数据源的相关信息: 在 Name 处,为数据源指定一个名称。 在 Type 处,选择 Prometheus。 在 URL 处,指定 Prometheus 的 IP 地址。 根据需求指定其它字段。 点击 Add 保存新的数据源。 第三步: 导入 Pegasus DashBoard 目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: Pegasus json文件 下载了json文件后,可以通过import的方式将其导入进去。其步骤如下: 进入grafana,点击左边框的”+”,选择import,进入import页面 点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面 然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示 从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。","headline":"Monitoring","mainEntityOfPage":{"@type":"WebPage","@id":"/administration/monitoring"},"url":"/administration/monitoring"}</script> |
| <!-- End Jekyll SEO tag --> |
| </head> |
| |
| |
| <body> |
| <div class="dashboard is-full-height"> |
| <!-- left panel --> |
| <div class="dashboard-panel is-medium is-hidden-mobile pl-0"> |
| <div class="dashboard-panel-header has-text-centered"> |
| <a href="/zh/"> |
| <img src="/assets/images/pegasus-logo-inv.png" style="width: 80%;"> |
| </a> |
| |
| </div> |
| <div class="dashboard-panel-main is-scrollable pl-6"> |
| |
| |
| <aside class="menu"> |
| |
| <p class="menu-label">Pegasus产品文档</p> |
| <ul class="menu-list"> |
| |
| <li> |
| <a href="/zh/docs/downloads" |
| class=""> |
| 下载 |
| </a> |
| </li> |
| |
| </ul> |
| |
| <p class="menu-label">编译构建</p> |
| <ul class="menu-list"> |
| |
| <li> |
| <a href="/zh/docs/build/compile-by-docker" |
| class=""> |
| 使用Docker完成编译(推荐) |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/docs/build/compile-from-source" |
| class=""> |
| 从源码编译 |
| </a> |
| </li> |
| |
| </ul> |
| |
| <p class="menu-label">客户端库</p> |
| <ul class="menu-list"> |
| |
| <li> |
| <a href="/zh/clients/java-client" |
| class=""> |
| Java客户端 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/clients/cpp-client" |
| class=""> |
| C++客户端 |
| </a> |
| </li> |
| |
| <li> |
| <a href="https://github.com/apache/incubator-pegasus/tree/master/go-client" |
| class=""> |
| Golang客户端 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/clients/python-client" |
| class=""> |
| Python客户端 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/clients/node-client" |
| class=""> |
| NodeJS客户端 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/clients/scala-client" |
| class=""> |
| Scala客户端 |
| </a> |
| </li> |
| |
| </ul> |
| |
| <p class="menu-label">生态工具</p> |
| <ul class="menu-list"> |
| |
| <li> |
| <a href="/zh/docs/tools/shell" |
| class=""> |
| Pegasus Shell 工具 |
| </a> |
| </li> |
| |
| <li> |
| <a href="https://github.com/pegasus-kv/admin-cli" |
| class=""> |
| 集群管理命令行 |
| </a> |
| </li> |
| |
| <li> |
| <a href="https://github.com/pegasus-kv/pegic" |
| class=""> |
| 数据访问命令行 |
| </a> |
| </li> |
| |
| </ul> |
| |
| <p class="menu-label">用户接口</p> |
| <ul class="menu-list"> |
| |
| <li> |
| <a href="/zh/api/ttl" |
| class=""> |
| TTL |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/api/single-atomic" |
| class=""> |
| 单行原子操作 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/api/redis" |
| class=""> |
| Redis适配 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/api/geo" |
| class=""> |
| GEO支持 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/api/http" |
| class=""> |
| HTTP接口 |
| </a> |
| </li> |
| |
| </ul> |
| |
| <p class="menu-label">高效运维</p> |
| <ul class="menu-list"> |
| |
| <li> |
| <a href="/zh/administration/deployment" |
| class=""> |
| 集群部署 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/config" |
| class=""> |
| 配置说明 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/rebalance" |
| class=""> |
| 负载均衡 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/monitoring" |
| class="is-active"> |
| 可视化监控 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/rolling-update" |
| class=""> |
| 集群升级 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/scale-in-out" |
| class=""> |
| 集群扩容缩容 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/resource-management" |
| class=""> |
| 资源管理 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/cold-backup" |
| class=""> |
| 冷备份 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/meta-recovery" |
| class=""> |
| 元数据恢复 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/replica-recovery" |
| class=""> |
| Replica数据恢复 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/zk-migration" |
| class=""> |
| Zookeeper迁移 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/table-migration" |
| class=""> |
| Table迁移 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/table-soft-delete" |
| class=""> |
| Table软删除 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/table-env" |
| class=""> |
| Table环境变量 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/remote-commands" |
| class=""> |
| 远程命令 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/partition-split" |
| class=""> |
| Partition-Split |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/duplication" |
| class=""> |
| 跨机房同步 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/compression" |
| class=""> |
| 数据压缩 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/throttling" |
| class=""> |
| 流量控制 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/experiences" |
| class=""> |
| 运维经验 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/manual-compact" |
| class=""> |
| Manual Compact功能 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/usage-scenario" |
| class=""> |
| Usage Scenario功能 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/bad-disk" |
| class=""> |
| 坏盘检修 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/whitelist" |
| class=""> |
| 白名单 |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/backup-request" |
| class=""> |
| Backup Request |
| </a> |
| </li> |
| |
| <li> |
| <a href="/zh/administration/hotspot-detection" |
| class=""> |
| 热点检测 |
| </a> |
| </li> |
| |
| </ul> |
| |
| </aside> |
| </div> |
| </div> |
| |
| <!-- main section --> |
| <div class="dashboard-main is-scrollable"> |
| <nav class="navbar is-hidden-desktop"> |
| <div class="navbar-brand"> |
| <a href="/zh/" class="navbar-item"> |
| <!-- Pegasus Icon --> |
| <img src="/assets/images/pegasus-square.png"> |
| </a> |
| <div class="navbar-item"> |
| |
| |
| <!--A simple language switch button that only supports zh and en.--> |
| <!--IF its language is zh, then switches to en.--> |
| |
| <!--If you don't want a url to be relativized, you can add a space explicitly into the href to |
| prevents a url from being relativized by polyglot.--> |
| <a class="button is-light is-outlined is-inverted" href=" /administration/monitoring"><strong>En</strong></a> |
| |
| </div> |
| <a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navMenu"> |
| <!-- Appears in mobile mode only --> |
| <span aria-hidden="true"></span> |
| <span aria-hidden="true"></span> |
| <span aria-hidden="true"></span> |
| </a> |
| </div> |
| <div class="navbar-menu" id="navMenu"> |
| <div class="navbar-end"> |
| |
| <!--dropdown--> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a href="" |
| class="navbar-link "> |
| <span> |
| Pegasus产品文档 |
| </span> |
| </a> |
| <div class="navbar-dropdown"> |
| |
| <a href="/zh/docs/downloads" |
| class="navbar-item "> |
| 下载 |
| </a> |
| |
| </div> |
| </div> |
| |
| <!--dropdown--> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a href="" |
| class="navbar-link "> |
| <span> |
| 编译构建 |
| </span> |
| </a> |
| <div class="navbar-dropdown"> |
| |
| <a href="/zh/docs/build/compile-by-docker" |
| class="navbar-item "> |
| 使用Docker完成编译(推荐) |
| </a> |
| |
| <a href="/zh/docs/build/compile-from-source" |
| class="navbar-item "> |
| 从源码编译 |
| </a> |
| |
| </div> |
| </div> |
| |
| <!--dropdown--> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a href="" |
| class="navbar-link "> |
| <span> |
| 客户端库 |
| </span> |
| </a> |
| <div class="navbar-dropdown"> |
| |
| <a href="/zh/clients/java-client" |
| class="navbar-item "> |
| Java客户端 |
| </a> |
| |
| <a href="/zh/clients/cpp-client" |
| class="navbar-item "> |
| C++客户端 |
| </a> |
| |
| <a href="https://github.com/apache/incubator-pegasus/tree/master/go-client" |
| class="navbar-item "> |
| Golang客户端 |
| </a> |
| |
| <a href="/zh/clients/python-client" |
| class="navbar-item "> |
| Python客户端 |
| </a> |
| |
| <a href="/zh/clients/node-client" |
| class="navbar-item "> |
| NodeJS客户端 |
| </a> |
| |
| <a href="/zh/clients/scala-client" |
| class="navbar-item "> |
| Scala客户端 |
| </a> |
| |
| </div> |
| </div> |
| |
| <!--dropdown--> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a href="" |
| class="navbar-link "> |
| <span> |
| 生态工具 |
| </span> |
| </a> |
| <div class="navbar-dropdown"> |
| |
| <a href="/zh/docs/tools/shell" |
| class="navbar-item "> |
| Pegasus Shell 工具 |
| </a> |
| |
| <a href="https://github.com/pegasus-kv/admin-cli" |
| class="navbar-item "> |
| 集群管理命令行 |
| </a> |
| |
| <a href="https://github.com/pegasus-kv/pegic" |
| class="navbar-item "> |
| 数据访问命令行 |
| </a> |
| |
| </div> |
| </div> |
| |
| <!--dropdown--> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a href="" |
| class="navbar-link "> |
| <span> |
| 用户接口 |
| </span> |
| </a> |
| <div class="navbar-dropdown"> |
| |
| <a href="/zh/api/ttl" |
| class="navbar-item "> |
| TTL |
| </a> |
| |
| <a href="/zh/api/single-atomic" |
| class="navbar-item "> |
| 单行原子操作 |
| </a> |
| |
| <a href="/zh/api/redis" |
| class="navbar-item "> |
| Redis适配 |
| </a> |
| |
| <a href="/zh/api/geo" |
| class="navbar-item "> |
| GEO支持 |
| </a> |
| |
| <a href="/zh/api/http" |
| class="navbar-item "> |
| HTTP接口 |
| </a> |
| |
| </div> |
| </div> |
| |
| <!--dropdown--> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a href="" |
| class="navbar-link "> |
| <span> |
| 高效运维 |
| </span> |
| </a> |
| <div class="navbar-dropdown"> |
| |
| <a href="/zh/administration/deployment" |
| class="navbar-item "> |
| 集群部署 |
| </a> |
| |
| <a href="/zh/administration/config" |
| class="navbar-item "> |
| 配置说明 |
| </a> |
| |
| <a href="/zh/administration/rebalance" |
| class="navbar-item "> |
| 负载均衡 |
| </a> |
| |
| <a href="/zh/administration/monitoring" |
| class="navbar-item is-active"> |
| 可视化监控 |
| </a> |
| |
| <a href="/zh/administration/rolling-update" |
| class="navbar-item "> |
| 集群升级 |
| </a> |
| |
| <a href="/zh/administration/scale-in-out" |
| class="navbar-item "> |
| 集群扩容缩容 |
| </a> |
| |
| <a href="/zh/administration/resource-management" |
| class="navbar-item "> |
| 资源管理 |
| </a> |
| |
| <a href="/zh/administration/cold-backup" |
| class="navbar-item "> |
| 冷备份 |
| </a> |
| |
| <a href="/zh/administration/meta-recovery" |
| class="navbar-item "> |
| 元数据恢复 |
| </a> |
| |
| <a href="/zh/administration/replica-recovery" |
| class="navbar-item "> |
| Replica数据恢复 |
| </a> |
| |
| <a href="/zh/administration/zk-migration" |
| class="navbar-item "> |
| Zookeeper迁移 |
| </a> |
| |
| <a href="/zh/administration/table-migration" |
| class="navbar-item "> |
| Table迁移 |
| </a> |
| |
| <a href="/zh/administration/table-soft-delete" |
| class="navbar-item "> |
| Table软删除 |
| </a> |
| |
| <a href="/zh/administration/table-env" |
| class="navbar-item "> |
| Table环境变量 |
| </a> |
| |
| <a href="/zh/administration/remote-commands" |
| class="navbar-item "> |
| 远程命令 |
| </a> |
| |
| <a href="/zh/administration/partition-split" |
| class="navbar-item "> |
| Partition-Split |
| </a> |
| |
| <a href="/zh/administration/duplication" |
| class="navbar-item "> |
| 跨机房同步 |
| </a> |
| |
| <a href="/zh/administration/compression" |
| class="navbar-item "> |
| 数据压缩 |
| </a> |
| |
| <a href="/zh/administration/throttling" |
| class="navbar-item "> |
| 流量控制 |
| </a> |
| |
| <a href="/zh/administration/experiences" |
| class="navbar-item "> |
| 运维经验 |
| </a> |
| |
| <a href="/zh/administration/manual-compact" |
| class="navbar-item "> |
| Manual Compact功能 |
| </a> |
| |
| <a href="/zh/administration/usage-scenario" |
| class="navbar-item "> |
| Usage Scenario功能 |
| </a> |
| |
| <a href="/zh/administration/bad-disk" |
| class="navbar-item "> |
| 坏盘检修 |
| </a> |
| |
| <a href="/zh/administration/whitelist" |
| class="navbar-item "> |
| 白名单 |
| </a> |
| |
| <a href="/zh/administration/backup-request" |
| class="navbar-item "> |
| Backup Request |
| </a> |
| |
| <a href="/zh/administration/hotspot-detection" |
| class="navbar-item "> |
| 热点检测 |
| </a> |
| |
| </div> |
| </div> |
| |
| </div> |
| </div> |
| </nav> |
| |
| <nav class="navbar is-hidden-mobile"> |
| <div class="navbar-start w-full"> |
| <div class="navbar-item pl-0 w-full"> |
| <!--TODO(wutao): Given the limitation of docsearch that couldn't handle multiple input, |
| I make searchbox only shown in desktop. Fix this issue when docsearch.js v3 released. |
| Related issue: https://github.com/algolia/docsearch/issues/230--> |
| <div id="docsearch"></div> |
| </div> |
| </div> |
| <div class="navbar-end"> |
| <div class="navbar-item"> |
| |
| |
| <!--A simple language switch button that only supports zh and en.--> |
| <!--IF its language is zh, then switches to en.--> |
| |
| <!--If you don't want a url to be relativized, you can add a space explicitly into the href to |
| prevents a url from being relativized by polyglot.--> |
| <a class="button is-light is-outlined is-inverted" href=" /administration/monitoring"><strong>En</strong></a> |
| |
| </div> |
| </div> |
| </nav> |
| |
| <section class="hero is-info lg:mr-3"> |
| <div class="hero-body"> |
| |
| <p class="title is-size-2 is-centered">可视化监控</p> |
| </div> |
| </section> |
| <section class="section" style="padding-top: 2rem;"> |
| <div class="content"> |
| <h2 id="组件">组件</h2> |
| |
| <p>从v1.12.0开始, Pegasus 支持使用 <a href="https://prometheus.io/">Prometheus</a> 和 <a href="https://grafana.com/">Grafana</a> 进项监控项的采集和展示。</p> |
| |
| <ul> |
| <li>Prometheus</li> |
| </ul> |
| |
| <blockquote> |
| <p>Prometheus 是一款开源的系统监控和报警套件。它可以通过将采集被监控系统的监控项存入自身的时序数据库中,并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。</p> |
| </blockquote> |
| |
| <ul> |
| <li>Grafana</li> |
| </ul> |
| |
| <blockquote> |
| <p>Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。</p> |
| </blockquote> |
| |
| <p><strong>注意</strong>*</p> |
| |
| <p>本文档仅提供一种使用 Prometheus 和 Grafana 进行 Pegasus 监控数据采集和展示的方式。Pegasus<strong>不包含、不维护这些组件</strong>。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。</p> |
| |
| <h2 id="配置-prometheus">配置 Prometheus</h2> |
| |
| <p>本小节介绍如何配置 Prometheus。</p> |
| |
| <h3 id="第一步-配置pegasus服务">第一步: 配置Pegasus服务</h3> |
| |
| <p>Pegasus默认不向任何外部系统推送监控信息, 你需要修改配置文件以启用prometheus推送。具体如下:</p> |
| |
| <div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">[pegasus.server]</span> |
| <span class="py">perf_counter_sink</span> <span class="p">=</span> <span class="s">prometheus</span> |
| <span class="py">prometheus_port</span> <span class="p">=</span> <span class="s">9091</span> |
| </code></pre></div></div> |
| |
| <blockquote> |
| <p><strong>注</strong>: 如果你想要测试你的Pegasus节点是否正确开启了Prometheus推送, 可以检查 <code class="language-plaintext highlighter-rouge">http://{pegasus_host}:{prometheus_port}/metrics</code> 是否能正常访问.</p> |
| </blockquote> |
| |
| <h4 id="onebox使用prometheus">Onebox使用Prometheus</h4> |
| |
| <p>如果使用onebox, 请首先修改配置文件src/server/config.min.ini以开启Prometheus推送. 但不需要改动 <code class="language-plaintext highlighter-rouge">prometheus_port</code>.</p> |
| |
| <div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">[pegasus.server]</span> |
| <span class="py">perf_counter_sink</span> <span class="p">=</span> <span class="s">prometheus</span> |
| <span class="py">prometheus_port</span> <span class="p">=</span> <span class="s">@PROMETHEUS_PORT@</span> |
| </code></pre></div></div> |
| |
| <p>由于onebox模式下多个Pegasus服务进程部署在一台机器上,因此各replica、meta、collector的prometheus端口存在冲突问题. 当前我们的解决办法是对每个进程配置单独的prometheus port:</p> |
| |
| <ul> |
| <li>collector : 9091</li> |
| <li>meta: [9092, 9093, 9094…]</li> |
| <li>replica: [9092+{META_COUNT}, 9093+{META_COUNT}, 9094+{META_COUNT}…]</li> |
| </ul> |
| |
| <p>例如一个2 meta, 3 replica, 1 collector的onebox集群, 其端口对应如下:</p> |
| |
| <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./run.sh start_onebox <span class="nt">-r</span> 3 <span class="nt">-m</span> 2 <span class="nt">-c</span> |
| </code></pre></div></div> |
| |
| <ul> |
| <li>meta1: 9092, meta2: 9093</li> |
| <li>replica1: 9094, replica2: 9095, replica3: 9096</li> |
| </ul> |
| |
| <h3 id="第二步-安装及运行-prometheus">第二步: 安装及运行 Prometheus</h3> |
| |
| <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz |
| <span class="nb">tar </span>xvfz prometheus-2.15.2.linux-amd64.tar.gz |
| <span class="nb">cd </span>prometheus-2.15.2.linux-amd64 |
| </code></pre></div></div> |
| |
| <p>修改prometheus目录下的prometheus.yml文件,配置模板如下所示:</p> |
| |
| <div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">global</span><span class="pi">:</span> |
| <span class="na">scrape_interval</span><span class="pi">:</span> <span class="s">5s</span> |
| |
| <span class="na">scrape_configs</span><span class="pi">:</span> |
| <span class="pi">-</span> <span class="na">job_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">pegasus'</span> |
| <span class="na">static_configs</span><span class="pi">:</span> |
| <span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s1">'</span><span class="s">collector_host:9091'</span><span class="pi">]</span> |
| <span class="na">labels</span><span class="pi">:</span> |
| <span class="na">group</span><span class="pi">:</span> <span class="s">collector</span> |
| |
| <span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s1">'</span><span class="s">meta_host1:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">meta_host2:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">meta_host3:9091'</span><span class="pi">]</span> |
| <span class="na">labels</span><span class="pi">:</span> |
| <span class="na">group</span><span class="pi">:</span> <span class="s">meta</span> |
| |
| <span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s1">'</span><span class="s">replica_host1:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">replica_host2:9091'</span><span class="pi">,</span> <span class="s1">'</span><span class="s">replica_host3:9091'</span><span class="pi">]</span> |
| <span class="na">labels</span><span class="pi">:</span> |
| <span class="na">group</span><span class="pi">:</span> <span class="s">replica</span> |
| <span class="c1">#</span> |
| <span class="c1"># NOTE: Add the following lines if node exporter is deployed.</span> |
| <span class="c1"># - targets:</span> |
| <span class="c1"># [</span> |
| <span class="c1"># 'node_exporter_host1:9100',</span> |
| <span class="c1"># 'node_exporter_host2:9100',</span> |
| <span class="c1"># ...</span> |
| <span class="c1"># 'node_exporter_hostn:9100',</span> |
| <span class="c1"># ]</span> |
| <span class="c1"># labels:</span> |
| <span class="c1"># group: node_exporter</span> |
| </code></pre></div></div> |
| |
| <p>对于上述通过 <code class="language-plaintext highlighter-rouge">./run.sh start_onebox -r 3 -m 2 -c</code> 启动的onebox集群, 实际配置如下:</p> |
| |
| <div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">global</span><span class="pi">:</span> |
| <span class="na">scrape_interval</span><span class="pi">:</span> <span class="s">5s</span> |
| |
| <span class="na">scrape_configs</span><span class="pi">:</span> |
| <span class="pi">-</span> <span class="na">job_name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">pegasus"</span> |
| <span class="na">static_configs</span><span class="pi">:</span> |
| <span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s2">"</span><span class="s">0.0.0.0:9091"</span><span class="pi">]</span> |
| <span class="na">labels</span><span class="pi">:</span> |
| <span class="na">group</span><span class="pi">:</span> <span class="s">collector</span> |
| |
| <span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s2">"</span><span class="s">0.0.0.0:9092"</span><span class="pi">,</span> <span class="s2">"</span><span class="s">0.0.0.0:9093"</span><span class="pi">]</span> |
| <span class="na">labels</span><span class="pi">:</span> |
| <span class="na">group</span><span class="pi">:</span> <span class="s">meta</span> |
| |
| <span class="pi">-</span> <span class="na">targets</span><span class="pi">:</span> <span class="pi">[</span><span class="s2">"</span><span class="s">0.0.0.0:9094"</span><span class="pi">,</span> <span class="s2">"</span><span class="s">0.0.0.0:9095"</span><span class="pi">,</span> <span class="s2">"</span><span class="s">0.0.0.0:9096"</span><span class="pi">]</span> |
| <span class="na">labels</span><span class="pi">:</span> |
| <span class="na">group</span><span class="pi">:</span> <span class="s">replica</span> |
| </code></pre></div></div> |
| |
| <p>修改完prometheus.yml之后,启动prometheus:</p> |
| |
| <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./prometheus <span class="nt">--config</span>.file<span class="o">=</span>prometheus.yml |
| </code></pre></div></div> |
| |
| <p>进入网址 <a href="http://localhost:9090">localhost:9090</a> 看到如下界面即表示到这一步为止是成功的。</p> |
| |
| <p><img src="/assets/images/prometheus-server.png" alt="prometheus-server" /></p> |
| |
| <blockquote> |
| <p><strong>注</strong>: 如果你想要测试Prometheus是否正确配置, 可以检查 <code class="language-plaintext highlighter-rouge">http://{prometheus_host}:9090/targets</code> 查看各节点的监控上报状态.</p> |
| </blockquote> |
| |
| <p>在Expression框内输入需要查找的内容,点击Excute即可在Element中展示查找到的内容,当选择Graph时可以显示该内容一段时间内数值变化情况。</p> |
| |
| <p><strong><em>注意</em></strong></p> |
| |
| <ol> |
| <li> |
| <p>实际运维过程中, 我们通常需要获取一些机器及操作系统的监控指标, 如cpu.busy, disk.iostat等等, 所以在部署Pegasus集群的时候,可以考虑在每一台机器上部署一个node exporter后台实例,具体可参考: <a href="https://github.com/prometheus/node_exporter">Node Exporter</a></p> |
| </li> |
| <li> |
| <p><a href="https://github.com/prometheus/alertmanager">Alert Manager</a> 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。</p> |
| </li> |
| <li> |
| <p>目前我们的prometheus.yml使用的是静态配置的方式(static_configs),其缺点是当动态扩容缩容的时候需要手动去修改该静态配置。当前Prometheus支持多种动态服务发现方式,例如k8s、consul和dns等等,用户也可以根据自己需求去定制实现。详情请参考文档:<a href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/">配置文件说明</a>、<a href="https://prometheus.io/blog/2018/07/05/implementing-custom-sd/">实现动态服务发现</a></p> |
| </li> |
| </ol> |
| |
| <h2 id="配置-grafana">配置 Grafana</h2> |
| |
| <p>本小节介绍如何配置 Grafana。</p> |
| |
| <h3 id="第一步-安装及运行-grafana">第一步: 安装及运行 Grafana</h3> |
| |
| <p>首先下载grafana二进制包:</p> |
| |
| <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz //如果报错,可以尝试在后面添加--no-check-certificate |
| <span class="nb">tar</span> <span class="nt">-zxvf</span> grafana-6.0.0.linux-amd64.tar.gz |
| <span class="nb">cd </span>grafana-6.0.0 |
| </code></pre></div></div> |
| |
| <p>启动Grafana</p> |
| |
| <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./bin/grafana-server web |
| </code></pre></div></div> |
| |
| <p>观察到如下输出,即为启动成功</p> |
| |
| <pre><code class="language-Linux">INFO[07-24|14:36:59] Starting Grafana logger=server version=6.0.0 commit=34a9a62 branch=HEAD compiled=2019-02-25T22:47:26+0800 |
| ... |
| INFO[07-24|14:37:00] HTTP Server Listen logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket= |
| INFO[07-24|14:37:00] cleanup of expired auth tokens done logger=auth count=2 |
| </code></pre> |
| |
| <h3 id="第二步-添加-prometheus-数据源">第二步: 添加 Prometheus 数据源</h3> |
| |
| <ol> |
| <li> |
| <p>登录 Grafana 界面。如下图所示:</p> |
| |
| <p><img src="/assets/images/grafana-login.png" alt="grafana-login" /></p> |
| |
| <ul> |
| <li>默认地址:<a href="http://localhost:3000">http://localhost:3000</a></li> |
| <li>默认账户:admin</li> |
| <li>默认密码:admin</li> |
| </ul> |
| |
| <blockquote> |
| <p><strong>注意:</strong></p> |
| |
| <p>Change Password 步骤可以选择 Skip。</p> |
| </blockquote> |
| </li> |
| <li> |
| <p>点击 Grafana 侧边栏菜单 <strong>Configuration</strong> 中的 <strong>Data Source</strong>。</p> |
| </li> |
| <li> |
| <p>点击 <strong>Add data source</strong>。</p> |
| </li> |
| <li> |
| <p>指定数据源的相关信息:</p> |
| |
| <ul> |
| <li>在 <strong>Name</strong> 处,为数据源指定一个名称。</li> |
| <li>在 <strong>Type</strong> 处,选择 <strong>Prometheus</strong>。</li> |
| <li>在 <strong>URL</strong> 处,指定 Prometheus 的 IP 地址。</li> |
| <li>根据需求指定其它字段。</li> |
| </ul> |
| </li> |
| <li> |
| <p>点击 Add 保存新的数据源。</p> |
| </li> |
| </ol> |
| |
| <h3 id="第三步-导入-pegasus-dashboard">第三步: 导入 Pegasus DashBoard</h3> |
| |
| <p>目前Pegasus拥有一个DashBoard,用于提供一些基本的监控信息。其相应的json文件: <a href="https://github.com/XiaoMi/pegasus-common/releases/download/deps/grafana-dashboard.json">Pegasus json文件</a></p> |
| |
| <p>下载了json文件后,可以通过import的方式将其导入进去。其步骤如下:</p> |
| |
| <p>进入grafana,点击左边框的”+”,选择import,进入import页面</p> |
| |
| <p><img src="/assets/images/grafana-import-panel-upload.png" alt="grafana-import-panel" /></p> |
| |
| <p>点击右上角的”Upload .json File”,然后选择文件。选择之后进入如下页面</p> |
| |
| <p><img src="/assets/images/grafana-import-panel.png" alt="grafana-import-panel" /></p> |
| |
| <p>然后点击左下角的”import”按钮完成导入,并进入到Pegasus相应的DashBoard,其页面如下所示</p> |
| |
| <p><img src="/assets/images/grafana-dashboard-pegasus.png" alt="grafana-import-panel" /></p> |
| |
| <p>从图中可以看出,Pegasus的DashBoard分为两个row: Pegasus-Cluster和Pegasus-Table,分别代表集群级别监控和表级监控。在左上角的cluster_name后输入具体的集群名字,便可以查看该集群相应的各种监控信息。</p> |
| |
| </div> |
| </section> |
| <footer class="footer"> |
| <div class="container"> |
| <div class="content is-small has-text-centered"> |
| <div style="margin-bottom: 20px;"> |
| <a href="http://incubator.apache.org"> |
| <img src="/assets/images/egg-logo.png" |
| width="15%" |
| alt="Apache Incubator"/> |
| </a> |
| </div> |
| Copyright © 2023 <a href="http://www.apache.org">The Apache Software Foundation</a>. |
| Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version |
| 2.0</a>. |
| <br><br> |
| |
| Apache Pegasus is an effort undergoing incubation at The Apache Software Foundation (ASF), |
| sponsored by the Apache Incubator. Incubation is required of all newly accepted projects |
| until a further review indicates that the infrastructure, communications, and decision making process |
| have stabilized in a manner consistent with other successful ASF projects. While incubation status is |
| not necessarily a reflection of the completeness or stability of the code, it does indicate that the |
| project has yet to be fully endorsed by the ASF. |
| |
| <br><br> |
| Apache Pegasus, Pegasus, Apache, the Apache feather logo, and the Apache Pegasus project logo are either |
| registered trademarks or trademarks of The Apache Software Foundation in the United States and other |
| countries. |
| </div> |
| </div> |
| </footer> |
| </div> |
| |
| <!-- right panel --> |
| <div class="dashboard-panel is-small is-scrollable is-hidden-mobile"> |
| <p class="menu-label"> |
| <span class="icon"> |
| <i class="fa fa-bars" aria-hidden="true"></i> |
| </span> |
| 本页导航 |
| </p> |
| <ul class="menu-list"> |
| <li><a href="#组件">组件</a></li> |
| <li><a href="#配置-prometheus">配置 Prometheus</a> |
| <ul> |
| <li><a href="#第一步-配置pegasus服务">第一步: 配置Pegasus服务</a> |
| <ul> |
| <li><a href="#onebox使用prometheus">Onebox使用Prometheus</a></li> |
| </ul> |
| </li> |
| <li><a href="#第二步-安装及运行-prometheus">第二步: 安装及运行 Prometheus</a></li> |
| </ul> |
| </li> |
| <li><a href="#配置-grafana">配置 Grafana</a> |
| <ul> |
| <li><a href="#第一步-安装及运行-grafana">第一步: 安装及运行 Grafana</a></li> |
| <li><a href="#第二步-添加-prometheus-数据源">第二步: 添加 Prometheus 数据源</a></li> |
| <li><a href="#第三步-导入-pegasus-dashboard">第三步: 导入 Pegasus DashBoard</a></li> |
| </ul> |
| </li> |
| </ul> |
| |
| </div> |
| </div> |
| |
| <script src="/assets/js/app.js" type="text/javascript"></script> |
| <script> |
| docsearch({ |
| container: '#docsearch', |
| appId: 'QRN30RBW0S', |
| indexName: 'pegasus-apache', |
| apiKey: 'd3a3252fa344359766707a106c4ed88f', |
| debug: true |
| }); |
| </script> |
| |
| </body> |
| |
| </html> |