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

MatrixDB Database:

Для панелей, которые могут быть трудны для понимания, добавлены описания. Наведите курсор мыши на значок в левом верхнем углу панели, чтобы просмотреть описание:

Компоненты мониторинга входят в состав установочного пакета MatrixDB. После развертывания MatrixDB настройка мониторинга выполняется в два этапа: включение сбора метрик и установка с настройкой Grafana.
Выполните следующие шаги для включения сбора метрик по MatrixDB и использованию системных ресурсов. Собранные данные будут сохраняться в новой базе данных с именем matrixmgr.
createdb matrixmgr;
psql -d matrixmgr
matrixmgr=# CREATE EXTENSION matrixts;
matrixmgr=# CREATE EXTENSION matrixmgr;
matrixmgr=# SELECT mxmgr_init_local();
После успешного выполнения в базе данных matrixmgr появится новая схема с именем local. Таблицы и представления в этой схеме содержат информацию о мониторинге и конфигурации кластера. Не изменяйте вручную определения или содержимое этих таблиц и представлений.
Подготовьте хост, имеющий доступ как к узлу Master MatrixDB, так и к Интернету. Это может быть Master, Standby Master или отдельный компьютер (Linux, macOS, Windows и т.д.).
Установите Grafana, рекомендуется версия 7.3 или выше. Официальная ссылка для скачивания: https://grafana.com/grafana/download.
Приведенные ниже команды используют CentOS 7 в качестве примера. Для других операционных систем обратитесь к соответствующей документации.
Примечание!
YMatrix поддерживает оффлайн-установку Grafana. Подробности см. в 6 Мониторинг — Часто задаваемые вопросы 1.
wget https://dl.grafana.com/oss/release/grafana-7.3.6-1.x86_64.rpm
sudo yum install grafana-7.3.6-1.x86_64.rpm
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
sudo systemctl enable grafana-server
Примечания:
yum в CentOS 7, часто устаревает (версия 6.x), поэтому sudo yum install grafana не рекомендуется. После установки откройте браузер и перейдите по следующему URL. Порт 3000 — это стандартный порт Grafana, который можно изменить. Войдите с помощью учетных данных по умолчанию (admin/admin). Для безопасности измените пароль после входа, нажав на значок пользователя в левом нижнем углу.
http://<IP_or_hostname_of_Grafana_host>:3000
После установки Grafana добавьте базу данных matrixmgr в MatrixDB как источник данных и импортируйте предопределенные панели мониторинга.
Для добавления источника данных:


Перед импортом предопределенных панелей скопируйте файлы dashboard.json и database.json на локальную машину. Процесс следующий: найдите файлы на сервере, скопируйте их, а затем загрузите локально. Выполните следующие шаги:
Сначала войдите на сервер и переключитесь на пользователя mxadmin. Найдите файлы dashboard.json и database.json по указанному ниже пути. Вы можете использовать команду cd, команду find или любой другой предпочитаемый метод. Ниже приведен пример с использованием find для database.json.
[mxadmin@mdw ~]$ cd /usr/local/matrixdb/share/doc/postgresql/extension
##or
[mxadmin@mdw ~]$ find /usr/local/matrixdb/share/doc/postgresql/extension -name database.json
Затем используйте команду scp, чтобы скопировать файлы на локальную машину. Возможны проблемы с правами доступа, поэтому рассмотрите возможность копирования файла в публичную директорию, например /tmp/, а затем передачи его из /tmp/ на локальную машину. Ниже приведен пример с использованием database.json.
Примечание!
При копировании из/tmp/убедитесь, что вы корректно переключаете пользователей, чтобы избежать проблем с правами доступа.
[mxadmin@mdw]$ scp mxadmin@<server_IP>:/usr/local/matrixdb/share/doc/postgresql/extension/"database.json" mxadmin@<server_IP>:/tmp/
~ scp waq@<server_IP>:/tmp/"database.json" /Users/akkepler/workplace/Grafana
Наконец, убедитесь, что файлы успешно скопированы, открыв локальную директорию или используя командные инструменты. После копирования:
dashboard.json замените все вхождения ${cluster} на local, а $host — на фактические имена хостов. Например, если ваш кластер состоит из mdw, sdw1 и sdw2, замените все вхождения $host на 'mdw','sdw1','sdw2'.database.json замените только ${cluster} на local.После внесения изменений импортируйте JSON-файлы через веб-интерфейс Grafana.

После включения сбора метрик кластера каждый хост запускает службу сбора. Соответствующие логи хранятся в каталоге /var/log/matrixdb.
Если MatrixDB перезапускается или хост перезагружается, а MatrixDB запускается повторно, служба сбора метрик запускается автоматически без ручного вмешательства.
Чтобы остановить службу сбора метрик, подключитесь к базе данных matrixmgr и выполните команду mxmgr_remove_all. Собранные данные остаются сохраненными после остановки:
psql -d matrixmgr
matrixmgr=# SELECT mxmgr_remove_all('local');
Если служба сбора была остановлена вручную или MatrixDB переустановлен, повторно включите сбор метрик, подключившись к базе данных matrixmgr и выполнив команду mxmgr_deploy:
matrixmgr=# SELECT mxmgr_deploy('local');