Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Графовая база данных
Введение
Предложения
Функции
Расширенные темы
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
MatrixDB предоставляет собственный экспортер, который бесшовно интегрируется с экосистемой мониторинга Prometheus.
Обратите внимание, что экспортер MatrixDB и соответствующие дашборды охватывают только метрики на уровне базы данных, а не метрики операционной системы. Мониторинг на уровне ОС требует дополнительных экспортеров, таких как node_exporter. Архитектура модуля показана ниже:

Экспортер MatrixDB включен в установочный пакет MatrixDB и может быть активирован во время установки. Также необходимо установить и развернуть 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 file
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 в качестве примера. Для других операционных систем обратитесь к их соответствующим руководствам.
# Download the 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 a 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 the 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 the prometheus configuration file
# Add matrixdb and node exporter IPs and ports in scrape_configs
# (matrixdb_exporter default port: 9273, node_exporter default port: 9100)
# Note: The MatrixDB and MXGate dashboards use the matrixdb_cluster label for cluster filtering.
# Add relabel_configs to replace the 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 host IPs and ports in the targets array:
# Example:
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"]
# 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
Войдите с учетными данными по умолчанию: admin/admin. Измените пароль для обеспечения безопасности.
После развертывания экспортера, Prometheus и Grafana загрузите дашборд для визуализации данных мониторинга.
Каждый дашборд требует источника данных. Сначала добавьте источник данных:
Нажмите на значок Конфигурации (шестеренка) в Grafana и выберите Data Sources:

Нажмите Add data source:

Выберите Prometheus в категории баз данных:

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

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

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

При импорте выберите ранее созданный источник данных Prometheus.

Дашборд теперь появится в списке дашбордов.
Для подробной интерпретации метрик дашборда см. Руководство по параметрам мониторинга MatrixDB
Предыдущие шаги показывают, как добавить дашборд MatrixDB. Теперь добавьте дашборд node_exporter.
Дашборд node_exporter доступен на сайте Grafana: https://grafana.com/grafana/dashboards/15202-node-exporter. Импортируйте его по ID дашборда:

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

После включения сбора метрик кластера каждый хост запускает службу сбора. Логи хранятся в /var/log/matrixdb.
При перезапуске MatrixDB или перезагрузке сервера экспортер MatrixDB запускается автоматически.
Чтобы остановить экспортер MatrixDB, подключитесь к базе данных matrixmgr и выполните:
psql -d matrixmgr
matrixmgr=# SELECT mxmgr_remove_exporter();
Чтобы снова включить сбор данных, выполните:
matrixmgr=# SELECT mxmgr_deploy_exporter();
Примечание:
mxmgr_remove_exporterостанавливает только экспортер MatrixDB.
node_exporter, Grafana и Prometheus необходимо останавливать отдельно.
Обновление с устаревшей системы мониторинга на новую, основанную на Prometheus.
Сначала установите и разверните Prometheus и обновите Grafana до последней версии:
# Disable 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. Ниже приведены шаги, предполагающие такую настройку.
Как и экспортер MatrixDB, развертывание gate_exporter требует базы данных matrixmgr и расширений matrixts и matrixmgr. Предполагается, что они уже созданы.
Вызовите mxmgr_init_gate_exporter для инициализации и запуска:
matrixmgr=# SELECT mxmgr_init_gate_exporter();
После успешного выполнения в базе данных matrixmgr появится новая схема с именем gate_exporter. Эта схема содержит таблицы и представления для мониторинга и конфигурации gate. Не изменяйте их.
Эта команда запускает gate_exporter на хосте Master.
Чтобы остановить gate_exporter, выполните:
matrixmgr=# SELECT mxmgr_remove_gate_exporter();
Чтобы перезапустить, выполните:
matrixmgr=# SELECT mxmgr_deploy_gate_exporter();
Как и дашборд MatrixDB, файл дашборда MatrixGate находится по пути $GPHOME/share/doc/postgresql/extension/MxgateDashboard.json. Загрузите этот файл для импорта дашборда.
Для подробной интерпретации метрик см. Руководство по параметрам мониторинга MatrixGate