Логирование в 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.