Как сопоставить журнал Apache mod_jk с журналом экземпляра Tomcat для устранения неполадок?

В моем журнале Apache mod_jk у меня есть записи в следующем формате:

[Wed Oct 26 10:59:43 2011] [3732:2460] [error] jk_ajp_common.c (1618): (myJbossServer) Tomcat is down or network problems. Part of the response has already been sent to the client

Руководство по устранению неполадок RedHat говорит ,

Обратите внимание, что с этими сообщениями [11159: 3086420192] часть сообщение служит идентификатором соединения / запроса в вопрос. Поэтому возвращение с места ошибки в журналах может помочь прояснить действия, связанные с подключением / запросом, ведущим к ошибке.

Как мне это сделать? Я не могу найти идентификатор в журналах JBoss. Я не вижу никаких идентификаторов в журналах JBoss, ошибок, да, номеров отслеживания, нет. Где мне искать, чтобы отследить этот идентификатор? Я на самом деле не ищу решения проблемы, а только как использовать идентификатор и проверять между Apache mod_jk и Jboss.

РЕДАКТИРОВАТЬ: Я спрашиваю, где я могу найти идентификатор [3732: 2460] в журналах myJBossServer .

0
задан 26 January 2017 в 18:45
1 ответ

На самом деле это перед вами, отказавший рабочий - это тот, который находится в скобках и называется myJbossServer.

Проверьте свои worker.properties для этого рабочего, и вы найдете его IP или имя хоста.

Примерно в то же время, надеюсь, вы получите подсказки от вашего JBoss / операционной системы (sar get очень удобен, если у вас возникли проблемы с процессором / памятью / и т. Д. BTW).

На самом деле вы заставили меня любопытствовать о числах в квадратных скобках . Я попытался выполнить поиск в документации, но не смог найти, что это было. Проверка исходного кода, хотя и принесла следующее:

int jk_log(jk_logger_t *l,
           const char *file, int line, const char *funcname, int level,
           const char *fmt, ...)
{

...

        if (line) { /* line==0 only used for request log item */
            /* Log [pid:threadid] for all levels except REQUEST.
             * This information helps to correlate lines from different logs.
             * Performance is no issue, because with production log levels
             * we only call it often, if we have a lot of errors
             */
            rc = snprintf(buf + used, usable_size - used,
                          "[%" JK_PID_T_FMT ":%" JK_PTHREAD_T_FMT "] ", getpid(), jk_gettid());

Глядя на документ RedHat, который вы вставили, эта идентификация PID: TOD может помочь сопоставить тот же самый mod_jk.log, который вы видите, а не перекрестную ссылку на mod_jk.log с JBoss. . Если вы хотите связать два журнала с перекрестными ссылками, вам следует найти другой способ, установив собственный заголовок в Apache / mod_jk и распечатав его в журнале JBoss, это первый способ, о котором я подумал прямо сейчас. Или, по крайней мере, вы можете проверить запросы во время сбоя.

1
ответ дан 4 December 2019 в 16:22

Теги

Похожие вопросы