#activemq
Вопрос:
Как я могу просматривать текущие журналы в Apache ActiveMQ, установленном на сервере RHEL?
Я включил функцию ведения журнала, выполнив следующие действия:
Я зашел в /web/servers/apache-activemq-5.15.8/conf
папку и отредактировал log4j.properties
файл, а затем откомментировал эту строку:
log4j.logger.org.apache.activemq=DEBUG
В версии ActiveMQ, установленной в Windows, я обычно запускаю ее из командной строки, чтобы показывать текущие журналы, такие как проблемы, связанные с подключением. Однако на RHEL я не уверен, как получить живые журналы. В Tomcat я мог бы запустить tail -f catalina.out
внутреннюю logs
папку. Есть ли эквивалент того же самого в ActiveMQ?
Ниже приведен мой log4j.properties
файл на случай необходимости.
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
#
# This file controls most of the logging in ActiveMQ which is mainly based around
# the commons logging API.
#
log4j.rootLogger=INFO, console, logfile
log4j.logger.org.apache.activemq.spring=WARN
log4j.logger.org.apache.activemq.web.handler=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.apache.xbean=WARN
log4j.logger.org.apache.camel=INFO
log4j.logger.org.eclipse.jetty=WARN
# When debugging or reporting problems to the ActiveMQ team,
# comment out the above lines and uncomment the next.
#log4j.rootLogger=DEBUG, logfile, console
# Or for more fine grained debug logging uncomment one of these
log4j.logger.org.apache.activemq=DEBUG
#log4j.logger.org.apache.camel=DEBUG
# Console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%5p | %m%n
log4j.appender.console.threshold=INFO
# File appender
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.file=${activemq.data}/activemq.log
log4j.appender.logfile.maxFileSize=1024KB
log4j.appender.logfile.maxBackupIndex=5
log4j.appender.logfile.append=true
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d | %-5p | %m | %c | %t%n
# use some of the following patterns to see MDC logging data
#
# %X{activemq.broker}
# %X{activemq.connector}
# %X{activemq.destination}
#
# e.g.
#
# log4j.appender.logfile.layout.ConversionPattern=%d | %-20.20X{activemq.connector} | %-5p | %m | %c | %t%n
log4j.throwableRenderer=org.apache.log4j.EnhancedThrowableRenderer
###########
# Audit log
###########
log4j.additivity.org.apache.activemq.audit=false
log4j.logger.org.apache.activemq.audit=INFO, audit
log4j.appender.audit=org.apache.log4j.RollingFileAppender
log4j.appender.audit.file=${activemq.data}/audit.log
log4j.appender.audit.maxFileSize=1024KB
log4j.appender.audit.maxBackupIndex=5
log4j.appender.audit.append=true
log4j.appender.audit.layout=org.apache.log4j.PatternLayout
log4j.appender.audit.layout.ConversionPattern=%-5p | %m | %t%n
Когда я это сделал tail -f activemq.log
, я увидел, что экран постоянно прокручивается вниз, и на нем отображаются некоторые команды, о которых я упоминал. Таким образом, консоль не похожа на стабильную, хотя с ActiveMQ сейчас ничего не происходит, с моей стороны. Постоянная прокрутка через некоторое время прекратилась. Вот некоторые из материалов, которые я получил:
2020-07-16 19:48:52,391 | DEBUG | WriteChecker: 10001ms elapsed since last write check. | org.apache.activemq.transport.AbstractInactivityMonitor | ActiveMQ InactivityMonitor WriteCheckTimer
2020-07-16 19:48:52,391 | DEBUG | Running WriteCheck[tcp://127.0.0.1:54567] | org.apache.activemq.transport.AbstractInactivityMonitor | ActiveMQ InactivityMonitor Worker
2020-07-16 19:48:54,648 | DEBUG | WriteChecker: 10000ms elapsed since last write check. | org.apache.activemq.transport.AbstractInactivityMonitor | ActiveMQ InactivityMonitor WriteCheckTimer
2020-07-16 19:48:54,649 | DEBUG | Running WriteCheck[tcp://127.0.0.1:58331] | org.apache.activemq.transport.AbstractInactivityMonitor | ActiveMQ InactivityMonitor Worker
2020-07-16 19:48:55,159 | DEBUG | queue://MessageProducerJMSV1 expiring messages .. | org.apache.activemq.broker.region.Queue | ActiveMQ Broker[Ubrite_ActiveMQ] Scheduler
2020-07-16 19:48:55,159 | DEBUG | queue://MessageProducerJMSV1, subscriptions=1, memory=0%, size=0, pending=0 toPageIn: 0, force:true, Inflight: 0, pagedInMessages.size 0, pagedInPendingDispatch.size 0, enqueueCount: 6, dequeueCount: 6, memUsage:0, maxPageSize:400 | org.apache.activemq.broker.region.Queue | ActiveMQ Broker[Ubrite_ActiveMQ] Scheduler
2020-07-16 19:48:55,160 | DEBUG | queue://MessageProducerJMSV1 expiring messages done. | org.apache.activemq.broker.region.Queue | ActiveMQ Broker[Ubrite_ActiveMQ] Scheduler
2020-07-16 19:48:55,160 | DEBUG | queue://MessageProducerJMSV1, subscriptions=1, memory=0%, size=0, pending=0 toPageIn: 0, force:false, Inflight: 0, pagedInMessages.size 0, pagedInPendingDispatch.size 0, enqueueCount: 6, dequeueCount: 6, memUsage:0, maxPageSize:200 | org.apache.activemq.broker.region.Queue | ActiveMQ BrokerService[Ubrite_ActiveMQ] Task-105
2020-07-16 19:48:56,267 | DEBUG | 30000ms elapsed since last read check. | org.apache.activemq.transport.AbstractInactivityMonitor | ActiveMQ InactivityMonitor ReadCheckTimer
2020-07-16 19:48:56,473 | DEBUG | WriteChecker: 10000ms elapsed since last write check. | org.apache.activemq.transport.AbstractInactivityMonitor | ActiveMQ InactivityMonitor WriteCheckTimer
2020-07-16 19:48:56,474 | DEBUG | Running WriteCheck[tcp://127.0.0.1:56897] | org.apache.activemq.transport.AbstractInactivityMonitor | ActiveMQ InactivityMonitor Worker
2020-07-16 19:48:56,634 | DEBUG | Checkpoint started. | org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal Checkpoint Worker
2020-07-16 19:48:56,634 | DEBUG | Checkpoint done. | org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal Checkpoint Worker
2020-07-16 19:48:57,104 | DEBUG | Job Scheduler Store Checkpoint started. | org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl | ActiveMQ Journal Checkpoint Worke
Вставка скриншота ниже:
Комментарии:
1. Разве вы не можете просто использовать
tail -f activemq.log
, где RHEL хранит файлы журналов ActiveMQ?2. @JustinBertram Когда я это сделал, я увидел, что экран постоянно прокручивается вниз. И он показывает некоторые команды, как я упоминал в отредактированном сообщении выше. Таким образом, консоль не похожа на стабильную, хотя с ActiveMQ сейчас ничего не происходит, с моей стороны. Пожалуйста, взгляните на обновленное сообщение с фрагментом, скопированным из живых журналов.
3. И постоянная прокрутка через некоторое время прекратилась. Поэтому я вставил скриншот в свой пост выше.
Ответ №1:
Использование tail -f activemq.log
-хороший способ просмотреть «живые» журналы из ActiveMQ.
Причина, по которой вы видите так много журналов, заключается в том, что вы раскомментировали эту строку:
log4j.logger.org.apache.activemq=DEBUG
Это позволило вести журнал отладки для большинства классов брокера. Ведение журнала отладки в основном предназначено для разработчиков или администраторов, которые хорошо знакомы с внутренними операциями брокера и пытаются диагностировать проблему. Вот почему ведение журнала так многословно.
Кроме того, имейте в виду, что у брокера есть потоки, постоянно работающие в фоновом режиме, выполняющие различные внутренние задачи. Эти потоки могут регистрировать отладочную информацию. Таким образом, даже если клиенты не взаимодействуют напрямую с брокером, вы все равно можете видеть журнал отладки. Это напрямую не связано со стабильностью брокера.
Если вы снова прокомментируете эту строку, объем ведения журнала значительно сократится и почти наверняка будет больше похож на то, что вы привыкли видеть.
Комментарии:
1. Спасибо. Я разработчик. Тем не менее, я бы попытался отключить его, а затем посмотреть, как он выглядит.
2. Если вы недостаточно хорошо знакомы с внутренними операциями брокера и пытаетесь диагностировать проблему, то ведение журнала отладки не очень полезно.