paasta Monitoring 설치 가이드

Table of Contents

  1. 개요

     ∙ 목적

     ∙ 범위

     ∙ 참고 자료

Executive Summary

본 문서는 PaaS-TA 5.5.0(이하 PaaS-TA)을 수동으로 설치하기 위한 가이드를 제공하는 데 그 목적이 있다.

1. 문서 개요

1.1 목적

본 문서는 Inception 환경(설치환경)에서 BOSH2(이하 BOSH) 설치 후, BOSH를 기반으로 Monitoring을 적용한 PaaS-TA를 설치하기 위한 가이드를 제공하는 데 그 목적이 있다.

1.2 범위

본 문서는 cf-deployment v13.19.0을 기준으로 작성되었다. PaaS-TA는 bosh-deployment를 기반으로 한 BOSH 환경에서 설치한다.

PaaS-TA 설치 시 필요한 Stemcell은 기존 ubuntu-xenial-621.78에서 ubuntu-xenial-621.94로 변경되었다.

PaaS-TA는 VMware vSphere, Google Cloud Platform, Amazon Web Services EC2, OpenStack, Microsoft Azure 등의 IaaS를 지원한다.

현재 PaaS-TA 5.5.0에서 검증한 IaaS 환경은 AWS, OpenStack 환경이다.

1.3 참고 자료

본 문서는 Cloud Foundry의 BOSH Document와 Cloud Foundry Document를 참고로 작성하였다.

BOSH Document: http://bosh.io

Cloud Foundry Document: https://docs.cloudfoundry.org

BOSH Deployment: https://github.com/cloudfoundry/bosh-deployment

CF Deployment: https://github.com/cloudfoundry/cf-deployment

2. PaaS-TA 5.5.0

PaaS-TA는 BOSH를 기반으로 설치된다. BOSH CLI를 사용하여 BOSH를 생성한 후, paasta-deployment로 PaaS-TA를 배포한다.

PaaS-TA 3.1 버전까지는 PaaS-TA Container, Controller를 각각의 deployment로 설치했지만, PaaS-TA 3.5 버전부터 paasta-deployment 하나로 통합되었으며, 한 번에 PaaS-TA를 설치한다.

3. PaaS-TA 5.5.0 설치

3.1. Prerequisite

  • BOSH2 기반의 BOSH를 설치한다.

  • PaaS-TA 설치는 BOSH를 설치한 Inception(설치 환경)에서 작업한다.

  • PaaS-TA 설치를 위해 BOSH LOGIN을 진행한다. (BOSH 로그인)

3.2. 설치 파일 다운로드

  • PaaS-TA를 설치하기 위한 deployment가 존재하지 않는다면 다운로드 받는다

모니터링이 적용된 paas-ta 구성의 경우 모니터링이 적용된 설치 파일 등 추가 구성해 주어야 한다. 모니터링 paasta-addon 참조 가이드

3.3. Stemcell 업로드

Stemcell은 배포 시 생성되는 PaaS-TA VM Base OS Image이며, PaaS-TA 5.5.0은 Ubuntu xenial stemcell 621.94를 기반으로 한다. 기본적인 Stemcell 업로드 명령어는 다음과 같다.

PaaS-TA 5.5.0은 Stemcell 업로드 스크립트를 지원하며, BOSH 로그인 후 다음 명령어를 수행하여 Stemcell을 올린다. BOSH_ENVIRONMENT는 BOSH 설치 시 사용한 Director 명이고, CURRENT_IAAS는 배포된 환경 IaaS(aws, azure, gcp, openstack, vsphere, 그외 입력시 bosh-lite)에 맞게 입력을 한다. (PaaS-TA에서 제공되는 create-bosh-login.sh을 이용하여 BOSH LOGIN시 BOSH_ENVIRONMENT와 CURRENT_IAAS는 자동입력된다.)

  • Stemcell 업로드 Script의 설정 수정 (BOSH_ENVIRONMENT 수정)

$ vi ~/workspace/paasta-5.5.0/deployment/paasta-deployment/bosh/upload-stemcell.sh

  • Stemcell 업로드 Script 실행

  • 오프라인 Stemcell 업로드 Script의 설정 수정 (BOSH_ENVIRONMENT, STEMCELL_DIR 수정)

$ vi ~/workspace/paasta-5.5.0/deployment/paasta-deployment/bosh/offline-upload-stemcell.sh

  • 오프라인 Stemcell 업로드 Script 실행

3.4. Runtime Config 설정

Runtime config는 BOSH로 배포되는 VM에 적용되는 설정이다. 기본적인 Runtime Config 설정 명령어는 다음과 같다.

