SlideShare a Scribd company logo
1 of 43
Download to read offline
Custom DevOps
Monitoring System in MelOn
(InfluxDB + Telegraf+ Grafana)
유승민 (Seungmin yu)
Neowiz Games (2006 ~ 2012)
Publishing Game DBA
발표자 소개
유승민 (Seungmin yu)
Loen Entertainment (2013 ~ )
MelOn Business division IT Infra Team
DBA / DA
smyoo@iloen.com
Smyoo0316@gmail.com
발표자 소개
Custom DevOps Monitoring System?
InfluxData 社 에서 정의한 Use Cases
(with InfluxDB + Telegraf + Chronograf + kapacitor)
출처 : https://www.influxdata.com/
Development
Operations
What is DevOps?
DevOps is a culture, movement or practice that emphasizes the collaboration and
communication of both software developers and other IT professionals while automating
the process of software delivery and infrastructure changes.
<From Wikipedia>
What is DevOps?
It aims at establishing a culture and environment where building, testing, and releasing
software can happen rapidly, frequently, and more reliably
<From Wikipedia>
What is DevOps?
이미지 출처 : http://www.smeeptech.com/
Dev : Developer (변화)
Ops : SE, DBA (안정성)
“동료의식, 소통, 공유, 그리고 Tools”
What is DevOps?
 DevOps스러운 사람 : 소통과 협력이 잘되는 사람
 DevOps스러운 툴 : 소통과 협력하는데 유용한 툴
“DevOps스러운 Monitoring System은 무엇인가.”
DevOps 스럽다 (주관적 정의)
DevOps스러운 Monitoring System
이미지 출처 : http://www.smeeptech.com/
Rapidly, Frequently, Reliably
하게 서비스함에 있어서 유용한가.
신속한 정확한 모니터링  빠른 개선점 도출 및 안정성 확보
보고자 하는 것들. 그리고 현실적인 문제.
<출처 : https://www.influxdata.com>
현실적인 문제 (Rapidly, Frequently, Reliably 하기 위해 해결해야 할 문제들)
저장
수집
시각화
수집 대상이 다양하다.
쉽게 수집 가능해야 한다.
‘보고 싶은 METRIC 수 X 서버 수’ 데이터가 많다.
고성능 Write & Query, 저장공간 효율이 중요하다.
쉬운 사용성 및 Customizability가 중요하다.
보고 싶은 View만 효율적으로 볼 수 있어야 한다.
Custom DevOps Monitoring System in MelOn
저장
수집
시각화
Telegraf
현실적인 문제 – 세상이 좋아 졌다
여기서 잠깐, 비슷하지만 용도가 다른 것 (ELK Stack)
Telegraf VS
#METRIC #LOG
Easy
Powerful
Beuatiful
InfluxDB (저장) +Telegraf(수집) + Grafana (시각화)
Easy Installation
# InfluxDB Installation
$ sudo yum install https://s3.amazonaws.com/influxdb/influxdb-1.0.1.x86_64.rpm
$ sudo service influxdb start
# Telegraf Installation
$ sudo yum install https://dl.influxdata.com/telegraf/releases/telegraf-1.0.1.x86_64.rpm
$ .. 약간의 설정 ..
$ sudo service telegraf start
# Grafana Installation
$ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.1-1470047149.x86_64.rpm
$ sudo service grafana-server start
InfluxDB - 주요 특징
High Performance write and query metric
Written entirely in Go (no external dependencies)
SQL-like query language
Retention policies
Continuous queries (downsampling)
High availability
Web admin
InfluxDB – Simple Data Insert
$ curl -i -XPOST 'http://localhost:8086/write?db= DATABASE_NAME' --data-binary
'MEASUREMENT_NAME,TAG_NAME1=TAG_VALUE1,TAG_NAME2=TAG_VALUE2 (공백)
FIELD_NAME1=FIELD_VALUE1,FIELD_NAME2=FIELD_VALUE2'
# 입력 예시
curl -i -XPOST 'http://localhost:8086/write?db=testdb' --data-binary 'aztalk,chnl_name=아이유
 생중계 채널 connection_cnt=213444,heart_cnt=123,msg_cnt=84759'
