본문으로 건너뛰기

트러블 슈팅

OpenShift JBoss EAP이미지 LogManager오류

JBoss EAP + OPENMARU APM Image를 실행시 다음 오류메시지와 같이 JBoss EAP 6.4/7.0 실행시 LogManager 오류가 발생한다.

java.lang.RuntimeException: JBAS014670: Failed initializing module org.jboss.as.logging
at org.jboss.as.controller.extension.ParallelExtensionAddHandler$1.execute(ParallelExtensionAddHandler.java
:111)
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:611)
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:489)
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:290)
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:285)
at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1132)
at org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:299)
at org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:292)
at org.jboss.as.server.ServerService.boot(ServerService.java:346)
at org.jboss.as.server.ServerService.boot(ServerService.java:321)
at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:254)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: JBAS011592: The logging subsystem requires the log manager to be org.jboss.logmanager.LogManager. The subsystem has not be initialized and cannot be used. To use JBoss Log Manager you must add the system property "java.util.logging.manager" and set it to "org.jboss.logmanager.LogManager"
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at org.jboss.as.controller.extension.ParallelExtensionAddHandler$1.execute(ParallelExtensionAddHandler.java:103)
... 11 more

원인 및 해결방안

JBoss EAP를 사용하는 경우 패치마다 Logmanager의 위치가 변경되기 때문에 contrib/openShift-launch.sh 파일의 다음 부분을 현재 버전의 JBoss EAP Container Image에 맞게 변경한다.

$ cd jboss-eap64/contrib
$ vi OpenShift-launch.sh
… 중략 …
export JBOSS_LOGMANAGER_DIR="/opt/eap/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.14.CP/org/jboss/logmanager/main"
#export JBOSS_LOGMANAGER_DIR="/opt/eap/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.13.CP/org/jboss/logmanager/main"
#export JBOSS_LOGMANAGER_DIR="/opt/eap/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.12.CP/org/jboss/logmanager/main"
#export JBOSS_LOGMANAGER_DIR="/opt/eap/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.11.CP/org/jboss/logmanager/main"
export JBOSS_LOGMANAGER_JAR=`cd "$JBOSS_LOGMANAGER_DIR" && ls -1 *.jar'
… 중략…

OpenShift 3.6 버전에서 Docker CPU 사용량 정보가 모니터링 되지 않음

OPENMARU APM SYS Agent 로그에 아래와 같은 메시지가 출력됨

2017-11-13 09:46:06 [INFO ] CpuStat.java::parseCpuStat:90 - FileNotFound file: /sys/fs/cgroup/cpu/system.slice/docker-5561112f9d4762568135d5c91fe2ba610d1cb331cbe86d430c695b4af677100d.scope/cpuacct.stat
2017-11-13 09:46:06 [WARN ] MemStat.java::parseMemory:97 - FoundNotFound file: /sys/fs/cgroup/memory/system.slice/docker-bb16cdd2dd3a674d8eee018ade3fd517077ff718ab67d10fa87678a536c0507f.scope/memory.usage_in_bytes

원인 및 해결방안 OpenShift 3.5 버전까지는 Docker의 Cgroup Driver로 Cgroup을 사용했지만, OpenShift 3.6 버전에서는 systemd를 기본 Docker Cgroup Driver로 변경하여 Docker 모니터링을 위해 생성되는 Pseudo파일의 위치가 변경되어 오류가 발생함

  • Docker Plugin의 설정파일을 수정
$ cd khan-sys-agent/plugins/khan-plugin-docker.conf
$ vi config.properties
  • docker.cgroup.driver.type을 systemd 로 변경
# docker's cgroup driver type : cgroup or systemd

# OpenShift 3.6 use systemd type, below OpenShift 3.5 use cgroup type

docker.cgroup.driver.type=systemd

#docker.cgroup.driver.type=cgroup