PaaS-TA-5.5.0
Search…
Pinpoint 설치 가이드

Table of Contents

1. 문서 개요

1.1 목적

본 문서(SaaS Monitoring Pinpoint 서비스팩 설치 가이드)는 전자정부표준프레임워크 기반의 PaaS-TA에서 제공되는 서비스팩인 Pinpoint 서비스팩을 BOSH 2.0을 이용하여 설치 하는 방법과 PaaS-TA의 SaaS 형태로 제공하는 Application 에서 Pinpoint 서비스를 사용하는 방법을 기술하였다. PaaS-TA 3.5 버전부터는 BOSH 2.0 기반으로 deploy를 진행하며 기존 BOSH 1.0 기반으로 설치를 원할경우에는 PaaS-TA 3.1 이하 버전의 문서를 참고한다.

1.2 범위

설치 범위는 Pinpoint 서비스팩을 검증하기 위한 기본 설치를 기준으로 작성하였다.

1.3 시스템 구성도

본 문서의 설치된 시스템 구성도이다. Pinpoint Server, HBase의 HBase Master, Collector , WebUI2로 최소사항을 구성하였다.
구분
Resource Pool
스펙
collector
pinpoint_medium
2vCPU / 2GB RAM / 8GB Disk
h_master
pinpoint_medium
2vCPU / 2GB RAM / 8GB Disk
haproxy_webui
services-small
1vCPU / 1GB RAM / 4GB Disk
pinpoint_web
services-small
1vCPU / 1GB RAM / 4GB Disk

● 참고자료

2. Pinpoint 서비스팩 설치

2.1. Prerequisite

  1. 1.
    BOSH 설치가 되어있으며, BOSH Login이 되어 있어야 한다.
  2. 2.
    cloud-config와 runtime-config가 업데이트 되어있는지 확인한다.
  3. 3.
    Stemcell 목록을 확인하여 서비스 설치에 필요한 Stemcell(ubuntu xenial 621.78)이 업로드 되어 있는 것을 확인한다.
cloud-config 확인 $ bosh -e {director-name} cloud-config
runtime-config 확인 $ bosh -e {director-name} runtime-config
stemcell 확인 $ bosh -e {director-name} stemcells

2.2. 설치 파일 다운로드

  • PaaS-TA를 설치하기 위한 deployment가 존재하지 않는다면 다운로드 받는다
    1
    $ cd ${HOME}/workspace/paasta-5.5.0/deployment
    2
    $ git clone https://github.com/paas-ta/common.git –b v5.0.1
    3
    $ git clone https://github.com/paas-ta/monitoring-deployment.git –b v5.5.0
    Copied!

2.3. Pinpoint Monitoring 설치 환경설정

${HOME}/workspace/paasta-5.5.0/deployment/monitoring-deployment/pinpoint-monitoring 이하 디렉터리에는 Pinpoint Monitoring 설치를 위한 Shell Script 파일이 존재한다.

● common_vars.yml