DATABASE
MEASURMENT  table
TAG  Indexed column
FIELD  Not indexed column
InfluxDB – SQL-like query language (InfluxQL)
[root@testdb ~]$ influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 1.0.0
InfluxDB shell version: 1.0.0
>
> show databases
name: databases
---------------
name
_internal
testdb
> use testdb
> show measurements
name: measurements
------------------
name
aztalk
>
> select * from aztalk;
name: aztalk
------------
time chnl_name connection_cnt heart_cnt msg_cnt
1462256721282477897 아이유 생중계 채널 12341 123 84759
1462256726539652308 아이유 생중계 채널 12341 123 84759
1462256727816872582 아이유 생중계 채널 12341 123 84759
1462256728879818970 아이유 생중계 채널 12341 123 84759
1462256729993665031 아이유 생중계 채널 12341 123 84759
1462256731026852953 아이유 생중계 채널 12341 123 84759
1462257207899082445 아이유 생중계 채널 123463 123 84759
InfluxDB – 데이터 보관 주기 (Retention Policy)
> SHOW DATABASES
name: databases
---------------
name
_internal
mon
oracle
mysql
memcached
> CREATE RETENTION POLICY realtime ON oracle DURATION 30d REPLICATION 1 DEFAULT
> CREATE RETENTION POLICY Retention_1y_ds10s ON oracle DURATION 365d REPLICATION 1
> CREATE RETENTION POLICY Retention_5y_ds1min ON oracle DURATION 1825d REPLICATION 1
> DROP RETENTION POLICY autogen ON oracle
>
> SHOW RETENTION POLICIES ON oracle
name duration shardGroupDuration replicaN default
realtime 720h0m0s 24h0m0s 1 true
Retention_1y_ds10s 8760h0m0s 168h0m0s 1 false
Retention_5y_ds1min 43800h0m0s 168h0m0s 1 false
InfluxDB – Continuous Query (CQ)
CREATE CONTINUOUS QUERY cq_1min_mysql
ON test_database
BEGIN
select
mean(commands_delete) as commands_delete,
mean(commands_insert) as commands_insert,
mean(commands_update) as commands_update,
mean(commands_select) as commands_select
INTO Retention_5y_ds1min.mysql /* Retention_5y_ds1min 은 미리 정의된 Retention Policy 이름 */
FROM realtime.mysql /* realtime 도 미리 정의된 Retention Policy 이름 */
GROUP BY time(1m),host,"server" /* 다운샘플링 1분, TAG 는 GROUP BY 절에 이어서 붙여 줌. 예약어(server)는 쌍 따옴표로 감싸줌 */
END
# 생성된 CONTINUOUS QUERY 확인
SHOW CONTINUOUS QUERIES
1초 마다 체크하여 다운샘플링 결과를 따로 저장.
Background 로 자동 수행되며 체크 주기는 설정 가
능. (/etc/influxdb/influxdb.conf)
Oracle database 의 MVIEW 와 유사한 개념.
InfluxDB - High Performance(for ONLY time-series data)
# InfluxDB v1.0.0 VS Cassandra v3.7
5.3x write throughput
9.3x less disk space
up to 168x faster response times
# InfluxDB v1.0.0 VS Elasticsearch v5.0.0-alpha5
8x write throughput
4x less disk space
4x to 10x faster response times
# InfluxDB v1.0.0 VS MongoDB v3.3.11
27x write throughput
84x less disk space
same
LSM Tree  TSM Tree
InfluxDB – 인기 1위 (시계열DB계의 멜론차트)
InfluxDB – 실제 운영 모니터링
<모니터링 서버(InfluxDB서버) SPEC>
 Model : HP DL360p G8
 CPU : E5-2630 @ 2.30GHz * 2 ( 6 core )
 MEMORY : 32G
 DISK : 300GB X 4 , 900GB X 2
Telegraf – 기본구성
[AGENT]
Input
Plugins
Output
Plugins
$ cd /etc/telegraf
$ telegraf -sample-config -input-filter cpu:disk:mem:net:mysql -output-filter influxdb >
telegraf.conf
$ vi /etc/telegraf/telegraf.conf
Telegraf – 수집 가능한 것들 (input plugins)
Linux system
Apache
Cloudwatch
Docker
Jolokia(JMX)
Kafka
Rabbitmq
Zookeeper
Mongodb
Cassandra
Couchbase
Elasticsearch
Memcached
Radis
Influxdb
Mysql
Postgresql
SQL server
– 하고 있는 것들
– 앞으로 할 것들
Telegraf – 가능한 저장소 (output plugins)
InfluxDB
Graphite
OpenTSDB
Prometheus
Elasticsearch
Kafka
File
AMQP
AWS Kinesis
AWS CloudWatch
Datadog
Graylog
Librato
MQTT
Telegraf – 처리 성능
 1초 마다 수집 및 InfluxDB로 전송
 수집 대상 : cpu, disk, kernel, mem, net, netstat, system, mysql(all global status, slave status)
