SlideShare a Scribd company logo
1 of 44
Download to read offline
Backend Server Monitoring and Alarm System
collectd + Graphite + Grafana + Zabbix
2016년 2월 21일, '우리 안의 소리'
한종원 (addnull@gmail.com)
발표 내용
• Monitoring and Alarm 다시 보기
• 요구사항 정리
• 시스템 구축
• collectd / Graphite / Grafana / Zabbix
• Monitoring Metrics
• Alarm Triggers
• Live Demo
3
Monitoring and Alarm 다시 보기
"Money doesn't grow on trees"
4
Monitoring and Alarm 다시 보기
• 질문 !!!
• 그거 왜 하는데?
• 이미 잘되는 다른 서비스나 패키지 붙여 쓰는 거 아닌가?
• 금방 할 수 있지?
• 기능 개발할 시간도 바쁜데...
5
Monitoring and Alarm 다시 보기
• 정말 왜 필요한가?
• 사실 옛날에도 필요했는데... -> 서버가 죽었나 살았나 단순 확인
• 지금은 cloud computing 시대
• 서버 자체가 일시적인 자원(instance)

-> 언제든지, 계획여부와 상관없이 유실될 수 있다.
• 전체 시스템의 장애를 허용하되, 복구를 빠르게 한다.
• 그리고 scalability !!! 전체 시스템의 크기가 매우 유동적
6
Monitoring and Alarm 다시 보기
• 서버(instance)가 유실 또는
자원 필요량이 급격하게
늘어나는걸 대비
• 즉, 지금 모니터링 알람은
단순한 서버의 생사여부
확인을 넘어서, 충분히 잘
동작(서비스)하고 있는지
확인해야한다.

(예: API call response가 300ms

안에 들어오는가?)
7
Monitoring and Alarm 다시 보기
• 그럼, 이미 잘되는 다른 서비스나 패키지 붙여 쓰면 될까?
• 상용 서비스(APM)
• 최소 75 USD per month per 1 host
• 배보다 배꼽이 더 비싼 가격
• Open Source
• 엄청나게 다양한 프로젝트와 툴들이 개발 진행 중 또는
중단되었음
8
Monitoring and Alarm 다시 보기
• 만능 솔루션은 없었다..
• 너무 다양한 요구사항과 use case들 (뒤에서 설명)
• 상당한 노력과 시간 그리고 어쩌면 자본까지 필요
• 기능 개발할 시간도 부족한데, 이거 우선 순위를
어떻게 해야될까?
9
10
요구사항 정리
11
요구사항 정리
• 가격: open source를 최대한 활용해서 무료로 구축
• 측정 metric
• cpu/memory/disk/network usage
• server time offset
• API call response (HTTP status code)
• API call elapsed time
12
요구사항 정리
• (continues) 측정 metric
• AWS 관련
• Estimated billing
• S3: total number/size of object
• SQS: message count (normal queue / dead lettter queue)
• 단, 1개의 all-in-one solution을 쓰기 보다는,

잘 만들어진 작은 module들을 조립해서 구축하자.

(UNIX philosophy: "Do One Thing and Do It Well")
13
시스템 구축
14
시스템 구축
• 전체 system overview
15
시스템 구축
• 각 단계별, 관련된 open source list
• http://graphite.readthedocs.org/en/latest/tools.html
• 무려 70개가 넘는 project가 진행중 또는 중단
16
시스템 구축
• 그래서 제 선택은요..
17
collection collectd
forwarding Carbon(Graphite)
store and indexing Whispher(Graphite)
visualization Grafana, Zabbix
시스템 구축
• 전체 system overview with open source project
18
시스템 구축 :: collectd
19
시스템 구축 :: collectd
• 'collectd' 소개
• 'C'로 작성된, 매우 빠른
metric 수집 툴
• Linux OS에 관련된 거의 모든
metric이 plugin 형태로 제공된다.
• 단, metric 수집만 할 뿐,

그외 forwarding, indexing,