common 폴더에 있는 common_vars.yml PaaS-TA 및 각종 Service 설치시 적용하는 공통 변수 설정 파일이 존재한다. Pinpoint-Monitoring을 설치할 때는 saas_monitoring_url 값을 변경 하여 설치 할 수 있다.
1
# BOSH INFO
2
bosh_url: "http://10.0.1.6" # BOSH URL (e.g. "https://00.000.0.0")
3
bosh_client_admin_id: "admin" # BOSH Client Admin ID
4
bosh_client_admin_secret: "ert7na4jpewscztsxz48" # BOSH Client Admin Secret('echo $(bosh int ~/workspace/paasta-5.5.0/deployment/paasta-deployment/bosh/{iaas}/creds.yml --path /admin_password)' 명령어를 통해 확인 가능)
5
bosh_director_port: 25555 # BOSH Director Port
6
bosh_oauth_port: 8443 # BOSH OAuth Port
7
8
# PAAS-TA INFO
9
system_domain: "61.252.53.246.xip.io" # Domain (xip.io를 사용하는 경우 HAProxy Public IP와 동일)
10
paasta_admin_username: "admin" # PaaS-TA Admin Username
11
paasta_admin_password: "admin" # PaaS-TA Admin Password
12
paasta_nats_ip: "10.0.1.121"
13
paasta_nats_port: 4222
14
paasta_nats_user: "nats"
15
paasta_nats_password: "7EZB5ZkMLMqT73h2JtxPv1fvh3UsqO" # PaaS-TA Nats Password (CredHub 로그인후 'credhub get -n /micro-bosh/paasta/nats_password' 명령어를 통해 확인 가능)
16
paasta_nats_private_networks_name: "default" # PaaS-TA Nats 의 Network 이름
17
paasta_database_ips: "10.0.1.123" # PaaS-TA Database IP(e.g. "10.0.1.123")
18
paasta_database_port: 5524 # PaaS-TA Database Port(e.g. 5524)
19
paasta_cc_db_id: "cloud_controller" # CCDB ID(e.g. "cloud_controller")
20
paasta_cc_db_password: "cc_admin" # CCDB Password(e.g. "cc_admin")
21
paasta_uaa_db_id: "uaa" # UAADB ID(e.g. "uaa")
22
paasta_uaa_db_password: "uaa_admin" # UAADB Password(e.g. "uaa_admin")
23
paasta_api_version: "v3"
24
25
26
# UAAC INFO
27
uaa_client_admin_id: "admin" # UAAC Admin Client Admin ID
28
uaa_client_admin_secret: "admin-secret" # UAAC Admin Client에 접근하기 위한 Secret 변수
29
uaa_client_portal_secret: "clientsecret" # UAAC Portal Client에 접근하기 위한 Secret 변수
30
31
# Monitoring INFO
32
metric_url: "10.0.161.101" # Monitoring InfluxDB IP
33
syslog_address: "10.0.121.100" # Logsearch의 ls-router IP
34
syslog_port: "2514" # Logsearch의 ls-router Port
35
syslog_transport: "relp" # Logsearch Protocol
36
saas_monitoring_url: "61.252.53.248" # Pinpoint HAProxy WEBUI의 Public IP
37
monitoring_api_url: "61.252.53.241" # Monitoring-WEB의 Public IP
38
39
### Portal INFO
40
portal_web_user_ip: "52.78.88.252"
41
portal_web_user_url: "http://portal-web-user.52.78.88.252.xip.io"
42
43
### ETC INFO
44
abacus_url: "http://abacus.61.252.53.248.xip.io" # Abacus URL (e.g. "http://abacus.xxx.xxx.xxx.xxx.xip.io")
Copied!

● pinpoint-vars.yml

모니터링 하려는 VM에 접근을 하기 위해 PemSSH의 값을 true로 한다면 BOSH를 설치할때 IaaS의 VM을 만들 수 있는 권한을 주었던 Key를 같은 폴더에 있는 pem.yml에 같은 형식으로 복사하여야 한다.
1
### On-Demand Bosh Deployment Name Setting ###
2
deployment_name: "pinpoint-monitoring" # On-Demand Deployment Name
3
#### Main Stemcells Setting ###
4
stemcell_os: "ubuntu-xenial" # Deployment Main Stemcell OS
5
stemcell_version: "621.78" # Main Stemcell Version
6
stemcell_alias: "default" # Main Stemcell Alias
7
#### On-Demand Release Deployment Setting ###
8
releases_name: "paasta-pinpoint-monitoring-release" # On-Demand Release Name
9
public_networks_name: "vip" # Pinpoint Public Network Name
10
PemSSH: "true" # h_master에서 모니터링 하려는 VM에 SSH접근시 사용하는 Key File 지정 여부(default:false)
11
12
13
# H-Master
14
h_master_azs: ["z3"] # H-Master 가용 존
15
h_master_instances: 1 # H-Master 인스턴스 수
16
h_master_vm_type: "small-highmem-16GB" # H-Master VM 종류
17
h_master_network: "default" # H-Master 네트워크
18
h_master_persistent_disk_type: "30GB" # H-Master 영구 Disk 종류
19
20
# COLLECTOR
21
collector_azs: ["z3"] # Collector 가용 존
22
collector_instances: 1 # Collector 인스턴스 수
23
collector_vm_type: "small-highmem-16GB" # Collector VM 종류
24
collector_network: "default" # Collector 네트워크
25
collector_persistent_disk_type: "30GB" # Collector 영구 Disk 종류
26
27
# PINPOINT-WEB
28
pinpoint_web_azs: ["z3"] # Pinpoint-WEB 가용 존
29
pinpoint_web_instances: 1 # Pinpoint-WEB 인스턴스 수
30
pinpoint_web_vm_type: "small-highmem-16GB" # Pinpoint-WEB VM 종류
31
pinpoint_web_network: "default" # Pinpoint-WEB 네트워크
32
pinpoint_web_persistent_disk_type: "30GB" # Pinpoint-WEB 영구 Disk 종류
33
34
# HAPROXY-WEBUI
35
haproxy_webui_azs: ["z7"] # HAProxy-WEBUI 가용 존
36
haproxy_webui_instances: 1 # HAProxy-WEBUI 인스턴스 수
37
haproxy_webui_vm_type: "small-highmem-16GB" # HAProxy-WEBUI VM 종류
38
haproxy_webui_network: "default" # HAProxy-WEBUI 네트워크
39
haproxy_webui_persistent_disk_type: "30GB" # HAProxy-WEBUI 영구 Disk 종류
Copied!