수집 – 처리 성능
 1초 마다 수집 및 InfluxDB로 전송
 수집 대상 : cpu, disk, kernel, mem, net, netstat, system, mysql(all global status, slave status)
Grafana – DB Monitoring Main in MelOn
Grafana – 다양한 Panel들
Grafana – Template 기능과 InfluxDB의 RP & CQ 의 조화
 realtime : 1초 간격 수집
 Retention_1y_ds10s : realtime으로부터 downsampling 10초
 Retention_5y_ds1min : realtime으로부터 downsampling 1분
특정 시점 또는 성능테스트 측정 결과를 스냅샷으로 저장 후 필요한 시점에 참고.
Grafana – Snapshot
Use Case in MelOn (mysql)
# 궁금한 것이 있으면 일단 그려 본다.
서버마다 slave 지연 정도가 다른 이유를 innodb buffer pool 과의 상관관계를 통해 확인해보는 예시.
Use Case in MelOn (memcached)
# 잘 모르는 것도 일단 수집하고 그려본다.
트래픽이 집중되는 특정 시점에 memcached의 문제가 의심되는 상황.
Telegraf 에 memcached plugin 추가하여 일단 모니터링 데이터 수집하고 대
시보드 생성. 다음 재현 상황에서 원인 발견되어 조치. (conn_yields 튜닝)
Memcached의 주요 모니터링 지표에 대해서 공부하게 됨.
Use Case in MelOn (Oracle, Exadata)
# 성능테스트
DB Replay로 실서비스 환경의 DB트래픽 캡쳐 후
신규서버 2대(RAC)에 재생하여 결과 측정.
양쪽 노드에 부하 재생하다가 1번 노드 shutdown
했을 시 fail-over 확인.
세션 수, SQL트래픽이 실서비스와 동일한지 확인.
Fail-over시 유실되는 DB트래픽이 없는지 확인.
실서비스와 SQL트래픽이 동일하지 않을 경우 원인
파악하여 해결. (네트웍이슈, DB이슈 등등)
SQL트래픽이 실서비스와 거의 동일하게 문제없이
실행되는 상황에서 리소스 사용량 측정 및 비교.
(참고) Telegraf에서 oracle database plugin은 지원하지
않습니다. 자체적으로 수집 agent를 제작하였습니다.
(v$sysstat 및 일부 정보 초단위로 수집)
Use Case in MelOn (Bigdata)
# 적용 중
Telegraf 의 procstat plugin으로 프로세
스별 서버 리소스 사용량 메트릭 수집.
# 테스트 중
jolokia plugin 으로 GC모니터링 예정.
zookeeper, kafka plugin도 활용 예정.
Use Case in MelOn (그외 기타)
# 그 외 활용하고 있는 것
어플리케이션 성능 모니터링 (Jennifer) (by. Dev)
서비스 보안 모니터링 (by. Dev, Ops, 보안담당자)
사내 보안 시스템 관제 (by. 보안담당자)
실시간 생중계 동시접속자 (by. Dev)
# 앞으로 할 것들
Bigdata Infra 모니터링
Jolokia (JMX)
Kafka
Elasticsearch
Zookeeper
어플리케이션 성능 모니터링(Scouter)
등등…
그래서 좋은점
수치에 기반한 명확한 커뮤니케이션으로 신속한 대응
직관에 의존한 경솔한 의심(시스템, 사람)  시간 낭비 발생 (덤으로 동료의 기분 손상 그로 인한 팀웍 손상)
"측정할 수 없으면 관리할 수 없다. (by 피터드러커)"  가능한 수집하고 언제든 모니터링(측정) 할 수 있는 상태를 유지
개발자, DBA, SE 때로는 기획자까지 모두 하나의 대시보드로..
서비스 채널 별로 동접자 수, 채팅 수 그에 따른 관련 시스템 자원 사용량 같이 보고 싶어요.
PUSH발송 시 처리량, 응답률, 랜딩 페이지와 관련된 WAS 및 DB 사용량을 실시간으로 보고 싶어요.
비정상 사용자 모니터링을 위해 개발자, 보안담당자, DBA, SE 모두의 데이터가 필요한데 하나의 VIEW로 보고 싶어요
DevOps in MelOn?
모든 노력에는 성공의 가능성을 극적으로 높여주는 제1원칙이 존재한다. (마셜골드스미스 저, 트리거(trigger)) 중에서
 목수일 : 두 번 측정하고 한 번에 잘라라.
 항해 : 바람이 어디서 불어오는지를 알아라.
 여성패션 : 검은색 드레스를 사라.
 멜론IT본부 : 최고가 되기 위해 서로 돕는다. (오글 주의)
