Логирование в Phoenix
Обзор
Apache Phoenix позволяет выполнять логирование выполненных запросов SELECT, сохраняя их в таблицу SYSTEM.LOG. Можно указывать уровень подробности и среднее количество запросов для логирования. Кроме того, можно добавить лог компонента Phoenix Query Server к логу сервиса HBase.
Настройка логирования запросов
Чтобы включить логирование запросов в Phoenix, перейдите в веб-интерфейс ADCM и выполните следующие действия:
-
Перейдите в раздел Clusters и выберите ваш кластер.
-
Откройте вкладку Services и выберите сервис HBase.
-
Активируйте переключатель Show advanced и раскройте секцию параметров Custom hbase-site.xml.
-
Нажмите Add property и в качестве названия параметра введите
phoenix.log.level. В качестве значения параметра введите одно из следующих значений:-
OFF— запросы логироваться не будут (значение по умолчанию); -
INFO— будут логироваться основные сведения о запросах; -
DEBUG— будут логироваться подробные сведения о запросах; -
TRACE— будут логироваться подробные сведения о запросах, включая bind-параметры.
-
-
Нажмите Add property и в качестве названия параметра введите
phoenix.log.sample.rate. В качестве значения параметра введите численное представление вероятности логирования запроса от0.0до1.0. Например, значение0.5означает, что примерно половина выполненных запросовSELECTбудет логироваться. Значение по умолчанию:1.0(все запросы). -
Сохраните конфигурацию, нажав Save → Create, и перезапустите сервис, выполнив действие Actions → Reconfig and graceful restart.
-
Если на текущий момент была загружена командная оболочка Phoenix, выйдите из неё и снова загрузите, чтобы изменения вступили в силу.
-
Если необходимо, с помощью команды
GRANTназначьте права на запись в таблицуSYSTEM.LOGпользователям, чьи запросы необходимо логировать.
|
ВАЖНО
Лог запросов смогут увидеть все имеющие доступ к таблице SYSTEM.LOG пользователи. Используйте логирование запросов с осторожностью.
|
Просмотр лога запросов
Для просмотра лога запросов нужно составить и выполнить соответствующий запрос к таблице SYSTEM.LOG. Пример:
SELECT * FROM SYSTEM.LOG;
Результат:
+---------------+--------------+--------------------------------------+-----------+------------------+--------------+----------------------------------------------------+ | START_TIME | TABLE_NAME | QUERY_ID | TENANT_ID | USER | CLIENT_IP | QUERY | +---------------+--------------+--------------------------------------+-----------+------------------+--------------+----------------------------------------------------+ | 1743693276315 | WEAPON_TYPES | efa9397d-56b4-4766-940f-b2dca9ed88ac | | rsa-key-20240513 | 10.92.40.104 | SELECT ammo_type FROM weapon_types GROUP BY ammo_t | | 1744124555613 | | a380c6f4-cffc-4fd8-b35c-1ef02aa52632 | | rsa-key-20240513 | 10.92.40.104 | SELECT ammo_type FROM weapon_types GROUP BY ammo_t | +---------------+--------------+--------------------------------------+-----------+------------------+--------------+----------------------------------------------------+
Таблица SYSTEM.LOG имеет гораздо больше столбцов, чем может поместиться в окне терминала какой бы то ни было ширины. Можно использовать команду !outputformat vertical перед выполнением запроса и/или сузить его условия.
Для очистки таблицы SYSTEM.LOG используйте выражение DELETE с условием WHERE. Например, чтобы удалить все записи из этой таблицы, выполните следующий запрос:
DELETE FROM SYSTEM.LOG WHERE START_TIME > 0;
Настройка логирования Phoenix Query Server
Для настройки логирования Phoenix Query Server перейдите в веб-интерфейс ADCM и выполните следующие действия:
-
Перейдите в раздел Clusters и выберите ваш кластер.
-
Откройте вкладку Services и выберите сервис HBase.
-
Активируйте переключатель Show advanced и выберите параметр Custom log4j.properties.
-
Добавьте следующие строки к содержимому параметра:
log4j.logger.org.apache.phoenix.queryserver=DEBUG log4j.logger.org.apache.phoenix.queryserver.server=DEBUG log4j.logger.org.apache.phoenix=DEBUG log4j.logger.org.eclipse.jetty.io.AbstractEndPoint=DEBUG -
Замените значение
log4j.thresholdнаDEBUGи нажмите Apply. -
Сохраните конфигурацию, нажав Save → Create и перезапустите сервис, выполнив действие Actions → Reconfig and graceful restart.