● deploy-pinpoint.sh

1
echo 'y' | bosh -e micro-bosh -d pinpoint-monitoring deploy paasta-pinpoint.yml \
2
-o use-public-network.yml \
3
-l pinpoint-vars.yml \
4
-l ../../common/common_vars.yml \
5
-l pem.yml
Copied!

● deploy-pinpoint-vsphere.sh

1
echo 'y' | bosh -e micro-bosh -d pinpoint-monitoring deploy paasta-pinpoint.yml \
2
-o use-public-network-vsphere.yml \
3
-l pinpoint-vars.yml \
4
-l ../../common/common_vars.yml \
5
-l pem.yml
Copied!

2.4. Pinpoint Monitoring 설치

  • 서버 환경에 맞추어 Deploy 스크립트 파일의 설정을 수정한다.
$ vi ${HOME}/workspace/paasta-5.5.0/deployment/monitoring-deployment/pinpoint-monitoring/deploy-pinpoint.sh
1
echo 'y' | bosh -e {director_name} -d pinpoint-monitoring deploy paasta-pinpoint.yml \
2
-o use-public-network.yml \
3
-l pinpoint-vars.yml \
4
-l ../../common/common_vars.yml \
5
-l pem.yml
Copied!
  • Pinpoint Monitoring 설치 Shell Script 파일 실행 (BOSH 로그인 필요)
1
$ cd ~/workspace/paasta-5.5.0/deployment/monitoring-deployment/paasta-monitoring
2
$ sh deploy-pinpoint.sh
Copied!

2.5. 서비스 설치 확인

Pinpoint Monitoring이 설치 완료 되었음을 확인한다.
1
$ bosh –e {director_name} vms
2
3
4
$ bosh -e micro-bosh -d paasta-pinpoint-monitoring vms
5
Deployment 'paasta-pinpoint-monitoring'
6
7
Instance Process State AZ IPs VM CID VM Type Active
8
collector/a7932462-5a55-4ad6-9a50-6d9775d8391a running z3 10.0.81.122 i-0104012f0c4cf1051 caas_small_highmem true
9
h_master/7024f1d8-7911-4cc6-ac5c-8d9295221efa running z3 10.0.81.121 i-02b1cd70c35117d8d caas_small_highmem true
10
haproxy_webui/b30b856c-ad74-4ff5-a9ee-32e2ef641ffa running z7 10.0.0.122 i-046052aa5360f6b6f caas_small_highmem true
11
15.165.3.150
12
pinpoint_web/c23b79cf-ef55-42f5-9c2a-b8102b6e5ca8 running z3 10.0.81.123 i-02a82ab6f02784317 caas_small_highmem true
Copied!

2.6. security-group 등록

Pinpoint collector와 배포 app간 통신을 위한 처리.
1
$ vi pinpoint-asg.json
2
3
[
4
{
5
"protocol": "all",
6
"destination": "xx.x.xx.0/24",
7
"log": true,
8
"description": "Allow tcp traffic to Z3"
9
}
10
]
Copied!
1
$ cf create-security-group pinpoint pinpoint-asg.json
Copied!
1
$ cf bind-staging-security-group pinpoint
Copied!
1
$ cf bind-running-security-group pinpoint
Copied!

2.7. Pinpoint User-Provided service 등록

Pinpoint 서비스팩 배포가 완료 되었으면 Application에서 서비스 팩을 사용하기 위해서 먼저 Pinpoint User-Provided service를 등록해 주어야 한다.
User-Provided service 등록시 PaaS-TA에서 서비스를 등록 할 수 있는 사용자로 로그인이 되어 있어야 한다.
  • 서비스 목록을 확인한다.
1
$ cf services
Copied!
1
Getting services as admin...
2
3
name url
4
No service brokers found
Copied!
  • Pinpoint User-Provided service를 등록한다.
