IaaS/PaaS 통합 MONITORING 설치 가이드

1. 문서 개요

클라우드 서비스(IaaS/PaaS) 통합 운영관리 기술 개발 프로젝트의 IaaS-PaaS-Monitoring 시스템에서 IaaS(Openstack)시스템의 상태와 PaaS-Ta 서비스(Bosh/CF/Diego/App)들의 상태를 조회하여 사전에 설정한 임계치 값과 비교 후, 초과된 시스템 자원을 사용중인 서비스들의 목록을 관리자에게 통보하기 위한 애플리케이션 개발하고, 배포하는 방법을 설명한다.

1.1. 목적

본 문서(설치가이드)는 파스타를 4.0 IaaS/PaaS 통합 모니터링을 설치하는데 있다.

1.2. 범위

본 문서(설치가이드)는 파스타를 4.0 IaaS/PaaS 통합 모니터링을 설치하는데 있다.

1.3. 참고자료

본 문서는 Cloud Foundry의 BOSH Document와 Cloud Foundry Document를 참고로 작성하였다.
BOSH Document: http://bosh.io
Cloud Foundry Document: https://docs.cloudfoundry.org/

2. IaaS/PaaS 통합 Monitoring

IaaS-PaaS Monitoring은 openstack/PaaS-TA를 통합 모니터링 할 수 있는 모니터링 도구이다. IaaS모니터링은 Openstack Newton version을 기준으로 개발 되었다. IaaS-PaaS Monitoring 통합모니터링을 설치 하려면 아래 설치 가이드에 따라 설치 한다.

2.1. IaaS/PaaS 통합 Monitoring Architecture

IaaS-PaaS Monitoring Application의 IaaS는 Openstack과 Monasca를 기반으로 구성되어 있다. IaaS는 Openstack Node에 monasca Agent가 설치되어 Metric Data를 Monasca에 전송하여 InfluxDB에 저장한다. PaaS는 PaaS-TA에 모니터링 Agent가 설치되어 InfluxDB에 전송 저장한다. Log Agent도 IaaS/PaaS에 설치되어 Log Data를 각각의 Log Repository에 전송한다.

2.2. IaaS Monitoring Architecture

IaaS 모니터링은 Openstack Compute/Controller Node에 Monasca agent(IaaS Monitoring Agent)와 Log Agent를 설치하여 Metric/Log Data를 모니터링 시스템에 전송한다. Metric Data는 Monasca를 통하여 MetricDB(InfluxDB)에 저장되며 Log Data는 ElasticSearch에 저장된다.

2.3. PaaS Monitoring Architecture

PaaS 모니터링은 PaaS-TA모니터링을 말한다. PaaS-TA 서비스 모니터링 운영환경에서는 크게 Backend 환경에서 실행되는 Batch 프로세스 영역과 Frontend 환경에서 실행되는 Monitoring 시스템 영역으로 나누어진다. Batch 프로세스는 PaaS-TA Portal 서비스에서 등록한 임계치 정보와 AutoScale 대상 정보를 기준으로 주기적으로 시스템 metrics 정보를 조회 및 분석하여, 임계치를 초과한 서비스 발견시 관리자에게 Alarm을 전송하며, 임계치를 초과한 컨테이너 리스트 중에서 AutoScale 대상의 컨테이너 존재시 AutoScale Server 서비스에 관련 정보를 전송하여, 자동으로 AutoScaling 기능이 수행되도록 처리한다. Monitoring 시스템 은 TSDB(InfluxDB)로부터 시스템 환경 정보 데이터를 조회하고, Lucene(Elasticsearch)을 통해 로그 정보를 조회한다. 조회된 정보는 PaaS-TA Monitoring 시스템의 현재 자원 사용 현황을 조회하고, Kibana를 통해 로그 정보를 조회할 수 있도록 한다. Monitoring Portal은 관리자 화면으로 알람이 발생된 이벤트 현황 정보를 조회하고, 컨테이너 배치 현황과 장애 발생 서비스에 대한 통계 정보를 조회할 수 있으며, 이벤트 관련 처리정보를 이력관리할 수 있는 화면을 제공한다

3. IaaS-PaaS 통합 모니터링 설치

3.1. Pre-requsite

  1. 1.
    Openstack newton version
  2. 2.
    PaaS-TA가 Openstack에 설치 되어 있어야 한다.
  3. 3.
    설치된 Openstack위에 PaaS-TA에 설치 되어 있어야 한다.(PaaS-TA Agent설치 되어 있어야 한다)
  4. 4.
    IaaS-PaaS-Monitoring 시스템에는 선행작업(Prerequisites)으로 Monasca Server가 설치 되어 있어야 한다. Monasca Client(agent)는 openstack controller, compute node에 설치되어 있어야 한다. 아래 Monasca Server/Client를 먼저 설치 후 IaaS-PaaS-Monitoring을 설치 해야 한다.
  5. 5.
    IaaS-PaaS-Monitoring이 설치되는 서버에 golang 1.9.x 버전 이상이 설치 되어 있어야 한다.