PaaS-TA에서 적용하는 Runtime Config는 다음과 같다.

  • DNS Runtime Config PaaS-TA 4.0부터 적용되는 부분으로 PaaS-TA Component에서 Consul이 대체된 Component이다. PaaS-TA Component 간의 통신을 위해 BOSH DNS 배포가 선행되어야 한다.

  • OS Configuration Runtime Config BOSH Linux OS 구성 릴리스를 이용하여 sysctl을 구성한다.

PaaS-TA 5.5.0은 Runtime Config 설정 스크립트를 지원하며, BOSH 로그인 후 다음 명령어를 수행하여 Runtime Config를 설정한다.

  • Runtime Config 업데이트 Script 수정 (BOSH_ENVIRONMENT 수정)

    $ vi ~/workspace/paasta-5.5.0/deployment/paasta-deployment/bosh/update-runtime-config.sh

  • Runtime Config 업데이트 Script 실행

  • 오프라인 Runtime Config 업데이트 Script 수정 (BOSH_ENVIRONMENT, RELEASE_DIR 수정)

$ vi ~/workspace/paasta-5.5.0/deployment/paasta-deployment/bosh/offline-update-runtime-config.sh

  • 오프라인 Runtime Config 업데이트 Script 실행

3.5. Cloud Config 설정

PaaS-TA를 설치하기 위한 IaaS 관련 Network, Storage, VM 관련 설정을 Cloud Config로 정의한다. PaaS-TA 설치 파일을 내려받으면 ~/workspace/paasta-5.5.0/deployment/paasta-deployment/cloud-config 디렉터리 이하에 IaaS별 Cloud Config 예제를 확인할 수 있으며, 예제를 참고하여 cloud-config.yml을 IaaS에 맞게 수정한다. PaaS-TA 배포 전에 Cloud Config를 BOSH에 적용해야 한다.

  • AWS을 기준으로 한 cloud-config.yml 예제

  • Cloud Config 업데이트

  • Cloud Config 확인

3.5.1 AZs

PaaS-TA에서 제공되는 Cloud Config 예제는 z1 ~ z6까지 설정되어 있다. z1 ~ z3까지는 PaaS-TA VM이 설치되는 Zone이며, z4 ~ z6까지는 서비스가 설치되는 Zone으로 정의한다. 3개 단위로 설정하는 이유는 서비스 3중화를 위해서이다. PaaS-TA를 설치하는 환경에 따라 다르게 설정해도 된다.

3.5.2 VM Types

VM Type은 IaaS에서 정의된 VM Type이다.

※ 다음은 AWS에서 정의한 Instance Type이다.

3.5.3 Compilation

PaaS-TA 및 서비스 설치 시, PaaS-TA는 Compile VM을 생성하여 소스를 컴파일하고, PaaS-TA VM을 생성하여 컴파일된 파일을 대상 VM에 설치한다. 컴파일이 끝난 VM은 삭제된다.

※ Worker 수는 Compile VM의 수로, 많을수록 컴파일 속도가 빨라진다.

3.5.4 Disk Size

PaaS-TA 및 서비스가 설치되는 VM의 Persistent Disk Size이다.

3.5.5 Networks

Networks는 AZ 별 Subnet Network, DNS, Security Groups, Network ID를 정의한다. 보통 AZ 별로 256개의 IP를 정의할 수 있도록 Range Cider를 정의한다.

3.6. PaaS-TA 설치 파일

common_vars.yml파일과 vars.yml을 수정하여 PaaS-TA 설치시 적용하는 변수를 설정할 수 있다.

common_vars.yml

PaaS-TA 및 각종 Service 설치시 적용하는 공통 변수 설정 파일

vars.yml

PaaS-TA 설치시 적용하는 변수 설정 파일

deploy-aws-monitoring.sh

AWS 환경에 Monitoring 옵션을 적용하여 PaaS-TA 설치를 위한 Shell Script 파일. 존재하지 않을 경우 git clone 해 두었던 .../monitoring-deployment/paasta-addon/ 에서 파일을 복사해 온다

deploy-openstack-monitoring.sh

OpenStack 환경에 Monitoring 옵션을 적용하여 PaaS-TA 설치를 위한 Shell Script 파일. 존재하지 않을 경우 git clone 해 두었던 .../monitoring-deployment/paasta-addon/ 에서 파일을 복사해 온다

paasta-deployment.yml

PaaS-TA을 배포하는 Manifest 파일

3.6.1. PaaS-TA 설치 Variable File

● common_vars.yml

~/workspace/paasta-5.5.0/deployment/common 폴더에 있는 common_vars.yml PaaS-TA 및 각종 Service 설치시 적용하는 공통 변수 설정 파일이 존재한다. PaaS-TA 5.5.0을 설치할 때는 system_domain, paasta_admin_username, paasta_admin_password, uaa_client_admin_secret, uaa_client_portal_secret, paasta_database_port의 값을 변경 하여 설치 할 수 있다.

