mxpacklogs

В этом документе описывается инструмент сбора и упаковки логов mxpacklogs.

1 Описание

  • Функции

    • Инструмент mxpacklogs поддерживает однократный сбор и упаковку логов со всех узлов распределённого кластера.
    • Собирает данные логов за период от текущего момента до предыдущих трёх дней включительно.
  • Ограничения

    • Логи со всех указанных хостов агрегируются на том хосте, где выполняется команда mxpacklogs. Эти логи временно сохраняются в виде пакета *.tar.gz в каталоге /tmp. Инструмент автоматически выбирает диск с наибольшим объёмом доступного пространства, к которому пользователь имеет права на чтение и запись, для хранения этих пакетов.
    • В крайних случаях, когда все узлы кластера недоступны, используйте опции --hosts и --base-data-dirs, чтобы получить информацию из логов.

2 Параметры командной строки

В следующей таблице перечислены поддерживаемые параметры командной строки:

Параметр Описание
--base-data-dirs Необязательный. По умолчанию инструмент считывает каталоги данных из метаданных базы данных. Указывайте этот параметр только при недоступности базы данных. Укажите путь до каталога mxdata_xxxx; остальную часть пути mxpacklogs определит автоматически. Пример: mxpacklogs --base-data-dirs /data/mxdata_20230324145536
--hosts По умолчанию --host означает сбор логов со всех хостов в кластере. Используйте --hosts, чтобы собирать логи только с конкретных хостов Segment, что снижает нагрузку на диск и время выполнения. Примеры: mxpacklogs --hosts sdw1,sdw2 или mxpacklogs --hosts sdw1 --hosts sdw2
-h / --dbhost Хост сервера базы данных. По умолчанию: "127.0.0.1"
-p / --dbport Порт сервера базы данных. По умолчанию: "5432"
--debug Включить вывод логов уровня отладки
--help Вывести справочную информацию
--host Хост, на котором работает служба supervisor/mxgate. По умолчанию: "127.0.0.1"
--mode Формат вывода: api или cli. По умолчанию: "api"
-W / --password Пароль пользователя базы данных
--path Путь установки MatrixDB на хосте supervisor. По умолчанию: "/opt/ymatrix/matrixdb5"
--port Порт сервера supervisor. По умолчанию: "4617"
-U / --username Имя пользователя базы данных. По умолчанию: "mxadmin"
--validate Режим проверки — тестовый запуск без выполнения операций
--verbose Включить подробный вывод логов
-v / --version Отобразить версию инструмента

3 Примеры

Команду mxpacklogs можно выполнять как на Master-узле, так и на не-Master узле. Подробности:

  • При запуске на Master рекомендуется использовать пользователя mxadmin. Если используется другой пользователь, необходимо соответствующим образом настроить доверие в pg_hba.
  • При удалённом запуске на не-Master узле должны быть выполнены следующие условия:
    • На сервере базы данных и на сервере выполнения должна быть установлена версия YMatrix 4.8.0 или выше.
    • Необходимо подключиться к Master, указав соответствующие параметры.

Исходя из вышесказанного, мы рекомендуем следующие три способа использования. В приведённых ниже примерах mdw — это Master, а sdw — не-Master хост:

  1. Выполните команду mxpacklogs напрямую. Это предполагает, что текущий хост является Master и подключение к базе данных осуществляется для сбора логов со всех Segment.

    [mxadmin@mdw ~]$ mxpacklogs
    [INFO]:-Подготовка временного каталога...
    [INFO]:-Запуск транспортного сервера...
    [INFO]:-Сбор логов с 4 хостов...
    [INFO]:-Создание архива...
    [INFO]:-Все логи упакованы в: /tmp/gather_logs_2143246856.tar.gz
    ``
  2. Run the following command on any host, specifying connection details to the Master, to collect logs from all Segments (same result as example 1).

    [<user>@<host> ~]$ mxpacklogs --dbhost 172.31.33.128 --dbport 5432 --username mxadmin --password 123
    [INFO]:-Подготовка временного каталога...
    [INFO]:-Запуск транспортного сервера...
    [INFO]:-Сбор логов с 4 хостов...
    [INFO]:-Создание архива...
    [INFO]:-Все логи упакованы в: /tmp/gather_logs_340918649.tar.gz
    ``

Note!
Examples 1 and 2 both require connecting to the Master. Therefore, the cluster's Master must be in a healthy state.

  1. Run the following command on any host to collect logs only from specified hosts (required) and optionally specified data directories.
    [<user>@sdw ~]$ mxpacklogs --hosts sdw1,sdw2 --base-data-dirs /mxdata_20221229075012
    ``

    Эта команда собирает логи с sdw1 и sdw2, при условии, что оба хоста имеют одинаковое значение base-data-dirs, установленное в /mxdata_20221229075012.

    [<user>@sdw ~]$ mxpacklogs --hosts sdw1,sdw2 --base-data-dirs /mxdata_20221229075012,/data1/mxdata_20221229075012
    ``

    Эта команда собирает логи с sdw1 и sdw2, но их значения base-data-dirs различаются: одно — /mxdata_20221229075012, другое — /data1/mxdata_20221229075012.

Примечание!
Дополнительную информацию о содержимом логов см. в разделе Логи.