3.2. IaaS/PaaS Monitoring 설치환경

IaaS/PaaS 통합 모니터링 환경을 구성하기 위해서는 IaaS에서는 Monasca-Server/Client를 설치해야 한다. PaaS에서 사용하는 logsearch(paasta Log repository)와 Redis/InfluxDB는 PaaS-TA를 설치한 Inceptoin(설치환경)에서 먼저 설치 해야 한다.

3.2.1. Monasca 설치

Monasca는 Server와 Client로 구성되어 있다. Openstack controller/compute Node에 Monasca-Client(Agent)를 설치 하여 Monasca 상태정보를 Monasca-Server에 전송한다. 수집된 Data를 기반으로 IaaS 모니터링을 수행한다. Monasca-Server는 Openstack에서 VM을 수동 생성하여 설치를 진행한다.
3.2.1.1. Monasca Server 설치
3.2.1.2. Monasca Client(agent) 설치

3.2.2. Logsearch 설치

Paasta-4.0 설치한 Inception(설치환경)에서 PaaS-TA VM Log수집을 하는 logsearch를 Bosh를 사용하여 설치 한다.
1
$ cd ~/workspace/paasta-4.0/deployment/service-deployment/logsearch
Copied!
3.2.2.1. logsearch-deployment.yml
logsearch-deployment.yml에는 ls-router, cluster-monitor, elasticsearch_data, elastic_master, kibana, mainternance 의 명세가 정의되어 있다.
1
---
2
name: logsearch
3
update:
4
canaries: 3
5
canary_watch_time: 30000-1200000
6
max_in_flight: 1
7
serial: false
8
update_watch_time: 5000-1200000
9
instance_groups:
10
11
- name: elasticsearch_master
12
azs:
13
- z5
14
instances: 1
15
persistent_disk_type: 10GB
16
vm_type: medium
17
stemcell: default
18
update:
19
max_in_flight: 1
20
serial: true
21
networks:
22
- name: default
23
jobs:
24
- name: elasticsearch
25
release: logsearch
26
consumes:
27
elasticsearch: {from: elasticsearch_master}
28
provides:
29
elasticsearch: {as: elasticsearch_master}
30
properties:
31
elasticsearch:
32
node:
33
allow_master: true
34
- name: syslog_forwarder
35
release: logsearch
36
consumes:
37
syslog_forwarder: {from: cluster_monitor}
38
properties:
39
syslog_forwarder:
40
config:
41
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stdout.log
42
service: elasticsearch
43
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stderr.log
44
service: elasticsearch
45
- file: /var/vcap/sys/log/cerebro/cerebro.stdout.log
46
service: cerebro
47
- file: /var/vcap/sys/log/cerebro/cerebro.stderr.log
48
service: cerebro
49
- name: cluster_monitor
50
azs:
51
- z6
52
instances: 1
53
persistent_disk_type: 10GB
54
vm_type: medium
55
stemcell: default
56
update:
57
max_in_flight: 1
58
serial: true
59
networks:
60
- name: default
61
jobs:
62
- name: elasticsearch
63
release: logsearch
64
consumes:
65
elasticsearch: {from: elasticsearch_cluster_monitor}
66
provides:
67
elasticsearch: {as: elasticsearch_cluster_monitor}
68
properties:
69
elasticsearch:
70
cluster_name: monitor
71
node:
72
allow_data: true
73
allow_master: true
74
- name: elasticsearch_config
75
release: logsearch
76
consumes:
77
elasticsearch: {from: elasticsearch_cluster_monitor}
78
properties:
79
elasticsearch_config:
80
templates:
81
- shards-and-replicas: '{ "template" : "logstash-*", "order" : 100, "settings"
82
: { "number_of_shards" : 1, "number_of_replicas" : 0 } }'
83
- index-settings: /var/vcap/jobs/elasticsearch_config/index-templates/index-settings.json
84
- index-mappings: /var/vcap/jobs/elasticsearch_config/index-templates/index-mappings.json
85
- name: ingestor_syslog
86
release: logsearch
87
provides:
88
syslog_forwarder: {as: cluster_monitor}
89
properties:
90
logstash_parser:
91
filters:
92
- monitor: /var/vcap/packages/logsearch-config/logstash-filters-monitor.conf
93
- name: curator
94
release: logsearch
95
consumes:
96
elasticsearch: {from: elasticsearch_cluster_monitor}
97
properties:
98
curator:
99
purge_logs:
100
retention_period: 7
101
- name: kibana
102
release: logsearch
103
consumes:
104
elasticsearch: {from: elasticsearch_cluster_monitor}
105
properties:
106
kibana:
107
memory_limit: 30
108
wait_for_templates: [shards-and-replicas]
109
- name: maintenance
110
azs:
111
- z5
112
- z6
113
instances: 1
114
vm_type: medium
115
stemcell: default
116
update:
117
serial: true
118
networks:
119
- name: default
120
jobs:
121
- name: elasticsearch_config
122
release: logsearch
123
consumes:
124
elasticsearch: {from: elasticsearch_master}
125
properties:
126
elasticsearch_config:
127
index_prefix: logs-
128
templates:
129
- shards-and-replicas: /var/vcap/jobs/elasticsearch_config/index-templates/shards-and-replicas.json
130
- index-settings: /var/vcap/jobs/elasticsearch_config/index-templates/index-settings.json
131
- index-mappings: /var/vcap/jobs/elasticsearch_config/index-templates/index-mappings.json
132
- index-mappings-lfc: /var/vcap/jobs/elasticsearch-config-lfc/index-mappings.json
133
- index-mappings-app-lfc: /var/vcap/jobs/elasticsearch-config-lfc/index-mappings-app.json
134
- index-mappings-platform-lfc: /var/vcap/jobs/elasticsearch-config-lfc/index-mappings-platform.json
135
- name: curator
136
release: logsearch
137
consumes:
138
elasticsearch: {from: elasticsearch_master}
139
- name: elasticsearch-config-lfc
140
release: logsearch-for-cloudfoundry
141
- name: syslog_forwarder
142
release: logsearch
143
consumes:
144
syslog_forwarder: {from: cluster_monitor}
145
properties:
146
syslog_forwarder:
147
config:
148
- file: /var/vcap/sys/log/curator/curator.log
149
service: curator
150
- name: elasticsearch_data
151
azs:
152
- z5
153
- z6
154
instances: 2
155
persistent_disk_type: 30GB
156
vm_type: medium
157
stemcell: default
158
update:
159
max_in_flight: 1
160
serial: true
161
networks:
162
- name: default
163
jobs:
164
- name: elasticsearch
165
release: logsearch
166
consumes:
167
elasticsearch: {from: elasticsearch_master}
168
properties:
169
elasticsearch:
170
node:
171
allow_data: true
172
- name: syslog_forwarder
173
release: logsearch
174
consumes:
175
syslog_forwarder: {from: cluster_monitor}
176
properties:
177
syslog_forwarder:
178
config:
179
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stdout.log
180
service: elasticsearch
181
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stderr.log
182
service: elasticsearch
183
- file: /var/vcap/sys/log/cerebro/cerebro.stdout.log
184
service: cerebro
185
- file: /var/vcap/sys/log/cerebro/cerebro.stderr.log
186
service: cerebro
187
- name: kibana
188
azs:
189
- z5
190
instances: 1
191
persistent_disk_type: 5GB
192
vm_type: medium
193
stemcell: default
194
networks:
195
- name: default
196
197
jobs:
198
- name: elasticsearch
199
release: logsearch
200
consumes:
201
elasticsearch: {from: elasticsearch_master}
202
- name: redis
203
release: logsearch-for-cloudfoundry
204
provides:
205
redis: {as: redis_link}
206
- name: kibana
207
release: logsearch
208
provides:
209
kibana: {as: kibana_link}
210
consumes:
211
elasticsearch: {from: elasticsearch_master}
212
properties:
213
kibana:
214
health:
215
timeout: 300
216
env:
217
- NODE_ENV: production
218
- name: syslog_forwarder
219
release: logsearch
220
consumes:
221
syslog_forwarder: {from: cluster_monitor}
222
properties:
223
syslog_forwarder:
224
config:
225
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stdout.log
226
service: elasticsearch
227
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stderr.log
228
service: elasticsearch
229
- file: /var/vcap/sys/log/cerebro/cerebro.stdout.log
230
service: cerebro
231
- file: /var/vcap/sys/log/cerebro/cerebro.stderr.log
232
service: cerebro
233
- name: ingestor
234
azs:
235
- z4
236
- z6
237
instances: 2
238
persistent_disk_type: 10GB
239
vm_type: medium
240
stemcell: default
241
networks:
242
- name: default
243
jobs:
244
- name: elasticsearch
245
release: logsearch
246
consumes:
247
elasticsearch: {from: elasticsearch_master}
248
- name: parser-config-lfc
249
release: logsearch-for-cloudfoundry
250
- name: ingestor_syslog
251
release: logsearch
252
provides:
253
ingestor: {as: ingestor_link}
254
properties:
255
logstash_parser:
256
filters:
257
- logsearch-for-cf: /var/vcap/packages/logsearch-config-logstash-filters/logstash-filters-default.conf
258
elasticsearch:
259
index: logs-%{[@metadata][index]}-%{+YYYY.MM.dd}
260
deployment_dictionary:
261
- /var/vcap/packages/logsearch-config/deployment_lookup.yml
262
- /var/vcap/jobs/parser-config-lfc/config/deployment_lookup.yml
263
- name: syslog_forwarder
264
release: logsearch
265
consumes:
266
syslog_forwarder: {from: cluster_monitor}
267
properties:
268
syslog_forwarder:
269
config:
270
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stdout.log
271
service: elasticsearch
272
- file: /var/vcap/sys/log/elasticsearch/elasticsearch.stderr.log
273
service: elasticsearch
274
- file: /var/vcap/sys/log/ingestor_syslog/ingestor_syslog.stdout.log
275
service: ingestor
276
- file: /var/vcap/sys/log/ingestor_syslog/ingestor_syslog.stderr.log
277
service: ingestor
278
- name: ls-router
279
azs:
280
- z4
281
instances: 1
282
vm_type: small
283
stemcell: default
284
networks:
285
- name: default
286
static_ips:
287
- ((router_ip))
288
# default: [dns, gateway]
289
# - name: vip
290
# static_ips: [34.196.20.46]
291
jobs:
292
- name: haproxy
293
release: logsearch
294
consumes:
295
elasticsearch: {from: elasticsearch_master}
296
ingestor: {from: ingestor_link}
297
kibana: {from: kibana_link}
298
syslog_forwarder: {from: cluster_monitor}
299
properties:
300
inbound_port:
301
https: 4443
302
- name: route_registrar
303
release: logsearch-for-cloudfoundry
304
consumes:
305
nats: {from: nats, deployment: paasta}
306
properties:
307
route_registrar:
308
routes:
309
- name: kibana
310
port: 80
311
registration_interval: 60s
312
uris:
313
- "logs.((system_domain))"
314
- name: elastic
315
port: 9200
316
registration_interval: 60s
317
uris:
318
- "elastic.((system_domain))"
319
320
321
variables:
322
- name: kibana_oauth2_client_secret
323
type: password
324
- name: firehose_client_secret
325
type: password
326
327
releases:
328
- name: logsearch
329
url: file:///home/((inception_os_user_name))/workspace/paasta-4.0/release/monitoring/logsearch-boshrelease-209.0.1.tgz
330
version: "latest"
331
- name: logsearch-for-cloudfoundry
332
url: file:///home/((inception_os_user_name))/workspace/paasta-4.0/release/monitoring/logsearch-for-cloudfoundry-207.0.1.tgz
333
version: "latest"
334
stemcells:
335
- alias: default
336
os: ubuntu-xenial
337
version: "latest"
Copied!
3.2.2.2. logsearch deploy.sh
deploy.sh의 –v 의 inception_os_user_name, router_ip, system_domain 및 director_name을 시스템 상황에 맞게 설정한다. system_domain은 paasta 설치시 설정했던 system_domain을 입력하면 된다. router_ip는 ls-router가 설치된 cloud-config azs에서 정의한 cider값 내의 적당한 IP를 지정한다.
1
Bosh -e {director_name} -d logsearch deploy logsearch-deployment.yml \
2
-v inception_os_user_name=ubuntu \ # home user명 (release file path와 연관성 있음. /home/ubuntu/paasta-4.0 이하 release 파일들의 경로 설정)
3
-v router_ip=10.20.50.34 \ # 배포한 ls-router VM의 private ip
4
-v system_domain={system_domain} #PaaS-TA 설치시 설정한 System Domain
Copied!
deploy.sh을 실행하여 logsearch를 설치 한다.
1
$ cd ~/workspace/paasta-4.0/deployment/service-deployment/logsearch
2
$ deploy.sh
Copied!
설치 완료후 logsearch가 설치 완료 되었음을 확인한다.
1
$ bosh -e {director_name} -d logsearch vms
Copied!