그리고 DevOps스러운 또 다른 툴 (검토 중)
이미지 출처 :
http://www.smeeptech.com/
# InfluxDB+Telegraf+Grafana를 이용한 Monitoring System 만들기
http://www.popit.kr/author/smyoo/
https://www.facebook.com/popitkr/ (Popit 페이스북 페이지)
# DevOps
https://en.wikipedia.org/wiki/DevOps
http://www.slideshare.net/ssuser2f0173/devops-41731364
# InfluxData, Grafana
https://www.influxdata.com/technical-papers/
https://docs.influxdata.com/influxdb/v1.0/
https://docs.influxdata.com/telegraf/v1.0/
http://grafana.org/
참고자료
감사합니다

More Related Content

What's hot

백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술NAVER D2
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화NAVER D2
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술NAVER D2
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현NAVER D2
 
resource on openstack
 resource on openstack resource on openstack
resource on openstackjieun kim
 
Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2
Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2
Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2Andrew Sungjin Kim
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기Ted Won
 
Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법정수 한
 
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.NAVER D2
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기NAVER D2
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020Ji-Woong Choi
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼NAVER D2
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축I Goo Lee
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Ji-Woong Choi
 
[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWSJi-Woong Choi
 
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - Pacemaker제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - PacemakerTommy Lee
 
[252] 증분 처리 플랫폼 cana 개발기
[252] 증분 처리 플랫폼 cana 개발기[252] 증분 처리 플랫폼 cana 개발기
[252] 증분 처리 플랫폼 cana 개발기NAVER D2
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 

What's hot (20)

백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현
 
resource on openstack
 resource on openstack resource on openstack
resource on openstack
 
Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2
Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2
Infiniflux vs influxdb 비교 테스트 결과 2016 12월-v2
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법
 
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
 
[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS
 
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - Pacemaker제3회난공불락 오픈소스 인프라세미나 - Pacemaker
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
 
[252] 증분 처리 플랫폼 cana 개발기
[252] 증분 처리 플랫폼 cana 개발기[252] 증분 처리 플랫폼 cana 개발기
[252] 증분 처리 플랫폼 cana 개발기
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 

Similar to Monitoring System for DevOps - Case of MelOn

Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
Infra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInfra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInho Kang
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기YoungSu Son
 
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)IMQA
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQLI Goo Lee
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료choi kyumin
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)CDIT-HCI
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)Taegil Heo
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)정명훈 Jerry Jeong
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기Yeonhee Kim
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드Jeongsang Baek
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPgDay.Seoul
 

Similar to Monitoring System for DevOps - Case of MelOn (20)

Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
Infra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInfra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and Terraform
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
 

More from Dataya Nolja

How to Study Mathematics for ML
How to Study Mathematics for MLHow to Study Mathematics for ML
How to Study Mathematics for MLDataya Nolja
 
Music Data Start to End
Music Data Start to EndMusic Data Start to End
Music Data Start to EndDataya Nolja
 
Find a Leak Time in the Schedule
Find a Leak Time in the ScheduleFind a Leak Time in the Schedule
Find a Leak Time in the ScheduleDataya Nolja
 
A Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML inA Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML inDataya Nolja
 
Practice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty WorkPractice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty WorkDataya Nolja
 
Predicting People Who May Get off at the Next Station
Predicting People Who May Get off at the Next StationPredicting People Who May Get off at the Next Station
Predicting People Who May Get off at the Next StationDataya Nolja
 
Endless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data CollectingEndless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data CollectingDataya Nolja
 
Log Design Case Study
Log Design Case StudyLog Design Case Study
Log Design Case StudyDataya Nolja
 
Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data SafelyDataya Nolja
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindDataya Nolja
 
Things Happend between JDBC and MySQL
Things Happend between JDBC and MySQLThings Happend between JDBC and MySQL
Things Happend between JDBC and MySQLDataya Nolja
 