1
$ cf cups {서비스 이름} -p '{"application_name":"{App Name}", "collector_host":"{PINOINT COLLECTOR IP}","collector_span_port":"{COLLECTOR SPAN PORT}","collector_stat_port":"{COLLECTOR START PORT}","collector_tcp_port":"{COLLECTOR TCP PORT}"}' -t 'pinpoint'
Copied!
1
$ cf cups pinpoint_monitoring_service -p '{"application_name":"spring-music-pinpoint","collector_host":"10.0.81.122","collector_span_port":"29996","collector_stat_port":"29995","collector_tcp_port":"29994"}' -t 'pinpoint'
Copied!
1
Creating user provided service pinpoint_monitoring_service in as admin...
2
OK
Copied!
  • 등록된 Pinpoint User-Provided service를 확인한다.
1
$ cf services
Copied!
1
Getting services as admin...
2
name url
3
pinpoint_monitoring_service user-provided
Copied!

3. Sample Web App 연동 Pinpoint 연동

본 Sample Web App은 개방형 클라우드 플랫폼에 배포되며 Pinpoint의 서비스를 Provision과 Bind를 한 상태에서 사용이 가능하다.

3.1. Sample Web App 구조

Sample Web App은 PaaS-TA에 App으로 배포가 된다. 배포된 App에 Pinpoint 서비스 Bind 를 통하여 초기 데이터를 생성하게 된다. 바인드 완료 후 연결 URL을 통하여 브라우저로 해당 App에 대한 Pinpoint 서비스 모니터링을 할 수 0있다.
  • Spring-music App을 이용하여 Pinpoint 모니터링을 테스트 하였다.
  • 앱을 다운로드 후 –b 옵션을 주어 buildpack을 지정하여 Push 해 놓는다.
1
$ cf push -b java_buildpack_pinpoint --no-start
Copied!
1
Using manifest file /home/ubuntu/workspace/user/arom/spring-music/manifest.yml
2
3
Creating app spring-music-pinpoint in org org / space space as admin...
4
OK
5
6
Creating route spring-music-pinpoint.monitoring.open-paas.com...
7
OK
8
9
Binding spring-music-pinpoint.monitoring.open-paas.com to spring-music-pinpoint...
10
OK
11
12
Uploading spring-music-pinpoint...
13
Uploading app files from: /tmp/unzipped-app175965484
14
Uploading 21.2M, 126 files
15
Done uploading
16
OK
Copied!
1
$ cf apps
Copied!
1
Getting apps in org org / space space as admin...
2
OK
3
4
name requested state instances memory disk urls
5
spring-music-pinpoint stopped 0/1 512M 1G spring-music-pinpoint.monitoring.open-paas.com
Copied!

3.2. Sample Web App에 서비스 바인드 신청 및 App 확인

Sample Web App에서 Pinpoint 서비스를 사용하기 위해서는 서비스 신청(Provision)을 해야 한다.
1
$ cf bind-service {App명} {서비스명}
Copied!
1
서비스명 : p-Pinpoint로 Marketplace에서 보여지는 서비스 명칭이다.
2
서비스플랜 : 서비스에 대한 정책으로 plans에 있는 정보 중 하나를 선택한다. Pinpoint 서비스는 10 connection, 100 connection 를 지원한다.
3
내서비스명 : 내 서비스에서 보여지는 명칭이다. 이 명칭을 기준으로 환경설정정보를 가져온다.
Copied!
1
$ cf bind-service spring-music-pinpoint pinpoint_monitoring_service
Copied!
  • 생성된 Pinpoint 서비스 인스턴스를 확인한다.
1
$ cf services
Copied!
1
Getting services in org org / space space as admin...
2
OK
3
4
name service plan bound apps last operation
5
pinpoint_monitoring_service user-provided spring-music-pinpoint
Copied!
  • 바인드가 적용되기 위해서 App을 restage한다.(최초 app실행시 cf start {App명})
