VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
데모 요약 : 수작업으로 진행하는 가상화환경과 OCP 환경(Dockerfile)의
간단한 apache / tomcat 설치 및 실행하는 비교 데모 입니다.
데모 내용 : 물리서버 또는 가상화 환경에서 수작업으로 진행했던 배포 작업들이 컨테이너 환경에서 원클릭으로 배포하는 영상을 보여주는 데모입니다. 컨테이너 환경에서의
배포는 수작업으로 하는 배포 대비 상상이상의 시간을 아낄 수 있습니다.
오픈나루 데모 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%eb%8d%b0%eb%aa%a8-%ec%9c%a0%ed%8a%9c%eb%b8%8c/
오픈나루 비대면 워크샵 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%ec%9b%8c%ed%81%ac%ec%83%b5/
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
[스프링캠프 2015] Spring Integration을 통해 살펴본 메시징 세계 발표자료 입니다.
예제 소스 저장소는 프리젠테이션 안에 링크 걸어놨습니다.
감사합니다.
-------------------------------------------------------------------
우리는 늘 누군가와 소통(Communication)을 합니다. 소통을 통하여 누군가에게 일을 시키기도 하고 내가 일을 받기도 합니다. 애플리케이션도 마찬가지로 이기종간의 애플리케이션끼리 데이터로 소통을 하며 할 일을 서로 분산 처리할 상황이 발생하기도 합니다.
이런 분산 처리 이전에는 소통이 전제되어야 합니다. 애플리케이션 간 소통에 대한 고민은 선구자들에 의해 Enterprise Integration Patterns로 탄생되었으며 Spring에서도 그 패턴화의 추상화 일원으로 Spring Integration을 탄생시켰습니다.
이 강연에서는 Spring Integration을 통해 애플리케이션 간에 어떻게 쉽고 편하게(?) 소통을 할 수 있게 되었는지 살펴보며 예제와 사례를 통해 Spring Integration 입문에 도움을 주고자 합니다.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
Apache Kafak의 빅데이터 아키텍처에서 역할이 점차 커지고, 중요한 비중을 차지하게 되면서, 성능에 대한 고민도 늘어나고 있다.
다양한 프로젝트를 진행하면서 Apache Kafka를 모니터링 하기 위해 필요한 Metrics들을 이해하고, 이를 최적화 하기 위한 Configruation 설정을 정리해 보았다.
[Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안]
Apache Kafka 성능 모니터링에 필요한 metrics에 대해 이해하고, 4가지 관점(처리량, 지연, Durability, 가용성)에서 성능을 최적화 하는 방안을 정리함. Kafka를 구성하는 3개 모듈(Producer, Broker, Consumer)별로 성능 최적화를 위한 …
[Apache Kafka 모니터링을 위한 Metrics 이해]
Apache Kafka의 상태를 모니터링 하기 위해서는 4개(System(OS), Producer, Broker, Consumer)에서 발생하는 metrics들을 살펴봐야 한다.
이번 글에서는 JVM에서 제공하는 JMX metrics를 중심으로 producer/broker/consumer의 지표를 정리하였다.
모든 지표를 정리하진 않았고, 내 관점에서 유의미한 지표들을 중심으로 이해한 내용임
[Apache Kafka 성능 Configuration 최적화]
성능목표를 4개로 구분(Throughtput, Latency, Durability, Avalibility)하고, 각 목표에 따라 어떤 Kafka configuration의 조정을 어떻게 해야하는지 정리하였다.
튜닝한 파라미터를 적용한 후, 성능테스트를 수행하면서 추출된 Metrics를 모니터링하여 현재 업무에 최적화 되도록 최적화를 수행하는 것이 필요하다.
MySQL Administrator
Basic course
- MySQL 개요
- MySQL 설치 / 설정
- MySQL 아키텍처 - MySQL 스토리지 엔진
- MySQL 관리
- MySQL 백업 / 복구
- MySQL 모니터링
Advanced course
- MySQL Optimization
- MariaDB / Percona
- MySQL HA (High Availability)
- MySQL troubleshooting
네오클로바
http://neoclova.co.kr/
리눅스 pacemaker 기반의 High Availaiblity 구성방법에 대해 설명합니다. pacemaker를 사용하는 다른 리눅스 기반도 구성이 가능합니다.
Pacemaker 기반 Linux High Availability 입문용으로는 적합하지 않을 수 있습니다. Pacemaker 기반 Linux High Availability를 한 번도 설치 및 구성을 하지 않은 리눅스 관리자라면 설치 문서를 먼저 참고하십시오.
RHEL7 및 CentOS 7을 중심으로 레드햇 계열의 리눅스에 적합한 내용으로 작성되었습니다.
급증하는 온라인 사용자 증가, 부하테스트가 필요하지 않으신가요?
요즘 인터넷 뉴스에는 홈페이지 접속자 폭증으로 인한 서버 다운, xx은행 모바일 앱 접속 에러, 인터넷 뱅킹 장애 등 온라인 시장과 모바일 시장이 급격하게 성장함에 따라 이에 따른 장애 소식이 끊이지 않고 전해지고 있습니다.
그렇다면, 우리는 이런 장애들을 어떻게 대비할 수 있을까요?
웹∙앱 부하테스트 (성능 진단) 및 컨설팅 안은 웹∙앱 부하테스트(성능 진단 테스트) 진행 과정과 이를 기반으로 어떻게 컨설팅을 진행하고 있는지 소개하고, 나아가 관련 장애들을 대비할 수 있는 방법에 대해 설명합니다.
(공유드리는 파일은 slideshare에 업로드되었던 웹∙앱 부하테스트 성능 진단 및 컨설팅 안을 업데이트한 최신 본입니다.)
웹∙앱 부하테스트 (성능 진단) 및 컨설팅 자료는 아래와 같이 구성되어있습니다.
• 웹∙앱 성능을 진단하고 문제에 대한 원인 분석 및 개선방향을 제시합니다.
• 컨설팅 안에는 여러 실 성능 진단을 예시로 들고 이에 대한 원인 분석 및 개선방향을 도
출한 내용이 포함되어 있습니다.
1. 앱 성능 진단
• 앱 진단 절차
• 앱 진단 상세 내용
2. 웹 서버 성능 진단
• 웹 진단 절차
• 웹 진단 방향
3. 부하 테스트
• 현 테스트 시나리오 분석
• 테스트 시나리오 보완 방법
• 부하 테스트 진행 방안
• 부하 테스트 전략
• 클라우드 기반 테스트 방안
모바일 성능 모니터링, 웹 서버 성능 진단 및 부하테스트 컨설팅에 관심이 있으신 분은 아래 연락처로 연락해주시면, 전문 컨설턴트가 안내해드리겠습니다.
hhjung@onycom.com l 02-6395-7722
MySQL Administrator
Basic course
- MySQL 개요
- MySQL 설치 / 설정
- MySQL 아키텍처 - MySQL 스토리지 엔진
- MySQL 관리
- MySQL 백업 / 복구
- MySQL 모니터링
Advanced course
- MySQL Optimization
- MariaDB / Percona
- MySQL HA (High Availability)
- MySQL troubleshooting
네오클로바
http://neoclova.co.kr/
source : http://www.opennaru.com/apm/apache-tomcat-auto-provisioning/
OPENMARU APM은 Apache 웹서버와 Tomcat 에 대하여 자동으로 설치와 구성 그리고 튜닝하며 해당 구성에 대한 설치보고서를 자동생성하는 OPENMARU Installer 기능을 제공합니다.
이 기능은 OS 만 설치되어 있으면 수분 이내에 웹 서버와 WAS 서버를 설치하고 고난이도의 클러스터링 설정이나 리눅스 튜닝을 자동으로 수행하여 즉시 서비스할 수 있는 환경을 구성해주는 자동 프로비져닝 기능입니다.
기존의 엔지니어의 기술 지원에 의존적인 웹서버와 WAS 구성을 전문가 수준으로 자동으로 구성하여, 구축기간 뿐만아니라 비용 절감 효과를 제공합니다.
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
데모 요약 : 수작업으로 진행하는 가상화환경과 OCP 환경(Dockerfile)의
간단한 apache / tomcat 설치 및 실행하는 비교 데모 입니다.
데모 내용 : 물리서버 또는 가상화 환경에서 수작업으로 진행했던 배포 작업들이 컨테이너 환경에서 원클릭으로 배포하는 영상을 보여주는 데모입니다. 컨테이너 환경에서의
배포는 수작업으로 하는 배포 대비 상상이상의 시간을 아낄 수 있습니다.
오픈나루 데모 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%eb%8d%b0%eb%aa%a8-%ec%9c%a0%ed%8a%9c%eb%b8%8c/
오픈나루 비대면 워크샵 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%ec%9b%8c%ed%81%ac%ec%83%b5/
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
[스프링캠프 2015] Spring Integration을 통해 살펴본 메시징 세계 발표자료 입니다.
예제 소스 저장소는 프리젠테이션 안에 링크 걸어놨습니다.
감사합니다.
-------------------------------------------------------------------
우리는 늘 누군가와 소통(Communication)을 합니다. 소통을 통하여 누군가에게 일을 시키기도 하고 내가 일을 받기도 합니다. 애플리케이션도 마찬가지로 이기종간의 애플리케이션끼리 데이터로 소통을 하며 할 일을 서로 분산 처리할 상황이 발생하기도 합니다.
이런 분산 처리 이전에는 소통이 전제되어야 합니다. 애플리케이션 간 소통에 대한 고민은 선구자들에 의해 Enterprise Integration Patterns로 탄생되었으며 Spring에서도 그 패턴화의 추상화 일원으로 Spring Integration을 탄생시켰습니다.
이 강연에서는 Spring Integration을 통해 애플리케이션 간에 어떻게 쉽고 편하게(?) 소통을 할 수 있게 되었는지 살펴보며 예제와 사례를 통해 Spring Integration 입문에 도움을 주고자 합니다.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
Apache Kafak의 빅데이터 아키텍처에서 역할이 점차 커지고, 중요한 비중을 차지하게 되면서, 성능에 대한 고민도 늘어나고 있다.
다양한 프로젝트를 진행하면서 Apache Kafka를 모니터링 하기 위해 필요한 Metrics들을 이해하고, 이를 최적화 하기 위한 Configruation 설정을 정리해 보았다.
[Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안]
Apache Kafka 성능 모니터링에 필요한 metrics에 대해 이해하고, 4가지 관점(처리량, 지연, Durability, 가용성)에서 성능을 최적화 하는 방안을 정리함. Kafka를 구성하는 3개 모듈(Producer, Broker, Consumer)별로 성능 최적화를 위한 …
[Apache Kafka 모니터링을 위한 Metrics 이해]
Apache Kafka의 상태를 모니터링 하기 위해서는 4개(System(OS), Producer, Broker, Consumer)에서 발생하는 metrics들을 살펴봐야 한다.
이번 글에서는 JVM에서 제공하는 JMX metrics를 중심으로 producer/broker/consumer의 지표를 정리하였다.
모든 지표를 정리하진 않았고, 내 관점에서 유의미한 지표들을 중심으로 이해한 내용임
[Apache Kafka 성능 Configuration 최적화]
성능목표를 4개로 구분(Throughtput, Latency, Durability, Avalibility)하고, 각 목표에 따라 어떤 Kafka configuration의 조정을 어떻게 해야하는지 정리하였다.
튜닝한 파라미터를 적용한 후, 성능테스트를 수행하면서 추출된 Metrics를 모니터링하여 현재 업무에 최적화 되도록 최적화를 수행하는 것이 필요하다.
MySQL Administrator
Basic course
- MySQL 개요
- MySQL 설치 / 설정
- MySQL 아키텍처 - MySQL 스토리지 엔진
- MySQL 관리
- MySQL 백업 / 복구
- MySQL 모니터링
Advanced course
- MySQL Optimization
- MariaDB / Percona
- MySQL HA (High Availability)
- MySQL troubleshooting
네오클로바
http://neoclova.co.kr/
리눅스 pacemaker 기반의 High Availaiblity 구성방법에 대해 설명합니다. pacemaker를 사용하는 다른 리눅스 기반도 구성이 가능합니다.
Pacemaker 기반 Linux High Availability 입문용으로는 적합하지 않을 수 있습니다. Pacemaker 기반 Linux High Availability를 한 번도 설치 및 구성을 하지 않은 리눅스 관리자라면 설치 문서를 먼저 참고하십시오.
RHEL7 및 CentOS 7을 중심으로 레드햇 계열의 리눅스에 적합한 내용으로 작성되었습니다.
급증하는 온라인 사용자 증가, 부하테스트가 필요하지 않으신가요?
요즘 인터넷 뉴스에는 홈페이지 접속자 폭증으로 인한 서버 다운, xx은행 모바일 앱 접속 에러, 인터넷 뱅킹 장애 등 온라인 시장과 모바일 시장이 급격하게 성장함에 따라 이에 따른 장애 소식이 끊이지 않고 전해지고 있습니다.
그렇다면, 우리는 이런 장애들을 어떻게 대비할 수 있을까요?
웹∙앱 부하테스트 (성능 진단) 및 컨설팅 안은 웹∙앱 부하테스트(성능 진단 테스트) 진행 과정과 이를 기반으로 어떻게 컨설팅을 진행하고 있는지 소개하고, 나아가 관련 장애들을 대비할 수 있는 방법에 대해 설명합니다.
(공유드리는 파일은 slideshare에 업로드되었던 웹∙앱 부하테스트 성능 진단 및 컨설팅 안을 업데이트한 최신 본입니다.)
웹∙앱 부하테스트 (성능 진단) 및 컨설팅 자료는 아래와 같이 구성되어있습니다.
• 웹∙앱 성능을 진단하고 문제에 대한 원인 분석 및 개선방향을 제시합니다.
• 컨설팅 안에는 여러 실 성능 진단을 예시로 들고 이에 대한 원인 분석 및 개선방향을 도
출한 내용이 포함되어 있습니다.
1. 앱 성능 진단
• 앱 진단 절차
• 앱 진단 상세 내용
2. 웹 서버 성능 진단
• 웹 진단 절차
• 웹 진단 방향
3. 부하 테스트
• 현 테스트 시나리오 분석
• 테스트 시나리오 보완 방법
• 부하 테스트 진행 방안
• 부하 테스트 전략
• 클라우드 기반 테스트 방안
모바일 성능 모니터링, 웹 서버 성능 진단 및 부하테스트 컨설팅에 관심이 있으신 분은 아래 연락처로 연락해주시면, 전문 컨설턴트가 안내해드리겠습니다.
hhjung@onycom.com l 02-6395-7722
MySQL Administrator
Basic course
- MySQL 개요
- MySQL 설치 / 설정
- MySQL 아키텍처 - MySQL 스토리지 엔진
- MySQL 관리
- MySQL 백업 / 복구
- MySQL 모니터링
Advanced course
- MySQL Optimization
- MariaDB / Percona
- MySQL HA (High Availability)
- MySQL troubleshooting
네오클로바
http://neoclova.co.kr/
source : http://www.opennaru.com/apm/apache-tomcat-auto-provisioning/
OPENMARU APM은 Apache 웹서버와 Tomcat 에 대하여 자동으로 설치와 구성 그리고 튜닝하며 해당 구성에 대한 설치보고서를 자동생성하는 OPENMARU Installer 기능을 제공합니다.
이 기능은 OS 만 설치되어 있으면 수분 이내에 웹 서버와 WAS 서버를 설치하고 고난이도의 클러스터링 설정이나 리눅스 튜닝을 자동으로 수행하여 즉시 서비스할 수 있는 환경을 구성해주는 자동 프로비져닝 기능입니다.
기존의 엔지니어의 기술 지원에 의존적인 웹서버와 WAS 구성을 전문가 수준으로 자동으로 구성하여, 구축기간 뿐만아니라 비용 절감 효과를 제공합니다.
Kafka monitoring using Prometheus and Grafanawonyong hwang
Kafka Cluster를 모니터링 하기 위한 Prometheus 설정을 가이드하고, 이를 시각화하기 위해 Grafana를 연동하는 방법을 설명합니다.
Guide Prometheus settings for monitoring the Kafka Cluster and explain how to work with Grafana to visualize them.
source : http://www.opennaru.com/apm/apache-tomcat-auto-provisioning/
OPENMARU APM은 Apache 웹서버와 Tomcat 에 대하여 자동으로 설치와 구성 그리고 튜닝하며 해당 구성에 대한 설치보고서를 자동생성하는 OPENMARU Installer 기능을 제공합니다.
이 기능은 OS 만 설치되어 있으면 수분 이내에 웹 서버와 WAS 서버를 설치하고 고난이도의 클러스터링 설정이나 리눅스 튜닝을 자동으로 수행하여 즉시 서비스할 수 있는 환경을 구성해주는 자동 프로비져닝 기능입니다.
기존의 엔지니어의 기술 지원에 의존적인 웹서버와 WAS 구성을 전문가 수준으로 자동으로 구성하여, 구축기간 뿐만아니라 비용 절감 효과를 제공합니다.
source : http://www.opennaru.com/jboss/jboss-core-services-collection/
JBCS ( JBoss Core Services Collection )는 엔터프라이즈 애플리케이션에서 필요한 일반적이고 기본적인 빌딩블록을 제공합니다.
여기에는 Red Hat SSO (Single SIgn On) 과 웹서버 그리고 관리와 모니터링을 위한 JON 등이 포함됩니다.
다음과 같은 컴포넌트가 포함됩니다.
JON : 레드햇 미들웨어에 대한 모니터링과 관리 서버
Apache HTTP 서버 : 웹서버
Red Hat SSO : 오픈소스인 Keycloak 프로젝트를 기반으로 SSO를 구현하며, Open ID Connection, SAML 그리고 OAth2와 같은 개방형 표준 인증 방법을 지원.
Apache Commons Jsvc : 유닉스 및 유닉스 기반 플랫폼 (Linux)에서 자바 애플리케이션을 데몬화할 수 있도록하는 유틸리티
Microsoft의 “IIS”와 Oracle의 “Oracle iPlanet Web Server” 웹 서버에 대한 커넥터
“Core Services Collection”의 사용권은 JBoss EAP 서브스크립션에 무료로 포함되며, 해당 제품들에 대한 온라인 지원, 전화 지원, 업데이트, 패치 및 보안 문제 해결 등의 기술지원이 포함됩니다
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Docker Seoul Meetup #2에서 발표한 자료입니다.
CoreOS에서 confd와 sidekick service를 이용한 서비스 배포에 대한 내용입니다.
http://www.youtube.com/watch?v=5ixJCM6pAcg
영상과 함께 보시면 더 좋습니다 :)
기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
2018년도 Amazon AWS re:Invent Machine Learning 부분에 대한 요약을 오픈소스컨설팅 서경빈(AWS SA)님이 해주셨습니다.
사내 발표 때 아주 쉽게 설명해주셔서 좋았는데, 해당 내용은 Tech Blog에서도 확인이 가능합니다.
https://tech.osci.kr/2018/12/06/50693623/
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
Docker를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드 문서이며, Docker 및 Gitlab에 대한 개요 및 사용법에 대해서는 다루지 않습니다. Docker image를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web application을 이용하여 소스 변경에 따른 commit이 발생 했을 때 Gitlab CI/CD 기능을 통해 application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
Cloud 기반으로 U2C(Unix to Cloud),U2L(Unix to Linux) 마이그레이션에 대한 가이드 라인과 사이징 관련 고려 사항에 대해 설명한 자료입니다.
많은 전환 프로젝트에서 추출된 경험치가 들어가 있으며, 전환별 난이도 및 고려사항이 들어가 있습니다.
장소 : 미국 보스턴 Hynes Convention Center
일시 : 2017년 5월 6일 ~ 11일 (미국 동부 시각)
참가 인원 : 5000명 이상
참가 업체 : 1014개
참가국 : 63개국
세션 수 : 750여 개(이전 Summit 대비 약 250여 개 증가)
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong Choi
OpenStack Ceph & Neutron에 대한 설명을 담고 있습니다.
1. OpenStack
2. How to create instance
3. Ceph
- Ceph
- OpenStack with Ceph
4. Neutron
- Neutron
- How neutron works
5. OpenStack HA- controller- l3 agent
6. OpenStack multi-region
아틀라시안 JIRA를 사용할 때 가장 핵심적으로 해야 할 내용들만 추려서 가이드 문서를 작성하였습니다.
그러한 작업들로는 프로젝트, 스킴(Scheme), 이메일 세팅, 권한 관리, 백업/복구 등이 있습니다.
관리자가 이런 일을 잘 할 수 있도록 핵심적인 내용만으로 구성한 문서를 공유합니다.
레드햇 엔터프라이즈 리눅스 7 기반에 대한 운영자 가이드 기초편을 공유합니다.
부트로더 관리, 패키지, 네트워크, 스토리지 및 크래쉬 덤프 발생에 대한 관리까지 기초 운영 지식에 대한 부분을 본 문서를 통해 얻으실 수 있습니다.
오픈소스컨설팅의 문경윤차장께서 공유해주신 내용입니다.
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
TTA에 KVM 기반 프로비저닝 기술에 대한 데모 세션을 포함하는 세미나 관련 자료입니다. 클라우드환경으로 가고자 해서 Paas를 어떤 플랫폼위에 올린다면 그리고 가상화 환경이나 클라우드 환경으로 올린다면 어떤 환경으로 올릴것인가를 고민하여야 합니다.
그리고 이 hypervisor중에 cloud 환경에서 가장 주목받는 kvm을 기반으로 하는 두가지 가상화 클라우드 솔루션인 rhev와 openstack을 잠시 살펴볼 것입니다.
그리고 이러한 가상화 클라우드 환경에서 자동화 하는 솔류션을 어떻게 고려해야 하는가를 살펴보고, 그런 솔류션중에 하나인 아테나 피콕에 대해 살펴보겠습니다.
그리고 오픈스택환경하에서 구축해서 사용했던 사용기와 이를 자동화하기위해 개발자들이 사용했던 간단한 ansible provisioning 모습을 시연합니다.
2015년 하반기에는 총 7건의 공유자료를 slideshare에 게시하였습니다.
오픈스택, pacemaker, Docker 등과 같은 클라우드 인프라 구축 기술 정보를 만나 보세요.
- 2015. 07 ~ 2016. 03사이의 크리티컬 이슈 해결방안
- 유용한 팁 정보 등의 내용
1. Confidential
[오픈소스컨설팅] Tomcat 운영 메뉴얼_v1.0.docx
Last printed on 11/9/2018 12:12:00 PM
Apache Tomcat 운영 메뉴얼
Focus Area: Apache Tomcat 메뉴얼
Product/Process: Apache Tomcat 8.5.x
Prepared By:
Document Owner(s) Project/Organization Role
Jun-Young Son Senior Engineer
Project Status Report Version Control
Version Date Author Change Description
1.0 2018/11/08 Jun-Young Son Document created
[Version #] [mm/dd/yy] [Change owner]
• [Change 1]
• [Change 2]
• [Change n]
2. Installation Guide
Confidential Page 2 11/9/2018
TABLE OF CONTENTS
1. 본 문서의 목적............................................................................................................................. 5
1.1 Apache Tomcat 정보.................................................................................................. 5
1.2 Apache Tomcat Versions.......................................................................................... 5
2 APACHE TOMCAT 동작원리.................................................................................................. 7
2.1 Tomcat Architecture ................................................................................................. 7
2.2 Tomcat Connectors (3-Main Connectors).............................................................. 8
3 TOMCAT 구성......................................................................................................................... 8
3.1 Tomcat 표준 구성도.................................................................................................... 8
인스턴스 구성 위치 ................................................................................................ 9
3.2 WAS 구성 : Tomcat 8.5.x.......................................................................................... 9
Web Application Server ...................................................................................... 9
3.3 Tomcat Structure..................................................................................................... 10
Tomcat Component............................................................................................ 10
3.4 Tomcat 엔진 설치 ..................................................................................................... 12
Tomcat 다운로드................................................................................................. 12
Tomcat 설치........................................................................................................ 12
Tomcat 엔진 디렉토리 구조................................................................................ 13
3.5 Tomcat 설치 및 설정 .................................................................................................. 14
Tomcat Instance 디렉터리 구조 ........................................................................... 14
Tomcat 인스턴스 Concept ................................................................................... 14
Tomcat 환경변수.................................................................................................. 15
인스턴스 서비스 포트 변경................................................................................... 15
3. Installation Guide
Confidential Page 3 11/9/2018
4 TOMCAT 인스턴스 구성......................................................................................................... 16
4.1 Tomcat 인스턴스 생성 .............................................................................................. 16
Tomcat Template & 설정파일 복사 .................................................................. 16
Tomcat 서버 설정................................................................................................ 16
각 인스턴스 서버 설정 파일................................................................................. 17
실행 스크립트의 구성........................................................................................... 17
관리 스크립트의 구성........................................................................................... 23
5 TOMCAT DATASOURCE 설정 ............................................................................................ 25
5.1 JDBC Connection Pool 기본 설정............................................................................ 25
5.2 DataSource 설정....................................................................................................... 29
6 TOMCAT DEPLOY 설정 ....................................................................................................... 30
6.1 Application Deploy................................................................................................... 30
7 TOMCAT 운영 인프라 환경 설정........................................................................................... 31
7.1 OS Kernel Parameter 설정...................................................................................... 31
/etc/sysctl.conf................................................................................................... 31
/etc/security/limits.conf .................................................................................... 32
공통 JVM 옵션 설정............................................................................................. 32
8 TOMCAT 모니터링................................................................................................................ 33
8.1 모니터링 가이드......................................................................................................... 33
모니터링 항목....................................................................................................... 33
System Resource 체크....................................................................................... 35
Process Resource 체크...................................................................................... 36
Server Status...................................................................................................... 37
5. Installation Guide
Confidential Page 5 11/9/2018
1. 본 문서의 목적
본 문서의 목적은 Tomcat 운영에 필요한 내용을 담은 가이드 문서입니다. 본 문서에는
Tomcat 설치 현황 및 설치 및 환경 구성에 대한 내용이 포함되어 있으며, 기타 모니터링을
위한 정보 등을 모두 포함하고 있습니다.
1.1 Apache Tomcat 정보
1996 년 6 월 제 4 회 JavaOne (당시 Sun Microsystems 주최)가 개발하고 있던,
JSWDK(JavaServer Web Development Kit)을 Apache Software Foundation 에
기증하여 시작 되었습니다.
Tomcat 은 Apache Software Foundation(ASF) 하위의 Apache Tomcat 프로젝트에서
개발 되고 있는 Sevlet/JSP Container 가 포함된 웹 애플리케이션 서버(WAS)입니다.
1.2 Apache Tomcat Versions
⚫ Servlet 버전과 Tomcat Spec
Servlet
Spec
JSP
Spec
EL
Spec
WebSocket
Spec
JASPIC
Spec
Tomcat
Version
Latest
Version
Support
Java
Version
4.0 2.3 3.0 1.1 1.1 9.0.x 9.0.12
8 and
later
3.1 2.3 3.0 1.1 1.1 8.5.x 8.5.34
7 and
later
3.1 2.3 3.0 1.1 N/A 8.0.x 8.0.53
7 and
later
3.0 2.2 2.2 1.1 N/A 7.0.x 7.0.91
6 and
later
2.5 2.1 2.1 N/A N/A 6.0.x 6.0.53
5 and
later
2.4 2.0 N/A N/A N/A 5.5.x 5.5.36
1.4 and
later
2.3 1.2 N/A N/A N/A 4.1.x 4.1.40
1.3 and
later
2.2 1.1 N/A N/A N/A 3.3.x 3.3.2
1.1 and
later
자세한 정보는 URL 을 참조하십시오 http://tomcat.apache.org/whichversion.html
6. Installation Guide
Confidential Page 6 11/9/2018
⚫ Apache Tomcat Version 구분
- Alpha: Spec 및 버그에서 요구되는 많은 양의 테스트되지 않았거나 누락된
기능이 포함될 수 있으며, 안정적으로 실행되지 않을 수 있습니다.
- Beta: 테스트되지 않은 기능 및 여러가지 minor 버그가 포함될 수 있습니다.
- Stable: minor 버그를 해소하였지만, 상대적으로 추가적인 버그가 포함될 수
있습니다. Stable 릴리즈는 운영환경 용도로 사용이 가능하며 안정적으로 운영이
가능합니다.
⚫ Apache Tomcat 9.x
9.x 는 최신 버전이며 Tomcat 8.x 기반으로 하여 Servlet 4.0, JSP 2.3, EL 3.0,
WebSocket 1.1 및 JASPIC 1.1 사양을 구현합니다.
- HTTP/2 에 대한 지원을 추가 (Java 9 또는 Tomcat 네이티브 라이브러리 필요)
- JSSE 커넥터(NIO 및 NIO2)와 함께 TLS 지원을 위한 OpenSSL 사용에 대한
지원을 추가
- SNI(TLS 가상 호스팅)에 대한 지원을 추가
⚫ Apache Tomcat 8.x
8.x 는 Tomcat 7.0.x 를 기반으로 하여 Servlet 3.1, JSP 2.3, EL 3.0 및 WebSocket
1.1 사양을 구현합니다.
- HTTP/2 에 대한 지원을 추가 (Tomcat 네이티브 라이브러리 필요)
- JSSE 커넥터(NIO 및 NIO2)와 함께 TLS 지원을 위한 OpenSSL 사용에 대한
지원을 추가
- SNI(TLS 가상 호스팅)에 대한 지원을 추가
⚫ Apache Tomcat 7.x
7.x 는 Tomcat 6.0.x 의 향상된 기능을 기반으로 하며 Servlet 3.0, JSP2.2, EL2.2 및
WebSocket 1.1 사양을 구현합니다.
- 웹 응용 프로그램 메모리 누수 감지 및 예방
- Manager 및 Host Manager 응용 프로그램의 향상된 보안
- 일반적인 CSRF 보호
7. Installation Guide
Confidential Page 7 11/9/2018
- 웹 애플리케이션에 직접 외부 컨텐츠를 포함할 수 있도록 지원
- 리팩토링(커넥터, 라이프 사이클) 및 많은 내부 코드 정리
2 Apache Tomcat 동작원리
2.1 Tomcat Architecture
⚫ Server
✓ 서버의 개념으로 Tomcat 컨테이너 자체를 나타냄
⚫ Service
✓ 서버 내에 존재하는 컴포넌트에 대한 중재자 역할을 수행하며, 엔진에 하나 혹은
그 이상의 커넥터 사용
⚫ Engine
✓ 특정 서비스를 위한 요청 처리 파이프라인을 나타냄
✓ 하나의 서비스는 여러 개의 커넥터를 가질 수 있으며, 엔진은 이러한
커넥터들로부터 모든 요청을 수신하고 처리함
⚫ Host
✓ 특정 네트워크의 이름을 Tomcat 서버에 할당
8. Installation Guide
Confidential Page 8 11/9/2018
✓ 하나의 엔진의 여러 개의 호스트를 가질 수 있으며, 호스트의 요소는 도메인등과
같이 네트워크 별칭을 지원
⚫ Connector
✓ 클라이언트와의 프로토콜 통신을 처리하며, HTTP 및 AJP 커넥터를 가짐
⚫ Context
✓ 웹 애플리케이션을 나타내며, 하나의 Host 는 여러 개의 Context 를 가질 수 있음
✓
참조 URL: http://tomcat.apache.org/tomcat-8.5-doc/config/server.html
2.2 Tomcat Connectors (3-Main Connectors)
⚫ HTTP
✓ Application 서버로의 direct request 를 받음
✓ Default: enabled, 8080 port
⚫ HTTPS
✓ HTTPS 를 직접 입력으로 받음, SSL keystore 필요
✓ Default: siabled, 8443 port
⚫ AJP
✓ Apache Web Server 를 통해 mod_jk 를 통해 입력 받는 커넥터
✓ Default: enabled, 8009 port
3 Tomcat 구성
3.1 Tomcat 표준 구성도
⚫ 멀티 인스턴스 구성 시 CATALINA_HOME 은 최초 설치 상태에서 변경하지 않고
CATALINA_BASE 를 파일 복사, 스크립트를 추가하여 여러 대의 인스턴스 생성 시
아래의 그림과 같은 구성으로 생성합니다.
9. Installation Guide
Confidential Page 9 11/9/2018
인스턴스 구성 위치
Tomcat 의 디렉토리 위치는 인스턴스 의 “/opt/was/servers/{인스턴스명}/” 디렉토리에
설치 되어 있습니다.
실제 인스턴스 구성 파일 : server.xml
장비명 설정파일명 SERVER_HOME configuration 경로
# centos10 Server.xml
/opt/was/servers/{인스
턴스명}/”
/opt/was/servers/{
인스턴스명}/”conf
3.2 WAS 구성 : Tomcat 8.5.x
Web Application Server
서버 (WAS01)
Hostname # centos10
서버 IP 192.168.15.100
응용관리계정 wasuser ( / opt/was )
엔진관리계정 wasuser ( / opt/was/ apache-tomcat-8.5.23 )
domain home 위치 /opt/was/servers
기동 /opt/was/servers/{인스턴스명}/bin/start.sh
10. Installation Guide
Confidential Page 10 11/9/2018
정지 /opt/was/servers/{인스턴스명}/bin/stop.sh
비상정지 /opt/was/servers/{인스턴스명}/bin/kill.sh
Log 위치 /opt/was/servers/{인스턴스명}/logs
Config File server.xml
JVM Heap Size
Xms512m Xmx512m
MetaspaceSize=256m MaxMetaspaceSize=256m
3.3 Tomcat Structure
Tomcat Component
⚫ Server: Server = Catalina Servlet Container = Tomcat Instance
JVM 안에 Singletom 으로 존재, Server 내에 포함되는 Service 들 Life Cycle 관리 담당
⚫ Context: Web Application 을 나타내는 구성요소, Spec 상 ServletContext 와 매핑.
WAS/EAR 파일이나, Exploded 된 디렉토리
11. Installation Guide
Confidential Page 11 11/9/2018
⚫ Listeners: Tomcat Lifecycle 이벤트 발생시 action 을 수행하는 컴포넌트. Tomcat 의
Lifecycle 을 커스터마이징하고 싶은 경우 활용 가능
⚫ Manager: HTTP 세션을 생성 관리해주는 Session manager
⚫ Logger: JULI(Java Logging Implimentation)라는 자체 구현체를 제공
⚫ Valve: 컨테이너(Engine, Host, Context)와 관련된 각각의 request 처리 pipeline(valve
chain 객체)안에 들어가 있는 컴포넌트
12. Installation Guide
Confidential Page 12 11/9/2018
3.4 Tomcat 엔진 설치
- Tomcat 엔진은 https://tomcat.apache.org 에서 설치하고자 하는 Tomcat 엔진
버전을 다운로드 받아 설치파일의 파일을 압축을 푸는 것으로 설치를 수행합니다.
- Tomcat Engine 8.x 설치 시 아래의 URL 을 통해 zip, tar.gz 파일을 다운로드 받을 수
있습니다.
• 다운로드 URL: https://tomcat.apache.org/download-80.cgi
Tomcat 다운로드
다운로드 URL 을 통해서 설치 파일을 다운로드 합니다.
Tomcat 설치
13. Installation Guide
Confidential Page 13 11/9/2018
⚫ 설치 방법은 앞서 설명했던 것과 같이 서버에 업로드를 수행한 후 압축을 풀면 설치가
됩니다.
일반적으로 엔진과 애플리케이션 위치로 구성합니다.
[wasuser@centos10 /installFile/was]$ unzip apache-tomcat-8.5.23.zip
….생략
[wasuser@centos10 /installFile/was]$ls -al
drwxr-xr-x 9 wasuser wasuser 149 Sep 28 2017 apache-tomcat-8.5.23
NOTE. 엔진 설치는 파일 업로드 시간 + 압축 해제 시간이 전부입니다.
Tomcat 엔진 디렉토리 구조
Tomcat 의 디렉토리 구조는 다음과 같습니다.
인스턴스 생성을 위한 기본 template 정보는 별도의 servers 폴더에 위치하고 있습니다.
14. Installation Guide
Confidential Page 14 11/9/2018
3.5 Tomcat 설치 및 설정
⚫ Tomcat 의 각 서비스별 인스턴스 생성을 위하여 ㈜오픈소스컨설팅에서 제공하는
template 파일을 복사하여 생성을 진행합니다.
Tomcat Instance 디렉터리 구조
각 도메인 디렉토리 하위 정보는 다음과 같이 구성됩니다.
디렉터리 설명
bin Tomcat 를 구동하는 명령 스크립트 디렉토리
conf Tomcat Web 서비스를 위한 설정 파일 디렉토리
lib Tomcat Engine 이 사용하는 외부 라이브러리 (.jar) 디렉토리
log Tomcat 로그 파일 디렉토리 (catalina.out)
temp Tomcat Engine 에서 사용하는 임시 파일 디렉토리
webapps Tomcat 에서 웹 애플리케이션 Deploy 디렉토리
work jsp 파일이 서블릿으로 컴파일(.class)된 디렉토리
Tomcat 인스턴스 Concept
- Tomcat Engine 은 CATALINA_HOME 을 기준으로 “lib”, “bin” 디렉토리만
사용합니다.
- 실제 서비스를 담당하는 인스턴스들은 “conf”, “logs”, “temp”, “webapps”, “work”
디렉토리를 사용합니다.
- 이와 같은 디렉토리를 분리합으로써 “멀티 인스턴스” 환경을 구성합니다.
15. Installation Guide
Confidential Page 15 11/9/2018
$CATALINA_HOME/bin/startup.sh 실행하면 실제로 catalina.sh 이 실행됩니다.
catalina.sh 또는 Catalina.bat 은 CATALINA_HOME 환경 변수를 통해서 “Tomcat
Engine” 디렉토리를 통해서 기동합니다.
Tomcat 환경변수
Tomcat 내의 실제 인스턴스의 속성을 정의 한 환경 변수입니다
.
• CATALINA_HOME: Tomcat Engine 홈 디렉토리
• CATALINA_BASE: 멀티 인스턴스의 홈 디렉토리
• SERVER_NAME: 멀티 인스턴스의 서버명
• PORT_OFFSET: 멀티 인스턴스에서 사용하는 계산되는 port 범위
• COMP_USER: 인스턴스를 조작하기 위한 사용자 계정
• LOG_BASE: 멀티 인스턴스의 로그 디렉토리 지정
인스턴스 서비스 포트 변경
각 인스턴스 별로 server.xml 을 수정합니다.
16. Installation Guide
Confidential Page 16 11/9/2018
변경 이유는 동일한 포트를 사용하면서 서버를 기동하려 할 때, Port 충돌로 인해 서버
기동이 되지 않습니다. 인스턴스에서 지정한 port offset(env.sh) 과 default port 를 더하기
연산을 하여 인스턴스 내에 offset 연산으로 인해 포트 충돌에 대한 문제점을 해결할 수
있습니다.
- Shutdown Port
<Server port="${shutdown.port}" shutdown="SHUTDOWN">
- http port
<Connector port="${http.port}" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="${ssl.port}" />
- ajp port
<Connector port="${ajp.port}" protocol="AJP/1.3" redirectPort="${ssl.port}" />
4 Tomcat 인스턴스 구성
4.1 Tomcat 인스턴스 생성
Tomcat 인스턴스 설치는 Naming Rule 에 따라 /opt/was/{업무도메인}/{업무명} 라는
디렉토리를 사용하도록 합니다.
Tomcat Template & 설정파일 복사
㈜오픈소스컨설팅에서 제공하는 스크립트는 CATALINA_BASE/bin 디렉토리에
저장하고 $CATALINA_HOME/conf 파일을 기본 설정 파일을 복사하여 설치할
인스턴스에 복사합니다.
cp –fR /opt/was/apache-tomcat-8.5.23/conf /opt/was/server/{인스턴스명}/conf
Tomcat 서버 설정
노드명 서비스명 인스턴스명 Port offset Shutdown http ajp
17. Installation Guide
Confidential Page 17 11/9/2018
# centos
10
test test-svr-11 100 8105 8180 8109
각 인스턴스 서버 설정 파일
노드명 configuration 경로 configuration 파일명
# centos
10
/opt/was/servers/{인스턴스명}/conf server.xml
실행 스크립트의 구성
Setenv (환경설정, java 옵션 적용)
서비스에 해당하는 모든 설정이 env.sh 를 통해서 이루어지며 JVM 옵션 등은
env.sh 파일만 조작하시면 됩니다.(JVM 옵션, JNDI 포트 포함)
env.sh
#!/bin/bash
#************************ Warning **********************************
#* *
#* This configuration is property of OPEN SOURCE CONSULTING, INC. *
#* Don't distribute this to other project. *
#* *
#* Contact jchoi@osci.kr(http://www.osci.kr) *
#*******************************************************************
# This is tomcat env.sh for iosp by Open Source Consulting, Inc
export DATE=`date +%Y%m%d_%H%M%S`
#####################################
## Set Tomcat base env #####
#####################################
export JAVA_HOME=/usr/java/jdk1.8.0_152
export SERVER_NAME=tomcat8_11
export CATALINA_HOME=/opt/was/apache-tomcat-8.5.23
21. Installation Guide
Confidential Page 21 11/9/2018
echo "================================================"
start (인스턴스 기동)
start.sh 는 Java Processer 를 구동 시킬 때 사용하며 로그파일의 백업
옵션등을 설정할 수 있습니다.
start.sh
#!/bin/bash
. ./env.sh
DATE=`date +%Y%m%d%H%M%S`
# Process Check ---------------------------------------
PID=`ps -ef | grep java | grep "=$SERVER_NAME" | awk '{print $2}'`
echo $PID
if [ e$PID != "e" ]
then
echo "Tomcat ($SERVER_NAME) is already RUNNING..."
exit;
fi
# WAS User Check----------------------------------------
UNAME=`id -u -n`
if [ e$UNAME != "e$COMP_USER" ]
then
echo "$COMP_USER USER to start this SERVER! - $SERVER_NAME..."
exit;
fi
# Make LOG Directory------------------------------------
if [ ! -d "${LOG_DIR}" ];
then
22. Installation Guide
Confidential Page 22 11/9/2018
mkdir -p ${LOG_DIR}
fi
if [ ! -d "${GC_LOG_DIR}" ];
then
mkdir -p ${GC_LOG_DIR}
fi
if [ ! -d "${HEAP_DUMP_DIR}" ];
then
mkdir -p ${HEAP_DUMP_DIR}
fi
# Make Temp Directory------------------------------------
if [ ! -d $CATALINA_BASE/temp ]
then
echo "temp directory is not exist. create temp directory."
mkdir -p $CATALINA_BASE/temp
fi
# -------------------------------------------------------
nohup $CATALINA_HOME/bin/catalina.sh run >> ${LOG_DIR}/$SERVER_NAME.out
2>&1 &
# ------------------------------------------------------
if [ e$1 = "enotail" ]
then
echo "Starting... $SERVER_NAME"
exit;
fi
# -----------------------------------------------------
sleep 1
23. Installation Guide
Confidential Page 23 11/9/2018
$CATALINA_BASE/bin/tail.sh
shutdown (요청 처리 후 종료)
stop.sh 파일은 JAVA Processer 를 종료할 때 사용합니다.
stop.sh
#!/bin/sh
. ./env.sh
$CATALINA_HOME/bin/shutdown.sh
kill (강제 종료)
kill.sh 파일은 kill -9 명령으로 즉시 종료할 때 사용합니다.
Linux OS 의 경우는 다음의 script 를 이용합니다.
kill.sh
#!/bin/bash
. ./env.sh
ps -ef | grep java | grep "server=$SERVER_NAME" | awk {'print "kill -9 " $2'}
| sh -x
관리 스크립트의 구성
Thread dump (장애 시 dump 파일 생성)
dump.sh 파일은 인스턴스가 느려지거나, JVM 의 현재 상황을 보려고 Thread Dump 를
얻으려고 할 때 사용하는 스크립트입니다.
24. Installation Guide
Confidential Page 24 11/9/2018
dump.sh
#!/bin/sh
. ./env.sh
for count in 1 2 3 4 5; do
echo "Thread Dump : $count"
for i in `ps -ef | grep java | grep "SERVER=$SERVER_NAME " | awk '{print
$2}'`;do
echo "+kill -3 $i"
kill -3 $i
echo "sleep 1 sec"
sleep 1
done
echo "done"
sleep 3
done
Process status (tomcat process 확인)
status.sh 스크립트는 프로세스가 동작 중인지 체크하기 위한 스크립트입니다.
status.sh
#!/bin/sh
. ./env.sh
ps -ef | grep java | grep "SERVER=$SERVER_NAME "
25. Installation Guide
Confidential Page 25 11/9/2018
tail.sh
tail.sh 는 nohup 로그를 보기 위한 스크립트입니다.
tail.sh
#!/bin/sh
. ./env.sh
tail -f $DOMAIN_BASE/$SERVER_NAME/log/server.log
5 Tomcat DataSource 설정
⚫ Tomcat 은 Database Connection Pool 로 Commons DBCP 와 Tomcat JDBC Pool 의
2 가지 Pool 을 제공
Common DBCP: org.apache.tomcat.dbcp. dbcp.BasicDataSourceFactory (default)
- org.apache.common -> org.apache.tomcat. 패키지 변경
Tomcat JDBC: org.apache.tomcat.jdbc.pool.DataSourceFactory
⚫ DBCP 는 Apache Commons 프로젝트가 제공하는, Database Connection Pool 로
오픈 소스 Database Connection Pool 을 가장 많이 알려져 있고, 많이 사용하고
있습니다.
⚫ Tomcat JDBC 는 Apoache Tomcat 프로젝트가 독립적으로 개발한 Database
Connection Pool 입니다.
5.1 JDBC Connection Pool 기본 설정
공통 DB 접속 설정
구분 설명 비고
username
DB 연결을 위해 JDBC 드라이버에 전달되는 사용자
이름
password
DB 연결을 위해 JDBC 드라이버에 전달되는 사용자
패스워드
26. Installation Guide
Confidential Page 26 11/9/2018
url DB 연결을 위해 JDBC 드라이버에 전달되는 URL
driverclassname
JDBC 드라이버의 FQCN (Fully Qualified Class
Name)
connectionProperties
DB 연결을 위해 JDBC 드라이버에 전달되는 연결
Properties
항목 설명 기본값
defaultAutoCommit Connection 의 AutoCommit true
defaultReadOnly Connection 기본 ReadOnly 상태 dirver
defaultTransactionsolation
Connections 의 기본 Transactionsolation 상태
-READ_COMMITTED
-READ_UNCOMMITTED
-REPEATABLE_READ
-SERIALIZABLE
defaultCatalog Connection 의 defaultCatalog dirver
cacheState
Connection 이 사용될 때 이후 모든 쓰기에서
readOnly 와 autoCommit 설정을 캐시
true
defaultQueryTimeout
Null 이 아닌 경우 Connection 에서 사용할 쿼리
시간을 제한
null
enableAutoCommitOnReturn
Connection 이 반환될 때
Connection.setAutoCommit(true)인지 체크되고
해당 값으로 설정
true
rollbackOnReturn Connection 반환될 때 rollback 수행 true
⚫ Common JDBC Connection 설정
항목 설명 기본값
Initialsize Pool 이 시작될 때 생성되는 초기 Connection 수 0
maxTotal Pool 에서 동시에 할당할 수 있는 최대 연결 수 8
Maxidle Pool 에서 최대 idle Connection 수 8
Minidle Pool 에서 최소 idle Connection 수 0
maxWaitMillis Connection 을 얻기 위해 대기 시간 무제한
⚫ Tomcat JDBC Connection 설정
27. Installation Guide
Confidential Page 27 11/9/2018
항목 설명 기본값
Initialsize Pool 이 시작될 때 생성되는 초기 Connection 수 10
maxActive Pool 에서 동시에 할당할 수 있는 최대 연결 수 100
Maxidle Pool 에서 최대 idle Connection 수 100
Minidle Pool 에서 최소 idle Connection 수 10
maxWaitMillis Connection 을 얻기 위해 대기 시간 무제한
⚫ JDBC Connection Validation 설정
항목 설명 기본값
validationQuery Connection 유효성 확인을 위한 SQL Query
testOnBorrow
Pool 에서 Connection 을 전달하기 전에 유효성을
검증. 검증에 실패했을 경우, 해당 연결을 삭제하고,
새롭게 Pool 에서 Connection 시도
testOnReturn
Pool 에 Connection 을 반환하기 전에 Connection
유효성을 검증
testWileidle
Idle 상태의 Connection 에 대한 유효성을 검증
검증에 실패할 경우 해당 Connection 을 파기함
이기능은 Evictor 를 이용하기 때문에 Evictor 를
활성화 해야됨(timeBetweenEvictionRunsMillis 설정
참조)
initSQL Connection 을 만들 때 실행되는 SQL Query
validationClassName
Validation Class 명을 지정.
이 속성을 지정 시 vaildationQuery 에 의한 검증 대신,
Validator Class 에 의한 연결의 검증이 이루어짐
(org.apache.tomcat.jdbc.pool.Validator 인터페이스
구현 필요)
validationInterval Vaildation 의 실행 간격 지정 30 초
logValidationErrors Validation 중 오류 발생시, 로그 출력할지에 대한 설정 false
⚫ PoolCleaner 설정(Evictor)
항목 설명 기본값
28. Installation Guide
Confidential Page 28 11/9/2018
timeBetweenEvictionRunsMilles Idle 상태의 Connection 을 Check 하는 간격 5 초
minEvictableIdleTimeMillis Idle Connection 의 생존 기간 60 초
⚫ Connection Leak 검출 설정 (removeAbandoned)
항목 설명 기본값
removeAbandoned Connection 누수 감지 설정 사용 여부 false
removeAbandonedTimeout Connection 누수로 판단하기까지의 시간 60 초
logAbandoned
Connection 누수를 감지했을 때,
Connection 을 Close 하지 않은
애플리케이션의 Stuck Thread 를 로그로
출력 여부의 설정
False
suspectTimeout
Conection 누수의 의심에 대한 판단
할때까지의 시간
suspectTimeout 시간을 초과한
Connection 에 대해 경고 로그 및 JMX 에
통지를 수행
0
AbandonWhenPercentageFull
누수된 Connection 을 파기할 비율을 설정
0~100 사이로 설정하며, 이 설정을 초과한
누수 Connection 을 파기
RemoveAbandonedTimeout 가 초과한
Connection 은 모두 파기
0
⚫ DataSource 설정 샘플
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/OracleDS"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="false"
testOnReturn="false"
validationQuery="SELECT 1 FROM DUAL"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="10"
maxIdle="5"
maxWait="10000"
29. Installation Guide
Confidential Page 29 11/9/2018
initialSize="5"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="false"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.Connection
State;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="scott"
password="jan01jan"
driverClassName="oracle.jdbc.OracleDriver"
poolPreparedStatements="true"
url="jdbc:oracle:thin:@192.168.10.100
</Context>
5.2 DataSource 설정
⚫ Global Resource Level
- DataSource Pool Global Level 공유
✓ Global Resource(server.xml) + Resource Link(application-context.xml)
✓ Server: ${CATALINA_HOME}/conf/server.xml
<Server port="${port.shutdown}"
shutdown="ARGO_INSTANCE_SHUTDOWN">
<GlobalNamingResources>
<Resource name="jdbc/argo" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://10.0.1.88:3306/oom"
username="root“ password="uCO5FkZ3NfgDo/LWB0l+0A=="
……
/>
</GlobalNamingResources>
</Server>
⚫ Context Level
- DataSource Pool 해당 Context 별 생성됨
- Global Context (context.xml)
✓ 모든 Application 에서 사용 가능
✓ Context(1) : ${CATALINA_HOME}/conf/context.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink global="jdbc/argo" name="jdbc/argo"
type="javax.sql.DataSource"/>
30. Installation Guide
Confidential Page 30 11/9/2018
</Context>
- Application Context (application-context.xml)
✓ 해당 Application 에서만 사용 가능
✓ Context(2) :
${CATALINA_HOME}/conf/Catalina/localhost/${CONTEXT_NAME}.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Context docBase="/sorc001/argo/application/sample-simpleweb" path="/"
reloadable="false">
<ResourceLink global="jdbc/argo" name="jdbc/argo"
type="javax.sql.DataSource"/>
</Context>
6 Tomcat Deploy 설정
6.1 Application Deploy
Tomcat 인스턴스는 $CATALINA_BASE/webapps 또는 다른 경로일 경우 server.xml 에
context 를 지정하여 deploy 설정이 가능합니다.
⚫ Deploy Type
✓ Archive File Type
✓ Exploded Structure
⚫ Web Archive
✓ Catalina.base/webapps 디렉토리에 .war 파일을 복사하여 디플로이
⚫ Exploded
✓ Catalina.base/webapps 디렉토리에 exploded 형태의 디렉토리 구조를 사용
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false">
<Context path="" docBase="/opt/was/apps/test.war" reloadable="false"/>
</Host>
항목 설명 기본값
path 컨텍스트 경로에 대한 설정
docBase 애플리케이션 document 경로 설정
reloadable 클래스 변경시 마다 자동 reload
31. Installation Guide
Confidential Page 31 11/9/2018
7 Tomcat 운영 인프라 환경 설정
7.1 OS Kernel Parameter 설정
/etc/sysctl.conf
리눅스 OS 시스템에서 기본 default 설정에서 몇가지 설정을 변경 하게 되면 빠른 장애 감지
효과 등이 있으므로 튜닝 요소가 됩니다.
해당 설정은 다음의 /etc/sysctl.conf 파일에 추가하여 설정을 할 수 있습니다.
항목 설명 기본값 권장값
net.ipv4.neigh.default.unres_qlen Increase TCP 6 100
net.ipv4.tcp_keepalive_time Drop Keep-alive time 7200 30
net.ipv4.tcp_fin_timeout
Drop it so lack of FIN times
out quicker
60 10
net.core.netdev_max_backlog
Increase number of
incoming connections
backlog
1000 2500
net.ipv4.tcp_retries1
How many times to retry
killing an alive TCP
connection
3 2
net.ipv4.tcp_retries2
How many times to retry
killing an alive TCP
connection
15 3
net.ipv4.ip_local_port_ran Increase Local port range
32768
60999
1024
65000
net.core.rmem_max Max TCP receive Buffer 25165824 16777216
net.core.rmem_default Default TCP receive Buffer 8388608 16777216
net.core.wmem_max Max TCP Send Buffer 25165824 16777216
net.core.wmem_default Default TCP send Buffer 212992 16777216
32. Installation Guide
Confidential Page 32 11/9/2018
net.ipv4.tcp_window_scali
ng
Enable really big(>65kb)
TCP window
scaling
0 1
net.ipv4.tcp_timestamps Turn off timestamp 1 0
net.ipv4.tcp_sack Turn off tcpsack 1 0
net.ipv4.tcp_orphan_retrie
s
유저파일 핸들에 할당되지
않은 연결에
몇 번 재시도할지
7 0
vm.swappiness Swap 사용량결정 10 1
/etc/security/limits.conf
Open files 및 native stack 관련해서 limits 설정을 변경합니다. ( ulimit -a)
asmanager soft nofile 8192
asmanager hard nofile 65535
asmanager soft nproc 8192
asmanager hard nproc 65535
공통 JVM 옵션 설정
항목 설명 값
client/server
-client : JVM hotspot 의 client 모드로 사용,
client 모드는 Application 시작 시간과 메모리 사용량을
최소로 수행 -
server
-server : 컴파일 등 최적화를 수행하여 최적의 성능으로
수행
Xms 초기 메모리 크기
1024
M
Xmx 최대 메모리 크기 1024
M
-XX:+PrintGCDetails
Garbage Collection 시 조금 더 상세한 항목의 로그 출력을
위한 설정
-XX:+ UseG1GC - G1GC를 사용하기 위한 설정
33. Installation Guide
Confidential Page 33 11/9/2018
-
XX:+HeapDumpOnOu
tOfMemoryError
JVM 에서 OutOfMemory 에러가 발생할 경우 Heap
Memory Dump 를 생성할지 여부를 결정
-XX:HeapDumpPath Heap Memory 생성시 생성 위치
-Xloggc
GC 로그를 별도의 파일로 저장하기 위한 옵션
Memory 사용 추이를 확인할 수 있음.
-
Dcom.sun.managemen
t.jmxremote
-
Dcom.sun.managemen
t.jmxremote.port=1501
1
-
Dcom.sun.managemen
t.jmxremote.authentica
te=false
-
Dcom.sun.manageme
nt.jmxremote.ssl=false
JMX : Java Management Extention 활성화 내용으로
서버의 모니터링을 위한 설정
8 Tomcat 모니터링
8.1 모니터링 가이드
모니터링 항목
대항목 중항목 세부항목 설명 모니터링 결과
OS
System
Resource Usage
CPU 사용량 CPU 전체 사용량 양호
Memory 사용량 Memory 전체 사용량 양호
운영환경
서버 상태
Process
Resource Usage
Process CPU 과부하
사용
프로세스 CPU 사용률 양호
Disk Usage 설치 디스크의 사용량 양호
Server Status Server Status Server Life Cycle 양호
실행 상태
Execute Status Thread status
실행 쓰레드 및
idle thread status
양호
Garbage
Collection
Full GC Duration Full GC 처리 상태 양호
34. Installation Guide
Confidential Page 34 11/9/2018
Heap Memory
Heap Memory Init 힙메모리 초기값 양호
Heap Memory Max 힙메모리 최대값 설정 양호
Perm Area Max Size MaxPermSize 의 설정 양호
JDBC
커넥션풀
Configuration
JDBC url
jdbc connection meta
data URL
양호
JDBC driver name jdbc driver class name 양호
Monitorming Connections 사용중인 커넥션 개수 양호
로그 분석 ServerLog
Critical Message 부팅 Critical 에러 양호
Too many open files 파일 오픈 개수 초과 양호
OutOfMemoryError 힙메모리 부족 양호
35. Installation Guide
Confidential Page 35 11/9/2018
System Resource 체크
cpu 사용량
사용서비스 되어지는 CPU 의 사용량 체크를 위하여 다음의 명령어를 통해 모니터링을
진행합니다.
vmstat 1 100
항목 설명
us : user cpu usage
sy : system cpu usage
id : cpu idle usage
정상 여부 확인 : id 60% 이상일 경우 양호, id 30% 미만인 경우 위험
$ vmstat 1 100
procs -----------memory---------- ---swap-- -----io---- --
system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 853424 69016 4648 29128 0 0 13 8 8 4 0 0 99 0 0
0 0 853424 69008 4648 29128 0 0 0 0 113 242 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 75 211 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 106 254 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 73 208 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 118 263 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 78 203 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 95 244 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 89 219 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 85 237 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 93 221 0 0 100 0 0
0 0 853424 69008 4648 29128 0 0 0 0 109 244 1 0 100 0 0
36. Installation Guide
Confidential Page 36 11/9/2018
Memory 사용량
사용서비스 되어지는 Memory 사용량 체크를 위하여 다음의 명령어를 통해 모니터링을
진행합니다.
free -m
항목 설명
total : 전체 메모리 용량
used : 메모리 사용량
free : 여유 메모리 공간
shared : 공유메모리 사용량
buffers : 버퍼 메모리 공간
cached : 캐쉬메모리 사용량
정상 여부 확인 : free 최소 여유공간이 전체 메모리 대비 최소 10% 이상일 경우
$ free -m
total used free shared buffers cached
Mem: 1877 1810 66 0 0 30
-/+ buffers/cache: 1779 98
Swap: 4031 831 3200
Process Resource 체크
프로세스 과부하 cpu 여부 확인
서비스 되어지는 process 의 CPU 사용량이 과부하 인지 여부를 체크합니다.
top
항목 설명
top 명령을 통해서 해당 프로세스의 현재 CPU 정보를 확인합니다.
정상 여부 확인 : 프로세스당 CPU 사용이 많은지 여부를 확인합니다.
$ top
top - 03:14:41 up 14 days, 12:59, 4 users, load average: 0.19, 0.13, 0.09
37. Installation Guide
Confidential Page 37 11/9/2018
Tasks: 336 total, 1 running, 335 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.7%us, 3.5%sy, 0.0%ni, 92.1%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16271536k total, 15962368k used, 309168k free, 697304k buffers
Swap: 16777208k total, 529588k used, 16247620k free, 6697584k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27150 wasuser 20 0 3016276 102456 14680 S 0.3 2.6 1:55.56 /usr/java/jdk1.8.0_152/bin/java -
Djava.util.logging.config.file=/opt/+
32607 wasuser 20 0 2411612 349528 18928 S 0.3 9.0 64:52.97 /usr/java/jdk1.7.0_80/bin/java -
D[Standalone] -XX:+UseCompressedOops +
1 root 20 0 191108 3044 1952 S 0.0 0.1 9:22.88 /usr/lib/systemd/systemd --switched-root -
-system --deserialize 21
Disk Usage
서비스 되어지는 Disk 사용량을 파악하여 여유 공간을 확인합니다.
df -h
정상 여부 확인 : 서비스 사용 영역 및 root 파일 시스템의 사용율이 80% 인 경우
위험으로 간주합니다.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rhevmtest-lv_root
26G 23G 1.9G 93% /
tmpfs 939M 72K 939M 1% /dev/shm
/dev/vda1 485M 38M 422M 9% /boot
Server Status
Service Process 정상 여부 확인
현재 서버 상태에 대해서 모니터링을 합니다.
ps –ef | grep ${processName}
38. Installation Guide
Confidential Page 38 11/9/2018
ex) ps –ef | grep java | grep SERVER_NAME
항목 설명
ps 명령을 통해서 해당 프로세스의 현재 동작 여부를 확인합니다.
정상 여부 확인 : 프로세스 목록에 해당 내용이 있어야만 합니다.
$ ps -ef|grep java|grep SERVER_NAME
wasuser 27150 1 65 21:26 pts/2 00:00:09 /usr/java/jdk1.8.0_152/bin/java -
Djava.util.logging.config.file=/opt/was/servers/tomcat8_11/conf/logging.properties -
java.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Dserver=tomcat8_11 -
Dhttp.port=8180 -Dajp.port=8109 -Dssl.port=8543 -Dshutdown.port=8105 -
Djava.library.path=/opt/was/apache-tomcat-8.5.23/lib/ -verbose:gc -
Xloggc:/opt/was/servers/tomcat8_11/logs/gclog/gc.log -XX:+PrintGCDetails -
XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -
XX:HeapDumpPath=/opt/was/servers/tomcat8_11/logs/heaplog/java_pid.hprof -
Djava.net.preferIPv4Stack=true -Dsun.rmi.dgc.client.gcInterval=3600000 -
Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -
Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -
Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-classpath /opt/was/apache-tomcat-8.5.23/bin/bootstrap.jar:/opt/was/apache-tomcat-
8.5.23/bin/tomcat-juli.jar -Dcatalina.base=/opt/was/servers/tomcat8_11 -
Dcatalina.home=/opt/was/apache-tomcat-8.5.23 -
Djava.io.tmpdir=/opt/was/servers/tomcat8_11/temp org.apache.catalina.startup.Bootstrap start
Port Listen 정상 여부 확인
netstat –an | grep ${servicePort}
ex) netstat –an | grep 8180
항목 설명
netstat 명령을 통해서 해당 프로세스의 현재 Network 동작 여부를 확인합니다.
정상 여부 확인 : Port 목록에 해당 서비스에서 사용되는 포트가 LISTEN 항목으로 되어
있어야 합니다.
39. Installation Guide
Confidential Page 39 11/9/2018
$ netstat -an | grep 8180
tcp 0 0 0.0.0.0:8180 0.0.0.0:* LISTEN 27150/java
로그 파일 사이즈 체크
서비스 되어지는 해당 process 의 server 로그 및 기타 gc, nohup 로그등의 사용량을
체크합니다.
du –csh *log
정상 여부 확인 : 서비스 사용 로그 파일이 최대 2G 이내여야 합니다.
$ du –csh *
20K catalina.2018-05-03.log
20K catalina.2018-07-03.log
136K catalina.2018-07-10.log
36K catalina.2018-07-19.log
12K catalina.2018-11-08.log
224K total
Execute Status – 실행 상태
Garbage Collection 로그를 통한 서비스 정상 여부
서버 기동시 verbosegc 옵션을 통하여 gc 모니터링을 통한 서비스 정상 여부를
확인합니다.
tail
ex) tail -f gc.log.20140513
항목 설명
tail 명령을 통해서 현재 verbosegc 로그를 확인하여 지속적인 Full GC 여부를
모니터링합니다.
정상 여부 확인 : 2~5 지속적인 Full GC 로그가 보인다면 비정상으로 판단
41. Installation Guide
Confidential Page 41 11/9/2018
항목 설명
ps 명령을 통해서 해당 프로세스의 현재 동작 여부를 확인합니다.
정상 여부 확인 : 프로세스 목록 내용에서 Heap Memory 설정값이 적정값 ( min:max
1G <= 2G) 으로 설정이 되어 있는지 확인합니다.
$ ps –ef | grep java | grep SERVER_NAME
wasuser 27150 1 65 21:26 pts/2 00:00:09 /usr/java/jdk1.8.0_152/bin/java -
Djava.util.logging.config.file=/opt/was/servers/tomcat8_11/conf/logging.properties -
java.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Dserver=tomcat8_11 -
Dhttp.port=8180 -Dajp.port=8109 -Dssl.port=8543 -Dshutdown.port=8105 -
Djava.library.path=/opt/was/apache-tomcat-8.5.23/lib/ -verbose:gc -
Xloggc:/opt/was/servers/tomcat8_11/logs/gclog/gc.log -XX:+PrintGCDetails -
XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -
XX:HeapDumpPath=/opt/was/servers/tomcat8_11/logs/heaplog/java_pid.hprof -
Djava.net.preferIPv4Stack=true -Dsun.rmi.dgc.client.gcInterval=3600000 -
Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -
Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -
Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-classpath /opt/was/apache-tomcat-8.5.23/bin/bootstrap.jar:/opt/was/apache-tomcat-
8.5.23/bin/tomcat-juli.jar -Dcatalina.base=/opt/was/servers/tomcat8_11 -
Dcatalina.home=/opt/was/apache-tomcat-8.5.23 -
Djava.io.tmpdir=/opt/was/servers/tomcat8_11/temp org.apache.catalina.startup.Bootstrap start
8.2 모니터링 툴 소개
VisualVM
⚫ JVM 전반에 대해 모니터링을 제공하는 툴
⚫ JVM 에 포함 ($JAVA_HOME/bin/jvisualvm)되어 있으며, 공식 홈페이지에서도 다운로드
가능
⚫ 제공기능
✓ Display local and remote Java applications
✓ Display Application Configuration and runtime environment
✓ Monitor application threads, application performance and memory consumption
✓ Take and display thread dumps
✓ Take and browse heap dumps
42. Installation Guide
Confidential Page 42 11/9/2018
Scouter APM
⚫ 오픈소스 Application Performance Managerment 으로 Java, WAS 에 대한 모니터링
⚫ J2EE 시스템 운영 상태 모니터링을 위한 각종 데이터를 모니터링
⚫ WAS 단위 인스턴스 사용자 정의형 통합 대시보드 구성 환경 지원
⚫ Hardware, OS, Application, JVM 모니터링 가능