리눅스에서 작동되는 톰캣(Tomcat) 8.5 환경에서의 톰캣 로그에 관한 정보를 정리한다.
# 톰캣 로그 종류
(1) catalina.out
– 리눅스에서 톰캣을 실행할 때 console 출력을 기록한다. standard output, standard error에 기록된 모든 내용
– 설정 : catalina.sh, logging.properties
(2) catalina.YYYY-MM-DD.log
– 톰캣에서 생기는 로그만을 기록한다. 서버의 기동, 정지, 서비스의 개시, 정지 정보
– 설정 : logging.properties
(3) host-manager.YYYY-MM-DD.log
– Tomcat Host Manager Web app 로그 (가상호스트매니저)
– 설정 : logging.properties
(4) manager.YYYY-MM-DD.log
– Tomcat Manager Web App 로그 (웹콘솔)
– 설정 : logging.properties
(5) localhost.YYYY-MM-DD.log
– host( VirtualHost 같은) 한정한 로그
– 설정 : logging.properties
(6) localhost_access_log.YYYY-MM-DD.txt
– 톰캣에 액세스한 기록. 어느 host에서 언제, 어떤 방식으로 요청했는지 기록
– 설정 : server.xml
# catalina.out 로그 로테이션
위의 톰캣 로그 종류 중 catalina.out 는 다른 로그와는 달리 날짜별로 분리되지 않는다. 따라서 필요에 따라 이를 날짜별로 분리하는 과정이 필요할 수 있다.
(1) logrotate 데몬으로 로그 로테이션
– /etc/logrotate.d/ 에 관련 설정 파일을 생성한다. 예를 들면 /etc/logrotate.d/tomcat-8.5
- 위의 tomcat-8.5 파일에 다음의 내용처럼 상황에 맞게 설정한다.
vi /etc/logrotate.d/tomcat-8.5
/{PATH_TO_CATALINA_LOG_FILE}/catalina.out {
copytruncate
daily
rotate 30
compress
missingok
}
copytruncate : 기존 파일을 다른 파일로 복사하고 기존 파일의 내용은 지워버림
daily : 로그파일을 날짜별로 변환
rotate 30 : 로그 파일을 30개만 유지
compress : 지나간 로그파일들을 gzip으로 압축
missingok : 로그파일이 없더라도 오류를 발생시키지 않음
(2) shell과 crontab을 사용
– 가칭 rotatelog.sh 작성
#!/bin/sh
cp /{PATH_TO_TOMCAT_LOG_FILE}/catalina.out /{PATH_TO_TOMCAT_LOG_FILE}/catalina.out.$(date +%Y-%m-%d) 2>&1
cat /dev/null > /{PATH_TO_TOMCAT_LOG_FILE}/catalina.out
– 매일 밤 11시 59분에 실행하도록 crontab에 등록
59 23 * * * /{PATH_TO_SHELL}/rotatelog.sh
# 로그 파일 경로 변경
톰캣의 로그는 기본적으로 ${catalina.base}/logs 디렉토리에 저장된다. 이를 /fslog/myapp 디렉토리로 수정
(1) catalina.out
– ${catalina.base}/bin/catalina.sh 수정
…
if [ -z “$CATALINA_OUT” ] ; then
CATALINA_OUT=/fslog/myapp/catalina.out
fi
…
(2) catalina.YYYY-MM-DD.log, host-manager.YYYY-MM-DD.log, manager.YYYY-MM-DD.log, localhost.YYYY-MM-DD.log
– ${catalina.base}/conf/logging.properties 수정
…
1catalina.org.apache.juli.AsyncFileHandler.directory = /fslog/myapp
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
…2localhost.org.apache.juli.AsyncFileHandler.directory = /fslog/myapp
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
…3manager.org.apache.juli.AsyncFileHandler.directory = /fslog/myapp
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
…4host-manager.org.apache.juli.AsyncFileHandler.directory = /fslog/myapp
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
…
(3) localhost_access_log.YYYY-MM-DD.txt
– ${catalina.base}/conf/server.xml 수정
…
<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”/fsapp/myapp”
prefix=”localhost_access_log” suffix=”.txt”
pattern=”%h %l %u %t “%r” %s %b” />
…
안녕하세요~
항상 경제 지표 잘 보고 있습니다. 감사합니다^^
풋-콧?(cpce)? 이 지표도 올려주실수 없을까요?
아니면 어디서 찾아야하는지 알수 있을까요?
부탁드립니다~
CPCE가 무엇인지….
미국 풋콜 비율은 http://yellow.kr/financeView.jsp?s=$CPC 에 있습니다.