1
$ cf restage spring-music-pinpoint
Copied!
1
Restaging app spring-music-pinpoint in org org / space space as admin...
2
Downloading binary_buildpack...
3
Downloading go_buildpack...
4
Downloading staticfile_buildpack...
5
Downloading java_buildpack...
6
Downloading ruby_buildpack...
7
Downloading nodejs_buildpack...
8
Downloading python_buildpack...
9
Downloading php_buildpack...
10
Downloaded python_buildpack
11
Downloaded binary_buildpack
12
Downloaded go_buildpack
13
Downloaded java_buildpack
14
Downloaded ruby_buildpack
15
Downloaded nodejs_buildpack
16
Downloaded staticfile_buildpack
17
Downloaded php_buildpack
18
Creating container
19
Successfully created container
20
Downloading app package...
21
Downloaded app package (24.5M)
22
Downloading build artifacts cache...
23
Downloaded build artifacts cache (54.1M)
24
Staging...
25
-----> Java Buildpack Version: v3.7.1 | https://github.com/cloudfoundry/java-buildpack.git#78c3d0a
26
-----> Downloading Open Jdk JRE 1.8.0_91-unlimited-crypto from https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_91-unlimited-crypto.tar.gz (found in cache)
27
Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.6s)
28
-----> Downloading Open JDK Like Memory Calculator 2.0.2_RELEASE from https://java-buildpack.cloudfoundry.org/memory-calculator/trusty/x86_64/memory-calculator-2.0.2_RELEASE.tar.gz (found in cache)
29
Memory Settings: -XX:MaxMetaspaceSize=64M -Xss995K -Xmx382293K -Xms382293K -XX:MetaspaceSize=64M
30
-----> Downloading Spring Auto Reconfiguration 1.10.0_RELEASE from https://java-buildpack.cloudfoundry.org/auto-reconfiguration/auto-reconfiguration-1.10.0_RELEASE.jar (found in cache)
31
-----> Downloading Tomcat Instance 8.0.39 from https://java-buildpack.cloudfoundry.org/tomcat/tomcat-8.0.39.tar.gz (found in cache)
32
Expanding Tomcat Instance to .java-buildpack/tomcat (0.1s)
33
-----> Downloading Tomcat Lifecycle Support 2.5.0_RELEASE from https://java-buildpack.cloudfoundry.org/tomcat-lifecycle-support/tomcat-lifecycle-support-2.5.0_RELEASE.jar (found in cache)
34
-----> Downloading Tomcat Logging Support 2.5.0_RELEASE from https://java-buildpack.cloudfoundry.org/tomcat-logging-support/tomcat-logging-support-2.5.0_RELEASE.jar (found in cache)
35
-----> Downloading Tomcat Access Logging Support 2.5.0_RELEASE from https://java-buildpack.cloudfoundry.org/tomcat-access-logging-support/tomcat-access-logging-support-2.5.0_RELEASE.jar (found in cache)
36
Exit status 0
37
Staging complete
38
Uploading droplet, build artifacts cache...
39
Uploading droplet...
40
Uploading build artifacts cache...
41
Uploaded build artifacts cache (54.1M)
42
Uploaded droplet (77.3M)
43
Uploading complete
44
45
0 of 1 instances running, 1 starting
46
0 of 1 instances running, 1 starting
47
0 of 1 instances running, 1 starting
48
1 of 1 instances running
49
50
App started
51
52
53
OK
Copied!
  • App이 정상적으로 Pinpoint 서비스를 사용하는지 확인한다.
  • 환경변수 확인
1
$ cf env spring-music-pinpoint
Copied!
1
Getting env variables for app spring-music-pinpoint in org org / space space as admin...
2
OK
3
4
System-Provided:
5
{
6
"VCAP_SERVICES": {
7
"user-provided": [
8
{
9
"credentials": {
10
"application_name": "spring-music-pinpoint",
11
"collector_host": "10.0.81.122",
12
"collector_span_port": 29996,
13
"collector_stat_port": 29995,
14
"collector_tcp_port": 29994
15
},
16
"label": "user-provided",
17
"instance_name": "pinpoint_monitoring_service",
18
"name": "pinpoint_monitoring_service",
19
"syslog_drain_url": null,
20
"tags": [],
21
"volume_mounts": []
22
}
23
]
24
}
25
}
26
27
{
28
"VCAP_APPLICATION": {
29
"application_id": "b010e6e9-5431-4198-81f8-7d6ba9c14f40",
30
"application_name": "spring-music-pinpoint",
31
"application_uris": [
32
"spring-music-pinpoint.monitoring.open-paas.com"
33
],
34
"application_version": "9a600116-97bd-45da-a33e-3b0d5592b1d0",
35
"limits": {
36
"disk": 1024,
37
"fds": 16384,
38
"mem": 512
39
},
40
"name": "spring-music-pinpoint",
41
"space_id": "bc70b951-d870-49ca-b57d-5c7137060e5e",
42
"space_name": "space",
43
"uris": [
44
"spring-music-pinpoint.monitoring.open-paas.com"
45
],
46
"users": null,
47
"version": "9a600116-97bd-45da-a33e-3b0d5592b1d0"
48
}
49
}
50
51
No user-defined env variables have been set
52
53
No running env variables have been set
54
55
No staging env variables have been set
Copied!
Last modified 8mo ago