visualization 기능은 없거나
아주 단순한 기능만 있음.
20
시스템 구축 :: collectd
• 설정 예시
21
Hostname MY_HOSTNAME
FQDNLookup true
LoadPlugin syslog
!
<Plugin syslog>
LogLevel info
</Plugin>
!
LoadPlugin battery
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin entropy
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin swap
LoadPlugin users
LoadPlugin write_graphite
<Plugin df>
FSType rootfs
FSType sysfs
FSType proc
FSType devtmpfs
FSType devpts
FSType tmpfs
FSType fusectl
FSType cgroup
IgnoreSelected true
</Plugin>
!
<Plugin write_graphite>
<Node "example">
Host "my_host.com"
Port "2003"
Protocol "udp"
LogSendErrors true
Prefix "collectd/"
Postfix ""
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Node>
</Plugin>
!
<Include "/etc/collectd/collectd.conf.d">
Filter "*.conf"
</Include>
시스템 구축 :: Graphite
22
시스템 구축 :: Graphite
• 'Graphite' 소개
• 3개의 하위
module로 구성
• visualization

기능은 'Grafana'

로 대신함
23
forwardingvisualization
store and indexing
시스템 구축 :: Graphite
24
forwardingvisualization
store and indexing
시스템 구축 :: Graphite
• 'Graphite'의 visualization 기능은 'Grafana'에 비해서 기능이 부족.
25
시스템 구축 :: Grafana
26
시스템 구축 :: Grafana
• 'Grafana' 소개
• 오직 visualzation(dashboard) 기능에 집중한 module
27
시스템 구축 :: Grafana
• 'Grafana'는 'Graphite'의 'whisper' DB와 연동했다.
28
시스템 구축 :: Grafana
• 'Grafana' 소개
• live demo - http://play.grafana.org/
• 'Graphite'의 graph 여러개를 모아서 하나의 dashboard로
구성하기 쉽다.
• real time update 및 play list(여러 dashboard를
번갈아가면서 보여주는 기능) 등 visualization 관련 유용한
기능을 지원
29
시스템 구축 :: Zabbix
30
시스템 구축 :: Zabbix
• 'Zabbix' 소개
• Monitoring과 alarm에
관한 거의 모든 기능을 가진
all-in-one 프로젝트
• 하지만, alarm 기능만
사용하기로 했다.

(다른 기능들은 약간 old fashion)
• 매우 강력한 alarm trigger 

customize 지원
31
Monitoring Metrics
32
Monitoring Metrics
• 'carbon(Graphite)'으로 metrics을 forwarding한다.
• forwarding 방법은 크게 2가지로 나뉜다.
• 일정 시간(예: 10초)동안 기록된 값의 평균/최대/최
소 등 

aggregate value를 저장
• 예: API call count, API response elapsed time
• 최종 1개의 값만 저장 (매번 overwrite)
• 예: CPU/memory/disk/network usage, server time
offset
33
Monitoring Metrics
• 일정 시간(예: 10초)동안 기록된 값의 평균/최대/최소 등 

aggregate value를 저장
34
Monitoring Metrics
• 최종 1개의 값만 저장 (매번 overwrite)
35
Alarm Triggers
36
Alarm Triggers
• Alarm은 필요한 것만 정확하게 전달되어야한다.
37
Alarm Triggers
• 현재 상태를 2가지로 구분한다.
• 'OK' (문제가 없을때), 'PROBLEM' (문제가 있을때)
• 초기 상태(T0)에서 다음 상태(T1)으로 변화는 4가지가 있다.
• 'OK' -> 'OK': 문제없음
• 'OK' -> 'PROBLEM': 문제 최초 발생
• 'PROBLEM' -> 'PROBLEM': 문제가 해결되지 않은 상태에서 문제가 또 발생
• 'PROBLEM' -> 'OK': 문제가 해결
38
Alarm Triggers
• 초기 상태(T0)에서 다음 상태(T1)로 변화 시에 alarm 전달
39
Alarm Triggers
• 너무 빠른 상태 변화는 무시해야한다. (예: 일시적 장애 발생 또는 복구)
40
Alarm Triggers
• 너무 빠른 상태 변화는 무시해야한다. (예: 일시적 장애 발생 또는 복구)
• 'Zabbix' trigger에서는 최근 n번에 대해서 평균/최소/최대
같은 aggregation을 지원한다.
• 예:



"{v0.min(#3)} > 0.1"

'v0' 값의 가장 최근 3개의 값의 최소값이 0.1 초과일 때만 trigger가 발동한다.



"{v0.max(#3)} < 0.05"

'v0' 값의 가장 최근 3개의 값의 최대값이 0.05 미만일 때만 trigger가 발동한다.
41
Alarm Triggers
• "{v0.min(#3)} > 0.1"

"{v0.max(#3)} < 0.05"

42
Alarm Triggers
• 문제가 발생된 상태에서 또 다시 문제가 발생했을 때,

alarm을 전달하는 경우와 아닌 경우를 구분해야한다.
• 예:



API server 내부 logic 오류로 인해서 500 response 발생
-> 발생할 때마다 계속 반복적으로 alarm 전달
Server CPU 사용율이 100%가 계속 유지됨
-> 최초 발생 1회만 전달
43
Live Demo
44
발표 내용 review
• Monitoring and Alarm 다시 보기
• 요구사항 정리
• 시스템 구축
• collectd / Graphite / Grafana / Zabbix
• Monitoring Metrics
• Alarm Triggers
• Live Demo
45

More Related Content

What's hot

[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축Juhong Park
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.Harrison Jung
 
AWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWSAWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWSWoong Seok Kang
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Youngtaek Oh
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선NAVER D2
 
10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기Minyoung Jeong
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스Dan Kang (강동한)
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWSMatthew (정재화)
 
다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화Choonghyun Yang
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)AWSKRUG - AWS한국사용자모임
 
Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planetByeongsu Kang
 
Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개태준 문
 

What's hot (20)

[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.
 
Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화
 
Hystrix소개
Hystrix소개Hystrix소개
Hystrix소개
 
AWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWSAWSKRUG DS 2020/12 - Let the Airflow in AWS
AWSKRUG DS 2020/12 - Let the Airflow in AWS
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
 
06 플리토
06 플리토06 플리토
06 플리토
 
10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
 
03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planet
 
Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개
 

Viewers also liked

Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Ji-Woong Choi
 
Automated Monitoring System for Fall Detection in the Elderly
Automated Monitoring System for Fall Detection in the ElderlyAutomated Monitoring System for Fall Detection in the Elderly
Automated Monitoring System for Fall Detection in the ElderlyCSCJournals
 
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010Robert-Emmanuel Mayssat
 
Bacd zenoss
Bacd zenossBacd zenoss
Bacd zenosske4qqq
 
Monitoring at Cloud Scale
Monitoring at Cloud ScaleMonitoring at Cloud Scale
Monitoring at Cloud ScaleJulien Pivotto
 
Architecture for monitoring applications in Cloud
Architecture for monitoring applications in CloudArchitecture for monitoring applications in Cloud
Architecture for monitoring applications in CloudOnkar Kadam
 
A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node ibmwebspheresoftware
 
Server Monitoring from the Cloud
Server Monitoring from the CloudServer Monitoring from the Cloud
Server Monitoring from the CloudSite24x7
 
collectd & PostgreSQL
collectd & PostgreSQLcollectd & PostgreSQL
collectd & PostgreSQLMark Wong
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다Jongwon Han
 
Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)Ajibola Aiyedogbon
 
Micro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleMicro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleBamdad Dashtban
 
InterConnect2016 Monitoring Nodejs
InterConnect2016 Monitoring NodejsInterConnect2016 Monitoring Nodejs
InterConnect2016 Monitoring NodejsChris Bailey
 