3.2.3. Redis/InfluxDB 설치

PaaS-TA VM 에서 발생되는 MetricData 저장소인 InfluxDB와 통합 Loging시 사용되는 Redis를 설치 한다.
1
$ cd ~/workspace/paasta-4.0/deployment/service-deployment/paasta-influxdb-redis
Copied!
3.2.3.1. redis-influxdb.yml
redis-influxdb.yml에는 influxdb와 redis vm의 명세가 정의되어 있다.
1
---
2
name: redis-influxdb # 서비스 배포이름(필수) bosh deployments 로 확인 가능한 이름
3
4
addons:
5
- name: bpm
6
jobs:
7
- name: bpm
8
release: bpm
9
10
stemcells:
11
- alias: default
12
os: ubuntu-xenial
13
version: latest
14
15
releases:
16
- name: bpm
17
sha1: 0845cccca348c6988debba3084b5d65fa7ca7fa9
18
url: file:///home/((inception_os_user_name))/workspace/paasta-4.0/release/paasta/bpm-0.13.0-ubuntu-xenial-97.28-20181023-211102-981313842.tgz
19
version: 0.13.0
20
- name: redis
21
version: 14.0.1
22
url: file:///home/((inception_os_user_name))/workspace/paasta-4.0/release/service/redis-14.0.1.tgz
23
sha1: fd4a6107e1fb8aca1d551054d8bc07e4f53ddf05
24
- name: influxdb
25
version: latest
26
url: file:///home/((inception_os_user_name))/workspace/paasta-4.0/release/service/influxdb.tgz
27
sha1: 2337d1f26f46100b8d438b50b71e300941da74a2
28
29
30
instance_groups:
31
- name: redis
32
azs: [z4]
33
instances: 1
34
vm_type: small
35
stemcell: default
36
persistent_disk: 10240
37
networks:
38
- name: default
39
# default: [dns, gateway]
40
static_ips:
41
- ((redis_ip))
42
# - name: vip
43
# static_ips: [xxx.xxx.xxx.xxx]
44
jobs:
45
- name: redis
46
release: redis
47
properties:
48
password: ((redis_password))
49
- name: sanity-tests
50
azs: [z4]
51
instances: 1
52
lifecycle: errand
53
vm_type: small
54
stemcell: default
55
networks: [{name: default}]
56
jobs:
57
- name: sanity-tests
58
release: redis
59
60
- name: influxdb
61
azs: [z5]
62
instances: 1
63
vm_type: large
64
stemcell: default
65
persistent_disk_type: 50GB
66
networks:
67
- name: default
68
# default: [dns, gateway]
69
static_ips:
70
- ((influxdb_ip))
71
# - name: vip
72
# static_ips: [xxx.xxx.xxx.xxx]
73
74
jobs:
75
- name: influxdb
76
release: influxdb
77
properties:
78
influxdb:
79
database: cf_metric_db #InfluxDB default database
80
user: root #admin account
81
password: root #admin password
82
replication: 1
83
ips: 127.0.0.1 #local I2
84
- name: chronograf
85
release: influxdb
86
87
variables:
88
- name: redis_password
89
type: password
90
91
92
update:
93
canaries: 1
94
canary_watch_time: 1000-180000
95
max_in_flight: 1
96
serial: true
97
update_watch_time: 1000-180000
Copied!
3.2.3.2. redis-influxdb deploy.sh
deploy.sh의 –v 의 inception_os_user_name, router_ip, system_domain 및 director_name을 시스템 상황에 맞게 설정한다. system_domain은 paasta 설치시 설정했던 system_domain을 입력하면 된다. router_ip는 ls-router가 설치된 azs에서 정의한 cider값의 적당한 IP를 지정한다.
1
bosh -e {director_name} -d redis-influxdb deploy redis-influxdb.yml \
2
-v inception_os_user_name=ubuntu \ # home user명 (release file path와 연관성 있음. /home/ubuntu/paasta-4.0 이하 release 파일들의 경로 설정)
3
-v redis_ip=10.20.40.11 \ # 배포할 redis VM의 private ip
4
-v influxdb_ip=10.20.50.11 \ # 배포할 influxdb VM의 private ip
5
-v redis_password=password # Redis password
Copied!
deploy.sh을 실행하여 redis-influxdb를 설치 한다.
1
$ cd ~/workspace/paasta-4.0/deployment/service-deployment/paasta-influxdb-redis
2
$ deploy.sh
Copied!
설치 완료후 redis-influxdb가 설치 완료 되었음을 확인한다.
1
$ bosh -e {director_name} -d redis-influxdb vms
Copied!