$ vi ~/workspace/paasta-5.5.0/deployment/common/common_vars.yml

● vars.yml

PaaS-TA를 설치 할 때 적용되는 각종 변수값이나 배포 될 VM의 설정을 변경할 수 있다.

$ vi ~/workspace/paasta-5.5.0/deployment/paasta-deployment/paasta/vars.yml

● PaaS-TA 그외 Variable List

  1. uaa_login_logout_redirect_parameter_whitelist : 포탈 페이지 이동을 위한 UAA Redirect Whitelist 등록 변수

xip.io : 임시 도메인, 기본 DNS 서버가 8.8.8.8로 설정되어야 한다. xip.io를 사용하지 않고 DNS를 사용할 경우, Whitelist에 포탈 DNS, 포탈 DNS/callback, 포탈 DNS/login 세 개의 항목을 등록해야 한다.

  1. uaa_login_links_passwd : UAA 페이지에서 Reset Password 버튼 클릭 시 이동하는 링크 주소

  1. uaa_login_links_signup : UAA 페이지에서 Create Account 버튼 클릭 시 이동하는 링크 주소

  1. uaa_client_portal_redirect_uri : UAAC Portal Client의 Redirect URI 지정 변수, 포탈에서 로그인 버튼 클릭 후 UAA 페이지에서 로그인 성공 시 이동하는 URI

  1. uaa_client_portal_secret : UAAC Portal Client에 접근하기 위한 Secret 변수

  1. uaa_client_admin_secret : UAAC Admin Client에 접근하기 위한 Secret 변수

  • uaa_client_admin_secret 적용 확인 방법

    (1) PaaS-TA 설치 후 아래 명령어 실행한다.

    (2) 설정한 secret 값으로 admin token을 얻을 경우 아래와 같은 결과가 출력된다.

3.6.2. PaaS-TA Operation 파일

파일명

설명

요구사항

operations/use-compiled-releases.yml

인터넷이 연결된 환경에서 컴파일 없이 빠른 설치가 가능하다.

operations/use-offline-releases.yml

paasta-deployment.yml에서 사용되는 릴리즈를 오프라인에 저장된 릴리즈로 설치가 가능하다.

Requires value : -v releases_dir

operations/use-postgres.yml

Database를 Postgres로 설치 - use-postgres.yml 미적용 시 MySQL 설치 - 3.5 이전 버전에서 Migration 시 필수

operations/use-compiled-releases-postgres.yml

인터넷이 연결된 환경에서 컴파일 없이 Postgres의 빠른 설치가 가능하다.

Requires: use-postgres.yml

operations/use-offline-releases-postgres.yml

use-postgres.yml에서 사용되는 릴리즈를 오프라인에 저장된 릴리즈로 설치가 가능하다.

Requires: use-postgres.yml Requires value : -v releases_dir

operations/use-haproxy.yml

HAProxy 적용 - IaaS에서 제공하는 LB를 사용하여 PaaS-TA 설치 시, Operation 파일을 제거하고 설치한다.

Requires operation file: use-haproxy-public-network.yml Requires value : -v haproxy_private_ip

operations/use-haproxy-public-network.yml

HAProxy Public Network 설정 - IaaS에서 제공하는 LB를 사용하여 PaaS-TA 설치 시, Operation 파일을 제거하고 설치한다.

Requires: use-haproxy.yml Requires Value : -v haproxy_public_ip -v haproxy_public_network_name

operations/use-haproxy-public-network-vsphere.yml

HAProxy Public Network 설정 - vsphere에서 사용하며, IaaS에서 제공하는 LB를 사용하여 PaaS-TA 설치 시, Operation 파일을 제거하고 설치한다.

Requires: use-haproxy.yml Requires Value : -v haproxy_public_ip -v haproxy_public_network_name -v haproxy_private_network_name

operations/use-compiled-releases-haproxy.yml

인터넷이 연결된 환경에서 컴파일 없이 HAProxy의 빠른 설치가 가능하다.

Requires: use-haproxy.yml

operations/addons/paasta-monitoring-agent.yml

PaaS-TA Monitoring Agent 적용. 존재하지 않을 경우 git clone 해 두었던 .../monitoring-deployment/paasta-addon/operations/addons/ 에서 현재 위치에 ./operations/addons/ 디렉터리(없으면 생성) 안에 경로를 맞추어 파일을 복사해 놓는다.

Requires value : -v metric_url

operations/addons/enable-component-syslog.yml