Human-Machine Interaction and AI
Human-Machine Interaction and AIHuman-Machine Interaction and AI
Human-Machine Interaction and AIDataya Nolja
 
Julia 0.5 and TensorFlow
Julia 0.5 and TensorFlowJulia 0.5 and TensorFlow
Julia 0.5 and TensorFlowDataya Nolja
 
Zeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyZeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyDataya Nolja
 
Hadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaHadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaDataya Nolja
 
Kakao Bank Powered by Open Sources
Kakao Bank Powered by Open SourcesKakao Bank Powered by Open Sources
Kakao Bank Powered by Open SourcesDataya Nolja
 
Open Source is My Job
Open Source is My JobOpen Source is My Job
Open Source is My JobDataya Nolja
 
Creating Value through Data Analysis
Creating Value through Data AnalysisCreating Value through Data Analysis
Creating Value through Data AnalysisDataya Nolja
 
How to Make Money from Data - Global Cases
How to Make Money from Data - Global CasesHow to Make Money from Data - Global Cases
How to Make Money from Data - Global CasesDataya Nolja
 
Structured Streaming with Apache Spark
Structured Streaming with Apache SparkStructured Streaming with Apache Spark
Structured Streaming with Apache SparkDataya Nolja
 

More from Dataya Nolja (20)

How to Study Mathematics for ML
How to Study Mathematics for MLHow to Study Mathematics for ML
How to Study Mathematics for ML
 
Music Data Start to End
Music Data Start to EndMusic Data Start to End
Music Data Start to End
 
Find a Leak Time in the Schedule
Find a Leak Time in the ScheduleFind a Leak Time in the Schedule
Find a Leak Time in the Schedule
 
A Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML inA Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML in
 
Practice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty WorkPractice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty Work
 
Predicting People Who May Get off at the Next Station
Predicting People Who May Get off at the Next StationPredicting People Who May Get off at the Next Station
Predicting People Who May Get off at the Next Station
 
Endless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data CollectingEndless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data Collecting
 
Log Design Case Study
Log Design Case StudyLog Design Case Study
Log Design Case Study
 
Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data Safely
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in Mind
 
Things Happend between JDBC and MySQL
Things Happend between JDBC and MySQLThings Happend between JDBC and MySQL
Things Happend between JDBC and MySQL
 
Human-Machine Interaction and AI
Human-Machine Interaction and AIHuman-Machine Interaction and AI
Human-Machine Interaction and AI
 
Julia 0.5 and TensorFlow
Julia 0.5 and TensorFlowJulia 0.5 and TensorFlow
Julia 0.5 and TensorFlow
 
Zeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyZeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon Valley
 
Hadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaHadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 Alpha
 
Kakao Bank Powered by Open Sources
Kakao Bank Powered by Open SourcesKakao Bank Powered by Open Sources
Kakao Bank Powered by Open Sources
 
Open Source is My Job
Open Source is My JobOpen Source is My Job
Open Source is My Job
 
Creating Value through Data Analysis
Creating Value through Data AnalysisCreating Value through Data Analysis
Creating Value through Data Analysis
 
How to Make Money from Data - Global Cases
How to Make Money from Data - Global CasesHow to Make Money from Data - Global Cases
How to Make Money from Data - Global Cases
 
Structured Streaming with Apache Spark
Structured Streaming with Apache SparkStructured Streaming with Apache Spark
Structured Streaming with Apache Spark
 