BIBLICAL FALL FEASTS FESTIVALS
BIBLICAL FALL FEASTS FESTIVALSBIBLICAL FALL FEASTS FESTIVALS
BIBLICAL FALL FEASTS FESTIVALShbardiamond
 
Grafana Review
Grafana ReviewGrafana Review
Grafana ReviewSangmo Goo
 
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Seungmin Yu
 
Stop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production SystemsStop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production SystemsBrendan Gregg
 

Viewers also liked (20)

Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
 
Automated Monitoring System for Fall Detection in the Elderly
Automated Monitoring System for Fall Detection in the ElderlyAutomated Monitoring System for Fall Detection in the Elderly
Automated Monitoring System for Fall Detection in the Elderly
 
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
 
Bacd zenoss
Bacd zenossBacd zenoss
Bacd zenoss
 
Monitoring at Cloud Scale
Monitoring at Cloud ScaleMonitoring at Cloud Scale
Monitoring at Cloud Scale
 
Influxdb
InfluxdbInfluxdb
Influxdb
 
Automating AWS with Ansible
Automating AWS with AnsibleAutomating AWS with Ansible
Automating AWS with Ansible
 
Server Monitoring 101
Server Monitoring 101Server Monitoring 101
Server Monitoring 101
 
Architecture for monitoring applications in Cloud
Architecture for monitoring applications in CloudArchitecture for monitoring applications in Cloud
Architecture for monitoring applications in Cloud
 
A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node
 
Server Monitoring from the Cloud
Server Monitoring from the CloudServer Monitoring from the Cloud
Server Monitoring from the Cloud
 
collectd & PostgreSQL
collectd & PostgreSQLcollectd & PostgreSQL
collectd & PostgreSQL
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다
 
Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)
 
Micro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleMicro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and Ansible
 
InterConnect2016 Monitoring Nodejs
InterConnect2016 Monitoring NodejsInterConnect2016 Monitoring Nodejs
InterConnect2016 Monitoring Nodejs
 
BIBLICAL FALL FEASTS FESTIVALS
BIBLICAL FALL FEASTS FESTIVALSBIBLICAL FALL FEASTS FESTIVALS
BIBLICAL FALL FEASTS FESTIVALS
 
Grafana Review
Grafana ReviewGrafana Review
Grafana Review
 
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
 
Stop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production SystemsStop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production Systems
 

Similar to Backend server monitoring and alarm system (collectd, graphite, grafana, zabbix) ('우리 안의 소리', 2016-02-21)