PaaS-TA Monitoring Log Agent 적용(PaaS-TA VM Log 전송). 존재하지 않을 경우 git clone 해 두었던 .../monitoring-deployment/paasta-addon/operations/addons/ 에서 현재 위치에 ./operations/addons/ 디렉터리(없으면 생성) 안에 경로를 맞추어 파일을 복사해 놓는다.

Requires value : -v syslog_address -v syslog_port -v syslog_custome_rule -v syslog_failback_servers

operations/use-offline-releases-haproxy.yml

use-haproxy.yml에서 사용되는 릴리즈를 오프라인에 저장된 릴리즈로 설치가 가능하다.

Requires: use-haproxy.yml Requires value : -v releases_dir

Monitoring Agent는 BOSH VM의 상태 정보(Metric data)를 paasta-monitoring의 InfluxDB에 전송한다. Syslog Agent는 BOSH VM의 log 정보를 logsearch의 ls-router에 전송하는 역할을 한다. BOSH 설치 전에 paasta-monitoring의 InfluxDB IP를 metric_url로 사용하기 위해 사전에 정의해야 한다. 마찬가지로 logsearch의 ls-router IP도 syslog_address로 연동하기 위해 사전에 정의해야 한다.

3.6.3. PaaS-TA 설치 Shell Scripts

paasta-deployment.yml 파일은 PaaS-TA를 배포하는 Manifest 파일이며, PaaS-TA VM에 대한 설치 정의를 하게 된다. PaaS-TA VM 중 singleton-blobstore, database의 AZs(zone)을 변경하면 조직(ORG), 스페이스(SPACE), 앱(APP) 정보가 모두 삭제된다.

이미 설치된 PaaS-TA의 재배포 시, singleton-blobstore, database의 AZs(zone)을 변경하면 조직(ORG), 공간(SPACE), 앱(APP) 정보가 모두 삭제된다.

※ PaaS-TA 설치 시 명령어는 BOSH deploy를 사용한다. (IaaS 환경에 따라 Option이 다름)

PaaS-TA 배포 BOSH 명령어 예시

PaaS-TA 배포 시, 설치 Option을 추가해야 한다. 설치 Option에 대한 설명은 아래와 같다.

-e

BOSH Director 명

-d

Deployment 명 (기본값 paasta, 수정 시 다른 PaaS-TA 서비스에 영향을 준다.)

-o

PaaS-TA 설치 시 적용하는 Option 파일로 IaaS별 속성, Haproxy 사용 여부, Database 설정 기능을 제공한다.

-v

PaaS-TA 설치 시 적용하는 변수 또는 Option 파일에 변수를 설정할 경우 사용한다. Option 파일 속성에 따라 필수 또는 선택 항목으로 나뉜다.

-l, --var-file

YAML파일에 작성한 변수를 읽어올때 사용한다.

● deploy-aws-monitoring.sh

● deploy-openstack-monitoring.sh

  • Shell script 파일에 실행 권한 부여

3.7. PaaS-TA 설치

  • 서버 환경에 맞추어 common_vars.yml와 [vars.yml]((#3.6.1.2))을 수정 한 뒤, Deploy 스크립트 파일의 설정을 수정한다.

$ vi ~/workspace/paasta-5.5.0/deployment/paasta-deployment/paasta/deploy-aws-monitoring.sh

  • PaaS-TA 설치 시 Shell Script 파일 실행 (BOSH 로그인 필요)

  • PaaS-TA 설치 확인

$ bosh -e ${BOSH_ENVIRONMENT} vms -d paasta

3.8. PaaS-TA 설치 - 다운로드 된 Release 파일 이용 방식

  • 서비스 설치에 필요한 릴리즈 파일을 다운로드 받아 Local machine의 작업 경로로 위치시킨다.

  • 서버 환경에 맞추어 common_vars.yml와 [vars.yml]((#3.6.1.2))을 수정 한 뒤, Deploy 스크립트 파일의 설정을 수정한다.

$ vi ~/workspace/paasta-5.5.0/deployment/paasta-deployment/paasta/deploy-aws-monitoring.sh

  • PaaS-TA 설치 시 Shell Script 파일 실행 (BOSH 로그인 필요)

  • PaaS-TA 설치 확인

$ bosh -e ${BOSH_ENVIRONMENT} vms -d paasta

3.9. PaaS-TA 로그인

CF CLI를 설치하고 PaaS-TA에 로그인한다. CF CLI는 v6과 v7중 선택해서 설치를 한다. CF API는 PaaS-TA 배포 시 지정했던 System Domain 명을 사용한다.

  • CF CLI v6 설치

  • CF CLI v7 설치 (PaaS-TA 5.1.0 이상)

  • CF API URL 설정

$ cf api api.{system_domain} --skip-ssl-validation

  • PaaS-TA 로그인

$ cf login

Last updated

Was this helpful?