YMatrix предоставляет собственный экспортер, который бесшовно интегрируется с экосистемой мониторинга Prometheus.
Обратите внимание, что экспортер YMatrix и соответствующие дашборды охватывают только метрики на уровне базы данных, а не метрики операционной системы. Мониторинг на уровне ОС требует дополнительных экспортеров, таких как node_exporter. Структура модулей показана ниже:

Экспортер YMatrix включен в установочный пакет 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).
# Download node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
# Extract the package
tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local
# Create a symbolic link
ln -s /usr/local/node_exporter-1.3.1.linux-amd64/ /usr/local/node_exporter
# Generate systemctl configuration
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
# Start node_exporter
systemctl start node_exporter
systemctl status node_exporter
systemctl enable node_exporter
Примечание!
node_exporterдолжен быть развернут на всех хостах кластера. Повторите вышеуказанные шаги на каждом хосте.
Выберите хост, имеющий доступ к портам экспортеров на всех узлах кластера. Это может быть Master, Standby Master или отдельный компьютер (Linux, macOS, Windows и т.д.).
Установите последнюю версию Prometheus. Официальная ссылка для скачивания: https://prometheus.io/download/.
Приведённые ниже команды используют CentOS 7 в качестве примера. Для других операционных систем обратитесь к их документации.
Примечание!
При установке вы можете выбрать, включать ли мониторинг mxgate. В примере кода приведена конфигурация mxgate; удалите её, если она не требуется. См. комментарии в примере.
# Download package
wget https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz
# Extract to /usr/local and create symbolic link
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
# Create Prometheus user
useradd -s /sbin/nologin -M prometheus
# Create data directory
mkdir /data/prometheus -p
# Set ownership
chown -R prometheus:prometheus /usr/local/prometheus/
chown -R prometheus:prometheus /data/prometheus/
# Configure 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
# Edit Prometheus configuration
# Add matrixdb and node exporter IPs and ports in scrape_configs
# (matrixdb_exporter default port: 9273, node_exporter default port: 9100)
# Note: matrixdb and mxgate dashboards use the matrixdb_cluster label for cluster filtering
# Add relabel_configs to replace job label with matrixdb_cluster
# Set replacement to your cluster name
# Example configuration:
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"]
# For multi-host clusters, list all IPs in 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"]
# Optional: Add the following block to enable mxgate monitoring, then restart 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"]
# Note: Pay attention to YAML indentation to avoid syntax errors
# Start Prometheus
systemctl start prometheus
systemctl status prometheus
systemctl enable prometheus
После запуска откройте веб-интерфейс Prometheus для проверки статуса: http://IP:9090/
В веб-интерфейсе Prometheus перейдите в раздел Status → Targets:

Все настроенные экспортеры (matrixdb_exporter, node_exporter и сам Prometheus) должны показывать статус UP, что указывает на успешное развертывание:

Prometheus хранит данные мониторинга. Grafana извлекает и визуализирует эти данные. Подготовьте хост, имеющий доступ к 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_or_hostname>:3000
Появится страница входа в Grafana. Войдите с помощью стандартных учётных данных (admin / admin). Измените пароль для обеспечения безопасности.
После развертывания экспортера, Prometheus и Grafana загрузите дашборд для визуализации метрик.
Каждый дашборд требует источника данных. Сначала добавьте его:
Нажмите значок шестерёнки в Grafana и выберите Data Sources:

Нажмите Add data source:

Выберите Prometheus в качестве типа базы данных:

Назовите источник данных (например, MatrixDB-Prometheus) и укажите IP-адрес и порт сервера Prometheus в поле URL:

После добавления источника данных импортируйте дашборд. Нажмите значок + и выберите Import:

Варианты импорта: URL/ID, вставка JSON или загрузка файла. Здесь используйте загрузку из файла. Дашборд YMatrix Prometheus находится в каталоге установки по пути $GPHOME/share/doc/postgresql/extension/PrometheusDashboard.json:

При загрузке выберите ранее созданный источник данных Prometheus:

Импортированный дашборд теперь отображается в списке дашбордов.
Для подробной интерпретации метрик дашборда см. Руководство по параметрам мониторинга YMatrix
Предыдущие шаги показывают, как импортировать дашборд YMatrix. Теперь добавьте дашборд node_exporter.
Дашборд node_exporter доступен на сайте Grafana: Dashboard. Импортируйте его, введя ID:

При импорте выберите ранее добавленный источник данных MatrixDB-Prometheus. Если node_exporter использует отдельный экземпляр Prometheus, настройте отдельный источник данных.

После включения сбора метрик кластера каждый хост запускает службу сбора. Логи сохраняются в /var/log/matrixdb.
При перезапуске YMatrix или перезагрузке системы и последующем запуске YMatrix служба matrixdb_exporter запускается автоматически без ручного вмешательства.
Чтобы отключить matrixdb_exporter, подключитесь к базе данных matrixmgr и выполните:
psql -d matrixmgr
matrixmgr=# SELECT mxmgr_remove_exporter();
Чтобы снова включить сбор данных, выполните:
matrixmgr=# SELECT mxmgr_deploy_exporter();
Примечание!
mxmgr_remove_exporterостанавливает толькоmatrixdb_exporter. Вам необходимо вручную остановитьnode_exporter, Grafana и Prometheus.
Обновление с устаревшей системы мониторинга на новую, основанную на Prometheus.
Сначала установите и разверните Prometheus и обновите Grafana до последней версии:
# Stop legacy monitoring
psql -d matrixmgr
matrixmgr=# SELECT mxmgr_remove_all('local');
# Initialize and start new monitoring
matrixmgr=# SELECT mxmgr_init_exporter();
Примечание!
Обе системы мониторинга могут сосуществовать. Вы можете запускать новую систему без остановки старой, хотя это приведёт к избыточному сбору данных.
MatrixGate — компонент высокопроизводительного ввода данных — также поддерживает экосистему мониторинга Prometheus. Как правило, метрики MatrixDB и MatrixGate хранятся в одном экземпляре Prometheus. Ниже приведены шаги, предполагающие такую конфигурацию.
Как и экспортер YMatrix, развертывание gate_exporter требует базы данных matrixmgr и расширений matrixts и matrixmgr. Предполагается, что они уже созданы.
Вызовите mxmgr_init_gate_exporter для инициализации и запуска:
matrixmgr=# SELECT mxmgr_init_gate_exporter();
При успешном выполнении в базе данных matrixmgr появляется новая схема с именем gate_exporter. Эта схема содержит таблицы и представления для мониторинга и конфигурации gate. Не изменяйте их.
Эта команда запускает gate_exporter на хосте Master.
Чтобы остановить gate_exporter, выполните mxmgr_init_gate_exporter:
matrixmgr=# SELECT mxmgr_remove_gate_exporter();
Чтобы перезапустить, выполните mxmgr_remove_gate_exporter:
matrixmgr=# SELECT mxmgr_deploy_gate_exporter();
Как и дашборд YMatrix, файл дашборда MatrixGate находится по пути $GPHOME/share/doc/postgresql/extension/MxgateDashboard.json.. Импортируйте этот файл.
Для подробной интерпретации метрик см. Руководство по параметрам мониторинга MatrixGate