3.2.4. IaaS/PaaS 통합 Monitoring 설치

git 설치
golang 설치
  • monasca-server에서 아래 URL에서 자신에 OS에 맞는 go SDK를 다운로드 받아 설치 한다. (1.9.x 이상)
3.2.4.1 PaaS Database 생성
위에서 구성한 Monasca-Server가 정상적으로 설치 되어 있다면 설치된 Monasca-Server에 접속하여 PaastaMonitoring Database를 생성한다.
1
$ mysql –u root –p # mysql 로그인
2
$ CREATE DATABASE IF NOT EXISTS PaastaMonitoring CHARACTER SET utf8 COLLATE utf8_general_ci;
Copied!
3.2.4.2 소스 다운로드
위에서 구성한 Monasca Server에서 IaaS-PaaS-Monitoring 소스를 다운 받는다.
1
$ cd ~/workspace/
2
$ git clone https://github.com/PaaS-TA/PaaS-TA-Monitoring
Copied!
paasta-monitoring golang 외부 Library를 설치 한다.
1
$ cd ~/workspace/PaaS-TA-Monitoring/paasta-monitoring-batch
2
$ ./install.sh
Copied!
3.2.4.3. paasta-monitoring-batch 설치 및 실행
paasta-monitoring batch는 Bosh, PaaS-TA VM, container 모니터링 및 PaaS-TA Application Container Autoscaling을 수행한다. paasta-monitoring-batch config정보를 시스템 상황에 맞게 수정한다.
1
$ cd ~/workspace/ PaaS-TA-Monitoring
2
$ cd ~/workspace/paasta-monitoring-batch/src/kr/paasta/monitoring-batch
3
$ vi config.ini
Copied!
config.ini파일은 paasta-monitoring-batch가 실행되는 환경 정보이다.
config.ini
1
#Web Server Port
2
server.port = 9999 # Batch 서버 Port
3
4
#InfluxDB
5
influx.user =
6
influx.pass =
7
influx.cf_measurement = cf_metrics # paasta metricData measurement(수정 필요없음)
8
influx.cf_process_measurement = cf_process_metrics # paasta process metricData measurement(수정 필요없음)
9
influx.url =http://xxx.xxx.xxx.xxx:8086 # PaaS metricDB URL(앞에서 설치한 influxdb IP)
10
11
#Metric DB Name
12
influx.paasta.db_name=cf_metric_db # paasta metricDB(influxDB) database (수정 필요없음)
13
influx.bosh.db_name=bosh_metric_db # bosh metricDB(influxDB) database (수정 필요없음)
14
influx.container.db_name=container_metric_db # container metricDB(influxDB) database (수정 필요없음)
15
16
influx.defaultTimeRange =130s
17
18
#MonitoringDB 접속 정보
19
monitoring.db.type=mysql # PaaS-TA Monitoring Database Type
20
#PaastaMonitoring 먼저 생성 해야함.
21
monitoring.db.dbname=PaastaMonitoring # PaaS-TA Monitoring Database Name
22
monitoring.db.username=root # PaaS-TA Monitoring Database user(root필요)
23
monitoring.db.password=xxxx # PaaS-TA Monitoring Database user password
24
monitoring.db.host=xxx.xxx.xxx.xxx # PaaS-TA Monitoring Database IP
25
monitoring.db.port=3306 # PaaS-TA Monitoring Database port
26
27
# bosh
28
bosh.api.url=115.68.151.189:25555 # Bosh Url (PaaS-TA를 설치한 Bosh IP/port)
29
bosh.ip=115.68.151.189 # Bosh IP (PaaS-TA를 설치한 Bosh IP)
30
bosh.admin=admin # bosh admin ID
31
bosh.password=m89jsip6ld1zkb0uwyuo # bosh admin Password (bosh 설치 생성된 creds.yml의 admin_password 참조)
32
bosh.cf.deployment.name=paasta # PaaS-TA Deployment Name (수정 필요없음)
33
bosh.cell.name.prefix=cell # Paas-TA Cell 명 (수정 필요없음)
34
bosh.service.name=bosh # Bosh Service 명 (수정 필요없음)
35
36
mail.smtp.host=localhost #smtp ip(monasca-server 설치시 같이 설치됨)
37
mail.smtp.port=25 #smtp port
38
[email protected] # smtp server ID
39
mail.sender.password=nuxokzkviwfpjwqg # smtp server Password
40
mail.resource.url=http://xxx.xxx.xxx.xxx:8080 # monitoring-web URL(IaaS-PaaS 모니터링이 설치된 VM public IP)
41
mail.alarm.send=true # Alarm 발생시 메일 전송유무
42
mail.tls.send=false # smtp 세 서버 인증 Mode가 TlS
43
44
batch.interval.second=60 #Monitoring Batch 실행 주기
45
gmt.time.hour.gap=0 #utc time zone과 Monitoring Server local time zone과의 시간 차이
46
47
#redis
48
redis.addr=xxx.xxx.xxx.xxx:6379 # redis IP(앞에서 설치한 redis IP)
49
redis.password=password # redis Password
50
redis.db=0
51
52
user.portal.alarm.interval=60 #사용자포털 알람 재발송 주기(분)
53
54
#cf-client
55
cf.client.api_address=http://api.{system_domain} # api.{system_domain} PaaS-TA설치된 System domain
56
cf.client.username=admin # PaaS-TA admin ID
57
cf.client.password=admin # PaaS-TA admin password
Copied!
config.ini가 모두 수정 되었으면 MonitoringBatch를 실행한다.
1
$ cd ~/workspace/PaaS-TA-Monitoring/paasta-monitoring-batch
2
$ nohup ./batch_run.sh &
Copied!
3.2.4.4. iaas-paas-monitoring-web 설치 및 실행
iaas-paas-monitoring-management는 IaaS/PaaS 통함 모니터링 Dashboard 및 알람정책 설정, 알람 관리등의 기능을 제공한다.
1
$ cd ~/workspace/ PaaS-TA-Monitoring
2
$ cd ~/workspace/PaaS-TA-Monitoring/iaas-paasta-monitoring-management/src/kr/paasta/monitoring
3
$ vi config.ini
Copied!
config.ini파일은 paasta-monitoring-batch가 실행되는 환경 정보이다. iaas-paas-monitoring-web config정보를 시스템 상황에 맞게 수정한다.
config.ini
1
server.url = http://127.0.0.1:8080
2
server.port = 8080 #monitoring-web port
3
4
#모니터링 시스템 사용 옵션 정보
5
#( IaaS : IaaS 만 사용 , PaaS : PaaS 만 사용, ALL : IaaS, PaaS 모두 사용)
6
system.monitoring.type=ALL
7
8
#redis
9
redis.addr=10.20.40.11:6379 #Redis endpoint URL
10
redis.password=password #Redis password
11
redis.db=0
12
13
################## IaaS Config
14
# Monasca RDB 접속 정보(IaaS 설정)
15
iaas.monitoring.db.type=mysql #IaaS Monitoring config DB Type
16
iaas.monitoring.db.dbname=mon #IaaS Monitoring database name
17
iaas.monitoring.db.username=root #IaaS Monitoring database user_name
18
iaas.monitoring.db.password=password #IaaS Monitoring database user password
19
iaas.monitoring.db.host=115.68.151.184 #IaaS Monitoring database IP
20
iaas.monitoring.db.port=3306 #IaaS Monitoring database port
21
22
# InfluxDB
23
iaas.metric.db.username =
24
iaas.metric.db.password =
25
iaas.metric.db.url=http://xxx.xxx.xxx.xxx:8086 # IaaS metricDB URL(앞에서 설치한 influxdb IP)
26
iaas.metric.db.name=mon # IaaS metricDB(influxDB) database (수정 필요없음)
27
28
# Openstack Admin
29
default.region=RegionOne #Openstack Region Name
30
default.domain=default
31
default.username=admin #default domain admin user
32
default.password=cfmonit #default domain admin password
33
default.tenant_name=admin #default domain admin user
34
default.tenant_id=61e66f7d847e4951aa38452fe74c93eb #default domain admin project id(Horizon>identity>project 에서 확인)
35
identity.endpoint=http://115.68.151.175:5000/v3 #openstack keystone api endpoint
36
keystone.url=http://115.68.151.175:35357/v3 #openstack keystone api endpoint
37
38
# Monasca Api
39
monasca.url=http://115.68.151.184:8020/v2.0 #Monasca-server api IP:port
40
monasca.connect.timeout=60
41
monasca.secure.tls=false
42
43
# Openstack Nova
44
nova.target.url=http://115.68.151.175:8774 #Openstack(Controller Node) nova ip:port
45
nova.target.version=v2.1 #Openstack nova api Version
46
nova.target.tenant_id=61e66f7d847e4951aa38452fe74c93eb #default domain admin project id(Horizon>identity>project 에서 확인)
47
48
# Openstack Keystone
49
keystone.target.url=http://115.68.151.175:35357 #openstack keystone api endpoint
50
keystone.target.version=v3 #openstack keystone api version
51
52
# Openstack Neutron
53
neutron.target.url=http://115.68.151.175:9696 #openstack neutron api endpoint
54
neutron.target.version=v2.0 #openstack neutron api version
55
56
# Openstack Cinder
57
cinder.target.url=http://115.68.151.175:8776 #openstack cinder api endpoint
58
cinder.target.version=v2 #openstack cinder api version
59
60
# Openstack Glance
61
glance.target.url=http://115.68.151.175:9191 #openstack glance api endpoint
62
glance.target.version=v2 #openstack glance api version
63
64
# RabbitMQ
65
rabbitmq.user=openstack #openstack rabbitmq user name
66
rabbitmq.pass=cfmonit #openstack rabbitmq user password
67
rabbitmq.ip=115.68.151.175 #openstack(controller Node) rabbitmq ip
68
rabbitmq.port=15672 #openstack(controller Node) rabbitmq port
69
[email protected] #openstack(controller Node) rabbitmq target Node
70
71
# Elasticsearch URL
72
iaas.elastic.url=115.68.151.184:9200 #IaaS Log Repository(elasticSearch) url
73
74
################## PaaS Config
75
76
paas.elastic.url=elastic.115.68.151.185.xip.io #PaaS Log Repository(elasticSearch) url
77
78
79
# PaaS RDB 접속 정보
80
paas.monitoring.db.type=mysql # PaaS-TA Monitoring Database Type
81
paas.monitoring.db.dbname=PaastaMonitoring # PaaS-TA Monitoring Database Name
82
paas.monitoring.db.username=root # PaaS-TA Monitoring Database user(root필요)
83
paas.monitoring.db.password=password # PaaS-TA Monitoring Database user password
84
paas.monitoring.db.host=115.68.151.184 # PaaS-TA Monitoring Database IP
85
paas.monitoring.db.port=3306 # PaaS-TA Monitoring Database port
86
87
paas.metric.db.username =
88
paas.metric.db.password =
89
paas.metric.db.url = http://xxx.xxx.xxx.xxx:8086 # PaaS metricDB URL(앞에서 설치한 influxdb IP)
90
paas.metric.db.name.paasta=cf_metric_db # paasta metricDB(influxDB) database (수정 필요없음)
91
paas.metric.db.name.bosh=bosh_metric_db # bosh metricDB(influxDB) database (수정 필요없음)
92
paas.metric.db.name.container=container_metric_db # container metricDB(influxDB) database (수정 필요없음)
93
94
95
# Bosh Info
96
bosh.count=1 #PaaS Bosh Count(수정 필요없음)
97
bosh.0.name=micro-bosh #PaaS Bosh Director name
98
bosh.0.ip=10.20.0.7 #PaaS Bosh VM IP
99
bosh.0.deployname=bosh #PaaS Bosh Deployment name(수정 필요없음)
100
101
# BOSH client
102
103
bosh.client.api.address=https://10.20.0.7:25555 #PaaS Bosh Director endpoint
104
bosh.client.api.username=admin #PaaS Bosh admin name
105
bosh.client.api.password=j2kpbpmzfwgi6gg6pbqc #PaaS Bosh admin password
106
107
#disk mount point
108
disk.mount.point=/,/var/vcap/data
109
disk./.resp.json.name=/
110
disk./var/vcap/data.resp.json.name=data
111
112
#disk io mount point
113
disk.io.mount.point=/,/var/vcap/data
114
disk.io./.read.json.name=/-read
115
disk.io./.write.json.name=/-write
116
disk.io./var/vcap/data.read.json.name=data-read
117
disk.io./var/vcap/data.write.json.name=data-write
118
119
#network monitor item
120
network.monitor.item=eth0
121
122
# Time difference(hour)
123
gmt.time.gap=0 #utc time zone과 Monitoring Server local time zone과의 시간 차이
124
125
#cfProvider
126
paas.cf.client.apiaddress=http://api.{system_domain} # api.{system_domain} PaaS-TA설치된 System domain
127
paas.cf.client.skipsslvalidation=true
Copied!
config.ini가 모두 수정 되었으면 iaas-paas-monitoring-web을 실행한다.
1
$ cd ~/workspace/PaaS-TA-Monitoring/iaas-paasta-monitoring-managemen
2
$ nohup ./run.sh &
Copied!

3.3.1.5. 통합 monitoring dashboard접속

http://{monitoring-web-ip}:8080 에 접속하여 회원 가입 후 Main Dashboard에 접속한다.
Login 화면에서 회원 가입 버튼을 클릭한다.
member_info에는 사용자가 사용할 ID/PWD를 입력한다. iaas-info에는 Openstack admin 권한의 계정을 입력한다. paas-info에는 PaaS-TA admin 권한의 계정을 입력한다. paasta deploy시 입력한 admin/pwd를 입력해야 한다. 입력후 [인증수행]를 실행후 Joing버튼을 클릭하면 회원가입이 완료된다.
Last modified 1yr ago