Monitoring System for DevOps - Case of MelOn

  • 1. Custom DevOps Monitoring System in MelOn (InfluxDB + Telegraf+ Grafana)
  • 2. 유승민 (Seungmin yu) Neowiz Games (2006 ~ 2012) Publishing Game DBA 발표자 소개
  • 3. 유승민 (Seungmin yu) Loen Entertainment (2013 ~ ) MelOn Business division IT Infra Team DBA / DA smyoo@iloen.com Smyoo0316@gmail.com 발표자 소개
  • 4. Custom DevOps Monitoring System? InfluxData 社 에서 정의한 Use Cases (with InfluxDB + Telegraf + Chronograf + kapacitor) 출처 : https://www.influxdata.com/
  • 6. DevOps is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other IT professionals while automating the process of software delivery and infrastructure changes. <From Wikipedia> What is DevOps?
  • 7. It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably <From Wikipedia> What is DevOps? 이미지 출처 : http://www.smeeptech.com/
  • 8. Dev : Developer (변화) Ops : SE, DBA (안정성) “동료의식, 소통, 공유, 그리고 Tools” What is DevOps?
  • 9.  DevOps스러운 사람 : 소통과 협력이 잘되는 사람  DevOps스러운 툴 : 소통과 협력하는데 유용한 툴 “DevOps스러운 Monitoring System은 무엇인가.” DevOps 스럽다 (주관적 정의)
  • 10. DevOps스러운 Monitoring System 이미지 출처 : http://www.smeeptech.com/ Rapidly, Frequently, Reliably 하게 서비스함에 있어서 유용한가. 신속한 정확한 모니터링  빠른 개선점 도출 및 안정성 확보
  • 11. 보고자 하는 것들. 그리고 현실적인 문제. <출처 : https://www.influxdata.com>
  • 12. 현실적인 문제 (Rapidly, Frequently, Reliably 하기 위해 해결해야 할 문제들) 저장 수집 시각화 수집 대상이 다양하다. 쉽게 수집 가능해야 한다. ‘보고 싶은 METRIC 수 X 서버 수’ 데이터가 많다. 고성능 Write & Query, 저장공간 효율이 중요하다. 쉬운 사용성 및 Customizability가 중요하다. 보고 싶은 View만 효율적으로 볼 수 있어야 한다.
  • 13. Custom DevOps Monitoring System in MelOn 저장 수집 시각화 Telegraf 현실적인 문제 – 세상이 좋아 졌다
  • 14. 여기서 잠깐, 비슷하지만 용도가 다른 것 (ELK Stack) Telegraf VS #METRIC #LOG
  • 16. Easy Installation # InfluxDB Installation $ sudo yum install https://s3.amazonaws.com/influxdb/influxdb-1.0.1.x86_64.rpm $ sudo service influxdb start # Telegraf Installation $ sudo yum install https://dl.influxdata.com/telegraf/releases/telegraf-1.0.1.x86_64.rpm $ .. 약간의 설정 .. $ sudo service telegraf start # Grafana Installation $ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.1-1470047149.x86_64.rpm $ sudo service grafana-server start
  • 17. InfluxDB - 주요 특징 High Performance write and query metric Written entirely in Go (no external dependencies) SQL-like query language Retention policies Continuous queries (downsampling) High availability Web admin
  • 18. InfluxDB – Simple Data Insert $ curl -i -XPOST 'http://localhost:8086/write?db= DATABASE_NAME' --data-binary 'MEASUREMENT_NAME,TAG_NAME1=TAG_VALUE1,TAG_NAME2=TAG_VALUE2 (공백) FIELD_NAME1=FIELD_VALUE1,FIELD_NAME2=FIELD_VALUE2' # 입력 예시 curl -i -XPOST 'http://localhost:8086/write?db=testdb' --data-binary 'aztalk,chnl_name=아이유 생중계 채널 connection_cnt=213444,heart_cnt=123,msg_cnt=84759' DATABASE MEASURMENT  table TAG  Indexed column FIELD  Not indexed column
  • 19. InfluxDB – SQL-like query language (InfluxQL) [root@testdb ~]$ influx Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring. Connected to http://localhost:8086 version 1.0.0 InfluxDB shell version: 1.0.0 > > show databases name: databases --------------- name _internal testdb > use testdb > show measurements name: measurements ------------------ name aztalk > > select * from aztalk; name: aztalk ------------ time chnl_name connection_cnt heart_cnt msg_cnt 1462256721282477897 아이유 생중계 채널 12341 123 84759 1462256726539652308 아이유 생중계 채널 12341 123 84759 1462256727816872582 아이유 생중계 채널 12341 123 84759 1462256728879818970 아이유 생중계 채널 12341 123 84759 1462256729993665031 아이유 생중계 채널 12341 123 84759 1462256731026852953 아이유 생중계 채널 12341 123 84759 1462257207899082445 아이유 생중계 채널 123463 123 84759
  • 20. InfluxDB – 데이터 보관 주기 (Retention Policy) > SHOW DATABASES name: databases --------------- name _internal mon oracle mysql memcached > CREATE RETENTION POLICY realtime ON oracle DURATION 30d REPLICATION 1 DEFAULT > CREATE RETENTION POLICY Retention_1y_ds10s ON oracle DURATION 365d REPLICATION 1 > CREATE RETENTION POLICY Retention_5y_ds1min ON oracle DURATION 1825d REPLICATION 1 > DROP RETENTION POLICY autogen ON oracle > > SHOW RETENTION POLICIES ON oracle name duration shardGroupDuration replicaN default realtime 720h0m0s 24h0m0s 1 true Retention_1y_ds10s 8760h0m0s 168h0m0s 1 false Retention_5y_ds1min 43800h0m0s 168h0m0s 1 false
  • 21. InfluxDB – Continuous Query (CQ) CREATE CONTINUOUS QUERY cq_1min_mysql ON test_database BEGIN select mean(commands_delete) as commands_delete, mean(commands_insert) as commands_insert, mean(commands_update) as commands_update, mean(commands_select) as commands_select INTO Retention_5y_ds1min.mysql /* Retention_5y_ds1min 은 미리 정의된 Retention Policy 이름 */ FROM realtime.mysql /* realtime 도 미리 정의된 Retention Policy 이름 */ GROUP BY time(1m),host,"server" /* 다운샘플링 1분, TAG 는 GROUP BY 절에 이어서 붙여 줌. 예약어(server)는 쌍 따옴표로 감싸줌 */ END # 생성된 CONTINUOUS QUERY 확인 SHOW CONTINUOUS QUERIES 1초 마다 체크하여 다운샘플링 결과를 따로 저장. Background 로 자동 수행되며 체크 주기는 설정 가 능. (/etc/influxdb/influxdb.conf) Oracle database 의 MVIEW 와 유사한 개념.
  • 22. InfluxDB - High Performance(for ONLY time-series data) # InfluxDB v1.0.0 VS Cassandra v3.7 5.3x write throughput 9.3x less disk space up to 168x faster response times # InfluxDB v1.0.0 VS Elasticsearch v5.0.0-alpha5 8x write throughput 4x less disk space 4x to 10x faster response times # InfluxDB v1.0.0 VS MongoDB v3.3.11 27x write throughput 84x less disk space same LSM Tree  TSM Tree
  • 23. InfluxDB – 인기 1위 (시계열DB계의 멜론차트)
  • 24. InfluxDB – 실제 운영 모니터링 <모니터링 서버(InfluxDB서버) SPEC>  Model : HP DL360p G8  CPU : E5-2630 @ 2.30GHz * 2 ( 6 core )  MEMORY : 32G  DISK : 300GB X 4 , 900GB X 2
  • 25. Telegraf – 기본구성 [AGENT] Input Plugins Output Plugins $ cd /etc/telegraf $ telegraf -sample-config -input-filter cpu:disk:mem:net:mysql -output-filter influxdb > telegraf.conf $ vi /etc/telegraf/telegraf.conf
  • 26. Telegraf – 수집 가능한 것들 (input plugins) Linux system Apache Cloudwatch Docker Jolokia(JMX) Kafka Rabbitmq Zookeeper Mongodb Cassandra Couchbase Elasticsearch Memcached Radis Influxdb Mysql Postgresql SQL server – 하고 있는 것들 – 앞으로 할 것들
  • 27. Telegraf – 가능한 저장소 (output plugins) InfluxDB Graphite OpenTSDB Prometheus Elasticsearch Kafka File AMQP AWS Kinesis AWS CloudWatch Datadog Graylog Librato MQTT
  • 28. Telegraf – 처리 성능  1초 마다 수집 및 InfluxDB로 전송  수집 대상 : cpu, disk, kernel, mem, net, netstat, system, mysql(all global status, slave status)
  • 29. 수집 – 처리 성능  1초 마다 수집 및 InfluxDB로 전송  수집 대상 : cpu, disk, kernel, mem, net, netstat, system, mysql(all global status, slave status)
  • 30. Grafana – DB Monitoring Main in MelOn
  • 32. Grafana – Template 기능과 InfluxDB의 RP & CQ 의 조화  realtime : 1초 간격 수집  Retention_1y_ds10s : realtime으로부터 downsampling 10초  Retention_5y_ds1min : realtime으로부터 downsampling 1분
  • 33. 특정 시점 또는 성능테스트 측정 결과를 스냅샷으로 저장 후 필요한 시점에 참고. Grafana – Snapshot
  • 34. Use Case in MelOn (mysql) # 궁금한 것이 있으면 일단 그려 본다. 서버마다 slave 지연 정도가 다른 이유를 innodb buffer pool 과의 상관관계를 통해 확인해보는 예시.
  • 35. Use Case in MelOn (memcached) # 잘 모르는 것도 일단 수집하고 그려본다. 트래픽이 집중되는 특정 시점에 memcached의 문제가 의심되는 상황. Telegraf 에 memcached plugin 추가하여 일단 모니터링 데이터 수집하고 대 시보드 생성. 다음 재현 상황에서 원인 발견되어 조치. (conn_yields 튜닝) Memcached의 주요 모니터링 지표에 대해서 공부하게 됨.
  • 36. Use Case in MelOn (Oracle, Exadata) # 성능테스트 DB Replay로 실서비스 환경의 DB트래픽 캡쳐 후 신규서버 2대(RAC)에 재생하여 결과 측정. 양쪽 노드에 부하 재생하다가 1번 노드 shutdown 했을 시 fail-over 확인. 세션 수, SQL트래픽이 실서비스와 동일한지 확인. Fail-over시 유실되는 DB트래픽이 없는지 확인. 실서비스와 SQL트래픽이 동일하지 않을 경우 원인 파악하여 해결. (네트웍이슈, DB이슈 등등) SQL트래픽이 실서비스와 거의 동일하게 문제없이 실행되는 상황에서 리소스 사용량 측정 및 비교. (참고) Telegraf에서 oracle database plugin은 지원하지 않습니다. 자체적으로 수집 agent를 제작하였습니다. (v$sysstat 및 일부 정보 초단위로 수집)
  • 37. Use Case in MelOn (Bigdata) # 적용 중 Telegraf 의 procstat plugin으로 프로세 스별 서버 리소스 사용량 메트릭 수집. # 테스트 중 jolokia plugin 으로 GC모니터링 예정. zookeeper, kafka plugin도 활용 예정.
  • 38. Use Case in MelOn (그외 기타) # 그 외 활용하고 있는 것 어플리케이션 성능 모니터링 (Jennifer) (by. Dev) 서비스 보안 모니터링 (by. Dev, Ops, 보안담당자) 사내 보안 시스템 관제 (by. 보안담당자) 실시간 생중계 동시접속자 (by. Dev) # 앞으로 할 것들 Bigdata Infra 모니터링 Jolokia (JMX) Kafka Elasticsearch Zookeeper 어플리케이션 성능 모니터링(Scouter) 등등…
  • 39. 그래서 좋은점 수치에 기반한 명확한 커뮤니케이션으로 신속한 대응 직관에 의존한 경솔한 의심(시스템, 사람)  시간 낭비 발생 (덤으로 동료의 기분 손상 그로 인한 팀웍 손상) "측정할 수 없으면 관리할 수 없다. (by 피터드러커)"  가능한 수집하고 언제든 모니터링(측정) 할 수 있는 상태를 유지 개발자, DBA, SE 때로는 기획자까지 모두 하나의 대시보드로.. 서비스 채널 별로 동접자 수, 채팅 수 그에 따른 관련 시스템 자원 사용량 같이 보고 싶어요. PUSH발송 시 처리량, 응답률, 랜딩 페이지와 관련된 WAS 및 DB 사용량을 실시간으로 보고 싶어요. 비정상 사용자 모니터링을 위해 개발자, 보안담당자, DBA, SE 모두의 데이터가 필요한데 하나의 VIEW로 보고 싶어요
  • 40. DevOps in MelOn? 모든 노력에는 성공의 가능성을 극적으로 높여주는 제1원칙이 존재한다. (마셜골드스미스 저, 트리거(trigger)) 중에서  목수일 : 두 번 측정하고 한 번에 잘라라.  항해 : 바람이 어디서 불어오는지를 알아라.  여성패션 : 검은색 드레스를 사라.  멜론IT본부 : 최고가 되기 위해 서로 돕는다. (오글 주의)
  • 41. 그리고 DevOps스러운 또 다른 툴 (검토 중) 이미지 출처 : http://www.smeeptech.com/
  • 42. # InfluxDB+Telegraf+Grafana를 이용한 Monitoring System 만들기 http://www.popit.kr/author/smyoo/ https://www.facebook.com/popitkr/ (Popit 페이스북 페이지) # DevOps https://en.wikipedia.org/wiki/DevOps http://www.slideshare.net/ssuser2f0173/devops-41731364 # InfluxData, Grafana https://www.influxdata.com/technical-papers/ https://docs.influxdata.com/influxdb/v1.0/ https://docs.influxdata.com/telegraf/v1.0/ http://grafana.org/ 참고자료