Настройка логирования в PXF
В PXF поддерживаются два типа логирования: на уровне сервиса и на уровне клиента.
Логирование на уровне сервиса управляется PXF и предоставляет следующие уровни (от более критичных к менее критичным):
-
FATAL -
ERROR -
WARN -
INFO -
DEBUG -
TRACE
По умолчанию PXF логирует сообщения уровня INFO и выше.
Для некоторых сторонних библиотек записываются только сообщения уровня WARN и выше, что позволяет снизить избыточность вывода.
PXF перехватывает сообщения, выводимые в stdout и stderr, и записывает их в файл $PXF_LOGDIR/pxf-app.out. В этом файле могут содержаться сообщения о запуске сервиса, перехваченные до полной настройки логирования, а также отладочные сообщения. По умолчанию сообщения, полученные после запуска, сохраняются в файл $PXF_LOGDIR/pxf-service.log. При необходимости можно изменить каталог логирования, как описано в разделе Настройка каталога логирования.
Логирование на уровне клиента управляется конкретным клиентским приложением Greengage DB.
Подробнее о настройке логирования на уровне клиента для утилиты psql см. в разделе Настройка логирования на уровне клиента.
Настройка каталога логирования
По умолчанию PXF сохраняет сообщения в каталог $PXF_LOGDIR, где переменная окружения PXF_LOGDIR определена как $PXF_BASE/logs.
Чтобы изменить каталог логирования:
-
На мастер-хосте Greengage DB войдите под пользователем
gpadmin. -
Откройте файл $PXF_BASE/conf/pxf-env.sh в текстовом редакторе и установите путь к каталогу логирования в качестве значения переменной
PXF_LOGDIR. Указанный каталог логирования должен существовать на всех хостах кластера Greengage DB и быть доступен пользователюgpadmin.export PXF_LOGDIR="/new/log/dir" -
Синхронизируйте конфигурацию между хостами кластера Greengage DB, а затем перезапустите PXF на всех хостах:
$ pxf cluster sync $ pxf cluster restart
Настройка логирования на уровне сервиса
Для логирования на уровне сервиса в PXF используется Apache Log4j 2. Сообщения уровня сервиса сохраняются в файлах $PXF_LOGDIR/pxf-app.out и $PXF_LOGDIR/pxf-service.log.
По умолчанию PXF логирует сообщения с уровнем INFO и выше.
Вы можете изменить уровень логирования на одном из хостов кластера Greengage DB или на всех хостах кластера.
Логи уровней DEBUG и TRACE более детальны, но при этом и более объемны и влияют как на производительность, так и на место в хранилище.
После сбора необходимой информации рекомендуется понизить уровень логирования.
Настройка уровня логирования для конкретного хоста
-
На мастер-хосте Greengage DB войдите под пользователем
gpadmin. -
Выполните одно из следующих действий:
-
Установите уровень логирования с помощью команды
pxf restartв командной строке. Например, чтобы изменить уровень сINFOнаDEBUG, выполните следующую команду:$ PXF_LOG_LEVEL=debug pxf restart -
Установите уровень логирования в файле $PXF_BASE/conf/pxf-application.properties:
-
Откройте файл pxf-application.properties в текстовом редакторе и установите нужный уровень логирования в свойстве
pxf.log.level. Например, чтобы изменить уровень сINFOнаDEBUG, установитеDEBUGв качестве значения свойстваpxf.log.level:pxf.log.level=DEBUG -
Перезапустите PXF на хосте:
$ pxf restart
-
-
-
После выполнения любых операций с PXF проверьте сообщения в файле pxf-service.log.
Чтобы вернуть уровень логирования к INFO, выполните одно из следующих действий:
-
Если уровень был установлен с помощью командной строки, перезапустите PXF на хосте:
$ pxf restart -
Если уровень был установлен в файле pxf-application.properties, закомментируйте строку или установите для свойства
pxf.log.levelзначениеINFO, а затем перезапустите PXF на хосте:$ pxf restart
Настройка уровня логирования для кластера
Чтобы изменить уровень логирования сервиса PXF на всех хостах кластера Greengage DB:
-
На мастер-хосте Greengage DB войдите под пользователем
gpadmin. -
Откройте файл $PXF_BASE/conf/pxf-application.properties в текстовом редакторе и установите нужный уровень логирования в качестве значения свойства
pxf.log.level:pxf.log.level=DEBUG -
Синхронизируйте конфигурацию между хостами кластера Greengage DB, а затем перезапустите PXF на всех хостах:
$ pxf cluster sync $ pxf cluster restart -
После выполнения любых операций с PXF проверьте сообщения в файле pxf-service.log.
Чтобы вернуть уровень логирования к INFO, закомментируйте строку или установите для свойства pxf.log.level значение INFO, синхронизируйте конфигурацию между хостами кластера Greengage DB, а затем перезапустите PXF на всех хостах.
Настройка логирования на уровне клиента
Логирование сессии клиента на уровне базы данных может помочь при устранении неполадок во внутренних операциях сервиса PXF.
Чтобы включить логирование отладочных сообщений клиента Greengage DB (psql), установите параметр конфигурации сервера client_min_messages на нужный уровень логирования.
Доступны следующие уровни (от более критичных к менее критичным):
-
ERROR -
WARNING -
NOTICE -
LOG -
DEBUG1 -
DEBUG2 -
DEBUG3 -
DEBUG4 -
DEBUG5
Указанная конфигурация логирования записывает сообщения в stdout и применяется ко всем операциям, выполняемым в течение сессии, включая операции с внешними таблицами PXF.
Например:
SET client_min_messages=DEBUG2;
SELECT * FROM customers;
Вывод должен выглядеть подобным образом:
DEBUG1: Message type Q received by from libpq, len = 31 LOG: statement: SELECT * FROM customers; DEBUG2: [OPT]: Using default search strategy DEBUG1: GPORCA produced plan DEBUG1: Query plan size to dispatch: 1KB DEBUG2: add icid 8 cid 28 status 1 DEBUG1: Message type M received by from libpq, len = 739 (seg0 slice1 10.92.51.161:10500 pid=1567361) DEBUG1: Message type M received by from libpq, len = 739 (seg1 slice1 10.92.51.161:10501 pid=1567360) ... DEBUG1: TeardownUDPIFCInterconnect successful DEBUG1: Interconnect State: isSender 1 isReceiver 0 snd_queue_depth 2 recv_queue_depth 4 Gp_max_packet_size 8192 UNACK_QUEUE_RING_SLOTS_NUM 2000 TIMER_SPAN 5000 DEFAULT_RTT 20000 hasErrors 0, ic_instance_id 8 ic_id_last_teardown 8 snd_buffer_pool.count 0 snd_buffer_pool.maxCount 0 snd_sock_bufsize 2097152 recv_sock_bufsize 2097152 snd_pkt_count 1 retransmits 0 crc_errors 0 recv_pkt_count 0 recv_ack_num 1 recv_queue_size_avg -nan capacity_avg -nan freebuf_avg 2.000000 mismatch_pkt_num 0 disordered_pkt_num 0 duplicated_pkt_num 0 rtt/dev [17541/4303, 17541.000000/4303.000000, 17541/4303] cwnd 2.000000 status_query_msg_num 0 (seg3 slice1 10.92.51.96:10501 pid=1566326) DEBUG1: TeardownUDPIFCInterconnect successful (seg3 slice1 10.92.51.96:10501 pid=1566326) id | first_name | last_name | email | address ----+------------+-----------+------------------------+------------------- 1 | John | Doe | john.doe@example.com | 123 Elm Street 2 | Jane | Smith | jane.smith@example.com | 456 Oak Street 3 | Bob | Brown | bob.brown@example.com | 789 Pine Street 4 | Rob | Stuart | rob.stuart@example.com | 119 Willow Street (4 rows)
Уровни логирования сессии клиента DEBUG2 и выше негативно влияют на производительность.
После сбора необходимой информации рекомендуется понизить уровень логирования, например:
SET client_min_messages=NOTICE;