400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
YMatrix 还提供了自研的 exporter,可以完美对接到 Prometheus 监控生态中。
需要注意的是,YMatrix 的 exporter 及相应的 Dashboard 仅包含数据库自身的监控,不包含操作系统指标监控。操作系统相关指标监控需要额外的 exporter 支持,如 node_exporter。模块布局如下:
YMatrix exporter 已包含在 YMatrix 的安装包中,激活即可使用。然后安装与部署 node_exporter、Grafana、Prometheus。
createdb matrixmgr;
psql -d matrixmgr
matrixmgr=# CREATE EXTENSION matrixts;
matrixmgr=# CREATE EXTENSION matrixmgr;
matrixmgr=# SELECT mxmgr_init_exporter();
成功后,可以观察到 matrixmgr 数据库下出现了名为 “exporter” 的新模式。该模式下的表和视图包含了集群的监控和配置信息。请勿自行更改这些表和视图的定义及内容。
该命令会在集群所有机器上启动 matrixdb_exporter。
注意!
如果集群已经启动了旧监控系统,需要先将旧监控系统关闭,否则会失败。 关闭方法:SELECT mxmgr_remove_all('local');
node_exporter 用来监控操作系统相关指标。从官网下载最新版本的 node_exporter。这里以 1.3.1 为例(使用 root 用户操作)。
# 下载 node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
# 解压缩安装包
tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local
# 建立软链接
ln -s /usr/local/node_exporter-1.3.1.linux-amd64/ /usr/local/node_exporter
# 生成 systemctl 配置文件
cat << EOF > /usr/lib/systemd/system/node_exporter.service
[Service]
User=root
Group=root
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target
EOF
# 启动 node_exporter
systemctl start node_exporter
systemctl status node_exporter
systemctl enable node_exporter
注意!
node_exporter 在集群所有主机上都需要部署,所以上述步骤在集群所有主机上都要执行一遍。
准备一台可以访问到集群所有主机 exporter 端口的主机,可以是 Master 或者 Standby Master 节点,也可以是一台单独的机器(Linux、MacOS、Windows等系统均可)。
安装 Prometheus 最新版本。官方下载安装链接为 https://prometheus.io/download/。
下文的命令以 CentOS 7 为例描述操作方法,其他操作系统的命令请参考对应操作系统使用指南。
注意!
安装 Prometheus 过程中,可以选择是否安装 mxgate 监控界面,以下示例持有 mxgate 监控安装代码,如不安装,删掉该段代码即可。具体见示例代码注释。
# 下载安装包
wget https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz
# 解压到 /usr/local 并建立软链接
tar -xf ./prometheus-2.36.1.linux-amd64.tar.gz -C /usr/local
ln -s /usr/local/prometheus-2.36.1.linux-amd64/ /usr/local/prometheus
# 创建 Prometheus 用户
useradd -s /sbin/nologin -M prometheus
# 创建数据目录
mkdir /data/prometheus -p
# 修改目录所属用户和组
chown -R prometheus:prometheus /usr/local/prometheus/
chown -R prometheus:prometheus /data/prometheus/
# 配置 systemctl
cat << EOF > /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 修改 Prometheus 配置文件
# 在 scrape_configs 中添加 matrixdb 和 node exporter 的 IP 和端口
# (matrixdb_exporter 默认端口 9273,node_exporter 默认端口 9100):
# 还需要注意一点,matrixdb 和 mxgate 的监控图通过 matrixdb_cluster 变量做集群筛选,
# 所以要增加 relabel_configs 配置,将 job 标签替换成 matrixdb_cluster,
# replacement 中填写集群名称
# 可参考如下配置:
scrape_configs:
- job_name: "matrixdb_exporter"
relabel_configs:
- source_labels: ['job']
regex: .*
target_label: matrixdb_cluster
replacement: cluster1
action : replace
static_configs:
- targets: ["localhost:9273"]
- job_name: "node_exporter"
static_configs:
- targets: ["localhost:9100"]
# 当集群包含多台主机时,需要将每台主机的 IP 端口都添加到 targets 数组里
# 例如:
scrape_configs:
- job_name: "matrixdb_exporter"
relabel_configs:
- source_labels: ['job']
regex: .*
target_label: matrixdb_cluster
replacement: cluster1
action : replace
static_configs:
- targets: ["192.168.0.1:9273", "192.168.0.2:9273", "192.168.0.3:9273"]
- job_name: "node_exporter"
static_configs:
- targets: ["192.168.0.1:9100", "192.168.0.2:9100", "192.168.0.3:9100"]
# 如果你想要部署 mxgate 监控,那么需要在此位置添加以下段,后重启 Prometheus。此段代码非必须。
- job_name: "gate_exporter"
relabel_configs:
- source_labels: ['job']
regex: .*
target_label: matrixdb_cluster
replacement: cluster1
action : replace
static_configs:
- targets: ["192.168.0.1:9275"]
# 注意:在编辑 yaml 文件时要注意缩进,否则会出现语法错误,导致无法启动
# 启动 Prometheus
systemctl start prometheus
systemctl status prometheus
systemctl enable prometheus
启动后,便可以通过 Prometheus 提供的 UI 界面访问 WebUI,并查看运行状态,http://IP:9090/
在 Prometheus 主面板中选择 Status->Targets
会看到刚刚配置好的 matrixdb_exporter 和 node_exporter 以及 Prometheus 自身的 exporter 状态都是 UP,说明监控部署成功。
Prometheus 用来存储监控数据,Grafana 从 Prometheus 拉取监控数据并展示。和安装 Prometheus 一样,准备一台可以访问 Prometheus 的机器(Grafana 和 Prometheus 可以安装在同一台机器上)。
需要注意的是,Grafana 版本不能低于 8.0.0,建议最新版本。官方下载安装链接为 https://grafana.com/grafana/download。
下文的命令以 CentOS 7 为例描述操作方法,其他操作系统的命令请参考对应操作系统使用指南(需要使用 root 用户操作)。
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.5.5-1.x86_64.rpm
yum install grafana-enterprise-8.5.5-1.x86_64.rpm
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
sudo systemctl enable grafana-server
安装完成后,使用浏览器访问宿主机的 3000 端口:
http://<安装节点的IP或者域名>:3000
可以看到 Grafana 首页。使用默认的用户名和密码(admin / admin)登录。为确保安全,请自行更改密码。
exporter、Prometheus、Grafana 安装部署完毕后,接下来要加载 dashboard,以展示监控图表。
每个 dashboard 都依赖数据源,所以首先要添加数据源:
在 Grafana 主界面上点击设置按钮,选择 Data Sources
:
然后点击 Add data source
:
在数据库类别里选择 Prometheus
:
数据源名称里给该数据源起个名字,如:MatrixDB-Prometheus
;然后在 URL 中填写 Prometheus 的 IP 和端口:
数据源添加好后,下面加载 Dashboard。在 Grafana 主面板上点击加号按钮,然后选择 Import
:
Import 有几种方式:官方 URL 或 ID、将 Json 粘贴到文本框中、从文件加载。这里我们选择从文件加载,matrixdb 的 Prometheus Dashboard 在安装目录中的 $GPHOME/share/doc/postgresql/extension/PrometheusDashboard.json
,加载该文件:
加载文件的时候需要选择 Prometheus 数据源,这里选择刚才创建的源。
然后,即可在面板列表里看到刚刚加载的面板。
面板监控详细解读请参考 YMatrix 监控参数解读
上面的操作步骤演示了如何添加 YMatrix 的 Prometheus Dashboard。下面介绍一下如何将 node_exporter 的 Dashboard 也部署好。
加载 node_exporter 的 Dashboard:因为 Grafana 官网中已发布了对应的 Dashboard,所以直接填写ID加载即可。
在加载的过程中需要选择数据源,选择刚才添加的 MatrixDB-Prometheus
源即可。如果 node_exporter 有独立的 Prometheus 集群,则需要单独添加数据源。
激活了集群状态采集后,每个主机都会运行采集服务,相关日志保存在 /var/log/matrixdb 目录下。
如果重启 YMatrix,或者重启服务器后再启动 YMatrix,YMatrix exporter也会自动启动,无需人工干预。
如需关闭 matrixdb exporter 服务,可连接到 matrixmgr 数据库并执行 mxmgr_remove_exporter 命令:
psql -d matrixmgr
matrixmgr=# SELECT mxmgr_remove_exporter();
如需再次激活数据采集,可连接到 matrixmgr 数据库并执行 mxmgr_deploy_exporter 命令:
matrixmgr=# SELECT mxmgr_deploy_exporter();
注意!
mxmgr_remove_exporter 只会关闭 matrixdb exporter,node_exporter、Grafana、Prometheus需要单独关闭。
旧监控系统升级到对接 Prometheus 生态的新监控。
首先完成 Prometheus 安装和部署,并将 Grafana 升级到最新版本:
# 先将旧监控关闭
psql -d matrixmgr
matrixmgr=# SELECT mxmgr_remove_all('local');
# 初始化并启动新监控
matrixmgr=# SELECT mxmgr_init_exporter();
注意!
新旧监控也可以同时部署,即在不关闭旧监控的前提下也可以启动新监控,只是有些冗余。
作为高性能数据接入组件MatrixGate,同样兼容Prometheus监控生态。通常情况下MatrixDB的监控数据和MatrixGate的监控数据都存储在相同的Prometheus系统中,下面操作步骤也都做这样假定。
与 YMatrix exporter 一样,部署 gate exporter 同样需要创建 matrixmgr
数据库与 matrixts
和 matrixmgr
扩展。这里假设已创建完毕。
然后调用 mxmgr_init_gate_exporter
初始化并启动:
matrixmgr=# SELECT mxmgr_init_gate_exporter();
成功后,可以观察到 matrixmgr 数据库下出现了名为 “gate_exporter” 的新模式。该模式下的表和视图包含了 gate 的监控和配置信息。请勿自行更改这些表和视图的定义及内容。
该命令会在 Master 主机上启动 gate_exporter。
如要关闭 gate_exporter 则执行 mxmgr_remove_gate_exporter
:
matrixmgr=# SELECT mxmgr_remove_gate_exporter();
再次启动则执行 mxmgr_deploy_gate_exporter
:
matrixmgr=# SELECT mxmgr_deploy_gate_exporter();
和加载 YMatrix 监控面板一样,MatrixGate 的面板文件在 $GPHOME/share/doc/postgresql/extension/MxgateDashboard.json
,加载该文件即可。
面板监控详细解读请参考 MatrixGate 监控参数解读