[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTOiFunFactory Inc.
 
검색로그시스템 with Python
검색로그시스템 with Python검색로그시스템 with Python
검색로그시스템 with Pythonitproman35
 
Service operation
Service operationService operation
Service operationTerry Cho
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista Community
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
Prometheus Project Journey
Prometheus Project JourneyPrometheus Project Journey
Prometheus Project JourneyJinwoong Kim
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Changyeop Kim
 
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어NHN FORWARD
 
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
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
SK planet Streaming system
SK planet Streaming systemSK planet Streaming system
SK planet Streaming system용휘 김
 
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons LearnedWeb Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons LearnedJungsu Heo
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅Youngmin Koo
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Gruter
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1Jungsu Heo
 

Similar to Backend server monitoring and alarm system (collectd, graphite, grafana, zabbix) ('우리 안의 소리', 2016-02-21) (20)

[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
 
검색로그시스템 with Python
검색로그시스템 with Python검색로그시스템 with Python
검색로그시스템 with Python
 
Service operation
Service operationService operation
Service operation
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
Prometheus Project Journey
Prometheus Project JourneyPrometheus Project Journey
Prometheus Project Journey
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기
 
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
 
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...
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
SK planet Streaming system
SK planet Streaming systemSK planet Streaming system
SK planet Streaming system
 
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons LearnedWeb Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
 

More from Jongwon Han

20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법Jongwon Han
 
20190518 개발하기 좋은 날
20190518 개발하기 좋은 날20190518 개발하기 좋은 날
20190518 개발하기 좋은 날Jongwon Han
 
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 201920190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019Jongwon Han
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...Jongwon Han
 
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...Jongwon Han
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다Jongwon Han
 
20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다Jongwon Han
 
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기Jongwon Han
 
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차Jongwon Han
 
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차Jongwon Han
 
20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년Jongwon Han
 
20180124 naver labs aws network and security
20180124 naver labs aws network and security20180124 naver labs aws network and security
20180124 naver labs aws network and securityJongwon Han
 
20171221 naver labs aws 101
20171221 naver labs aws 10120171221 naver labs aws 101
20171221 naver labs aws 101Jongwon Han
 
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 10120171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101Jongwon Han
 
20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다Jongwon Han
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다Jongwon Han
 
20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshopJongwon Han
 
HB Smith - Primer workshop
HB Smith - Primer workshopHB Smith - Primer workshop
HB Smith - Primer workshopJongwon Han
 
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...Jongwon Han
 

More from Jongwon Han (20)

20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법
 
20190518 개발하기 좋은 날
20190518 개발하기 좋은 날20190518 개발하기 좋은 날
20190518 개발하기 좋은 날
 
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 201920190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
 
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
 
20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다
 
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
 
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
 
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
 
20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년
 
20180124 naver labs aws network and security
20180124 naver labs aws network and security20180124 naver labs aws network and security
20180124 naver labs aws network and security
 
20171221 naver labs aws 101
20171221 naver labs aws 10120171221 naver labs aws 101
20171221 naver labs aws 101
 
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 10120171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
 
20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다
 
20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop
 
HB Smith - Primer workshop
HB Smith - Primer workshopHB Smith - Primer workshop
HB Smith - Primer workshop
 
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
 

Backend server monitoring and alarm system (collectd, graphite, grafana, zabbix) ('우리 안의 소리', 2016-02-21)

  • 1. Backend Server Monitoring and Alarm System collectd + Graphite + Grafana + Zabbix 2016년 2월 21일, '우리 안의 소리' 한종원 (addnull@gmail.com)
  • 2. 발표 내용 • Monitoring and Alarm 다시 보기 • 요구사항 정리 • 시스템 구축 • collectd / Graphite / Grafana / Zabbix • Monitoring Metrics • Alarm Triggers • Live Demo 3
  • 3. Monitoring and Alarm 다시 보기 "Money doesn't grow on trees" 4
  • 4. Monitoring and Alarm 다시 보기 • 질문 !!! • 그거 왜 하는데? • 이미 잘되는 다른 서비스나 패키지 붙여 쓰는 거 아닌가? • 금방 할 수 있지? • 기능 개발할 시간도 바쁜데... 5
  • 5. Monitoring and Alarm 다시 보기 • 정말 왜 필요한가? • 사실 옛날에도 필요했는데... -> 서버가 죽었나 살았나 단순 확인 • 지금은 cloud computing 시대 • 서버 자체가 일시적인 자원(instance)
 -> 언제든지, 계획여부와 상관없이 유실될 수 있다. • 전체 시스템의 장애를 허용하되, 복구를 빠르게 한다. • 그리고 scalability !!! 전체 시스템의 크기가 매우 유동적 6
  • 6. Monitoring and Alarm 다시 보기 • 서버(instance)가 유실 또는 자원 필요량이 급격하게 늘어나는걸 대비 • 즉, 지금 모니터링 알람은 단순한 서버의 생사여부 확인을 넘어서, 충분히 잘 동작(서비스)하고 있는지 확인해야한다.
 (예: API call response가 300ms
 안에 들어오는가?) 7
  • 7. Monitoring and Alarm 다시 보기 • 그럼, 이미 잘되는 다른 서비스나 패키지 붙여 쓰면 될까? • 상용 서비스(APM) • 최소 75 USD per month per 1 host • 배보다 배꼽이 더 비싼 가격 • Open Source • 엄청나게 다양한 프로젝트와 툴들이 개발 진행 중 또는 중단되었음 8
  • 8. Monitoring and Alarm 다시 보기 • 만능 솔루션은 없었다.. • 너무 다양한 요구사항과 use case들 (뒤에서 설명) • 상당한 노력과 시간 그리고 어쩌면 자본까지 필요 • 기능 개발할 시간도 부족한데, 이거 우선 순위를 어떻게 해야될까? 9
  • 9. 10
  • 11. 요구사항 정리 • 가격: open source를 최대한 활용해서 무료로 구축 • 측정 metric • cpu/memory/disk/network usage • server time offset • API call response (HTTP status code) • API call elapsed time 12
  • 12. 요구사항 정리 • (continues) 측정 metric • AWS 관련 • Estimated billing • S3: total number/size of object • SQS: message count (normal queue / dead lettter queue) • 단, 1개의 all-in-one solution을 쓰기 보다는,
 잘 만들어진 작은 module들을 조립해서 구축하자.
 (UNIX philosophy: "Do One Thing and Do It Well") 13
  • 14. 시스템 구축 • 전체 system overview 15
  • 15. 시스템 구축 • 각 단계별, 관련된 open source list • http://graphite.readthedocs.org/en/latest/tools.html • 무려 70개가 넘는 project가 진행중 또는 중단 16
  • 16. 시스템 구축 • 그래서 제 선택은요.. 17 collection collectd forwarding Carbon(Graphite) store and indexing Whispher(Graphite) visualization Grafana, Zabbix
  • 17. 시스템 구축 • 전체 system overview with open source project 18
  • 18. 시스템 구축 :: collectd 19
  • 19. 시스템 구축 :: collectd • 'collectd' 소개 • 'C'로 작성된, 매우 빠른 metric 수집 툴 • Linux OS에 관련된 거의 모든 metric이 plugin 형태로 제공된다. • 단, metric 수집만 할 뿐,
 그외 forwarding, indexing,
 visualization 기능은 없거나 아주 단순한 기능만 있음. 20
  • 20. 시스템 구축 :: collectd • 설정 예시 21 Hostname MY_HOSTNAME FQDNLookup true LoadPlugin syslog ! <Plugin syslog> LogLevel info </Plugin> ! LoadPlugin battery LoadPlugin cpu LoadPlugin df LoadPlugin disk LoadPlugin entropy LoadPlugin interface LoadPlugin irq LoadPlugin load LoadPlugin memory LoadPlugin processes LoadPlugin swap LoadPlugin users LoadPlugin write_graphite <Plugin df> FSType rootfs FSType sysfs FSType proc FSType devtmpfs FSType devpts FSType tmpfs FSType fusectl FSType cgroup IgnoreSelected true </Plugin> ! <Plugin write_graphite> <Node "example"> Host "my_host.com" Port "2003" Protocol "udp" LogSendErrors true Prefix "collectd/" Postfix "" StoreRates true AlwaysAppendDS false EscapeCharacter "_" </Node> </Plugin> ! <Include "/etc/collectd/collectd.conf.d"> Filter "*.conf" </Include>
  • 21. 시스템 구축 :: Graphite 22
  • 22. 시스템 구축 :: Graphite • 'Graphite' 소개 • 3개의 하위 module로 구성 • visualization
 기능은 'Grafana'
 로 대신함 23 forwardingvisualization store and indexing
  • 23. 시스템 구축 :: Graphite 24 forwardingvisualization store and indexing
  • 24. 시스템 구축 :: Graphite • 'Graphite'의 visualization 기능은 'Grafana'에 비해서 기능이 부족. 25
  • 25. 시스템 구축 :: Grafana 26
  • 26. 시스템 구축 :: Grafana • 'Grafana' 소개 • 오직 visualzation(dashboard) 기능에 집중한 module 27
  • 27. 시스템 구축 :: Grafana • 'Grafana'는 'Graphite'의 'whisper' DB와 연동했다. 28
  • 28. 시스템 구축 :: Grafana • 'Grafana' 소개 • live demo - http://play.grafana.org/ • 'Graphite'의 graph 여러개를 모아서 하나의 dashboard로 구성하기 쉽다. • real time update 및 play list(여러 dashboard를 번갈아가면서 보여주는 기능) 등 visualization 관련 유용한 기능을 지원 29
  • 29. 시스템 구축 :: Zabbix 30
  • 30. 시스템 구축 :: Zabbix • 'Zabbix' 소개 • Monitoring과 alarm에 관한 거의 모든 기능을 가진 all-in-one 프로젝트 • 하지만, alarm 기능만 사용하기로 했다.
 (다른 기능들은 약간 old fashion) • 매우 강력한 alarm trigger 
 customize 지원 31
  • 32. Monitoring Metrics • 'carbon(Graphite)'으로 metrics을 forwarding한다. • forwarding 방법은 크게 2가지로 나뉜다. • 일정 시간(예: 10초)동안 기록된 값의 평균/최대/최 소 등 
 aggregate value를 저장 • 예: API call count, API response elapsed time • 최종 1개의 값만 저장 (매번 overwrite) • 예: CPU/memory/disk/network usage, server time offset 33
  • 33. Monitoring Metrics • 일정 시간(예: 10초)동안 기록된 값의 평균/최대/최소 등 
 aggregate value를 저장 34
  • 34. Monitoring Metrics • 최종 1개의 값만 저장 (매번 overwrite) 35
  • 36. Alarm Triggers • Alarm은 필요한 것만 정확하게 전달되어야한다. 37
  • 37. Alarm Triggers • 현재 상태를 2가지로 구분한다. • 'OK' (문제가 없을때), 'PROBLEM' (문제가 있을때) • 초기 상태(T0)에서 다음 상태(T1)으로 변화는 4가지가 있다. • 'OK' -> 'OK': 문제없음 • 'OK' -> 'PROBLEM': 문제 최초 발생 • 'PROBLEM' -> 'PROBLEM': 문제가 해결되지 않은 상태에서 문제가 또 발생 • 'PROBLEM' -> 'OK': 문제가 해결 38
  • 38. Alarm Triggers • 초기 상태(T0)에서 다음 상태(T1)로 변화 시에 alarm 전달 39
  • 39. Alarm Triggers • 너무 빠른 상태 변화는 무시해야한다. (예: 일시적 장애 발생 또는 복구) 40
  • 40. Alarm Triggers • 너무 빠른 상태 변화는 무시해야한다. (예: 일시적 장애 발생 또는 복구) • 'Zabbix' trigger에서는 최근 n번에 대해서 평균/최소/최대 같은 aggregation을 지원한다. • 예:
 
 "{v0.min(#3)} > 0.1"
 'v0' 값의 가장 최근 3개의 값의 최소값이 0.1 초과일 때만 trigger가 발동한다.
 
 "{v0.max(#3)} < 0.05"
 'v0' 값의 가장 최근 3개의 값의 최대값이 0.05 미만일 때만 trigger가 발동한다. 41
  • 41. Alarm Triggers • "{v0.min(#3)} > 0.1"
 "{v0.max(#3)} < 0.05"
 42
  • 42. Alarm Triggers • 문제가 발생된 상태에서 또 다시 문제가 발생했을 때,
 alarm을 전달하는 경우와 아닌 경우를 구분해야한다. • 예:
 
 API server 내부 logic 오류로 인해서 500 response 발생 -> 발생할 때마다 계속 반복적으로 alarm 전달 Server CPU 사용율이 100%가 계속 유지됨 -> 최초 발생 1회만 전달 43
  • 44. 발표 내용 review • Monitoring and Alarm 다시 보기 • 요구사항 정리 • 시스템 구축 • collectd / Graphite / Grafana / Zabbix • Monitoring Metrics • Alarm Triggers • Live Demo 45