SlideShare a Scribd company logo
1 of 35
Download to read offline
MongoDB Monitoring 어떤 것이 좋을까? MongoDB Korea 김인범
Intro 
 저는 김인범입니다. 
 MongoDB Korea에서 활동하고 있습니다. 
 회사는 판교(SK C&C), 프로젝트는 보라매 
 오늘은 MongoDB Monitoring과 관련된 이야기를 하려 합니다.
Q1. MongoDB.. 많이들 쓰시나요?
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Q2. MongoDB Monitoring 어떻게 하세요?
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
그 외에... 
 ganglia, cacti, nagios... 
 mongostat, mongotop (내장기능) 
 shell scripting (능력자들)
이대로 괜찮은가..?(1) 
 사실은 괜찮다... 
 문제는 항상 높아지는 기대치... 
 개발 보다는 운영 시점에 항상 화두가 되는 monitoring 문제
이대로 괜찮은가..?(2) 
 기존 대부분의 tool은 실시간 반영의 문제를 내포함 
 제품 자체의 불안정성 문제 
 그래서 MMS를 쓰도록 유도하지만…
결국 문제는 비용, 돈! 
 MMS → Enterprise ver 
 많은 제품이 일정 기준 초과시 유료 전환 
 monitoring과 비용의 함정에 갇히는 일상
결국 선택할 수 있는 건... 
 MMS or 상용 tool 사용 
 기존 무료 tool 제한적 사용 
 shell command의 절묘한 조합 
 새로운 대안
우선... 
 새로운 상용 tool을 찾아 봤습니다. 
 일정 기준 이하에서는 무료였습니다. 
 앞서 열거한 제품들은 제외했습니다.
Q3. 앞서 열거한 제품들을 제외한 이유?
고객의 요구사항 
 일단 비용 지출 없는 걸로... 
 이왕 지불할거라면 모니터링 상황을 체계적으로 볼 수 있는 걸로... 
 “대용량 데이터 처리”에 대해 실시간 모니터링이 가능한 걸로...
A3-1. 그럼 어떤 제품을 살펴봤는가?
Pandora FMS 
 Open Source(GPL2) (Ent. Ver가 따로 존재함) 
 Ent. Ver는 100 agent부터 비용이 책정됨. 
 별도의 기술문의와 error fix를 위한 블로그 운영 (http://blog.pandorafms.org/)
Pandora FMS 
 동일 서버에 pandora agent & server가 설치되어야 함. 
 MongoDB Plugin까지 내려받아 설정해주면 완료.
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
좋아 보였지만... 
 언급하지 않은 복잡한 추가설정 필요 
 제품에 대한 feedback 문제 
 ent ver 제품 구매 문의 10여회 시도... 
 그러나... 응답없음.(아직까지도…)
A3-2. 또 다른 대안은?
Meteor를 이용한 monitoring 구성 
 web & mobile app을 구축하기 위한 js open source 플랫폼 
 실시간 업데이트 가능 (매번 빌드 하거나, 서버를 내렸다 올리지 않아도 자동 갱신) 
 데이터 동기화 시 자체적으로 지연 보정 수행 
 민감한 코드는 서버 보안 영역에 분리하여 실행 가능
Meteor를 이용한 monitoring 구성 
 Meteor는 MongoDB의 Oplog를 이용한 Monitoring 수행 
 javascript 빠에게 좋은 선택(javascript 기반) 
 ‘실시간’ 모니터링 가능 
 app 구성하기에 따라서 visualization이 가능
Oplog를 이용한 monitoring...(1) 
 Meteor는 MongoDB의 Oplog를 이용한 Monitoring 수행 * oplog : 복제셋 형태로 운영되는 MongoDB 서버간의 동기화를 위해 DB의 변경사항을 저장하는 로그 
 Meteor의 기본 observe driver는 polling 방식 기반이며, 이는 Meteor를 매우 느리게 만들고 곧 서버 리소스에 부담이 됨 
 해결책으로서, Meteor는 data변화를 탐지하고 observer를 작동시키기 위해 oplog를 사용한다.
Oplog를 이용한 monitoring...(2) 
 Meteor는 Primary를 tailing하는 Secondary처럼 행동함 
 Meteor는 메모리 안의 데이터에 대한 캐시를 유지하고 이를 observer를 활성화시키는 동안에 적용한다. 
 Meteor는 Oplog로부터 나오는 모든 데이터에 대한 것이 아닌 observer와 관련된 데이터에 대한 것만을 caching한다.
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
A4. Meteor 사용시 주의점?
Meteor 사용시 고려사항...(1) 
 MONGO_OPLOG_URL 변수 설정 필요 이때 MONGO_OPLOG_URL은 레플리카 셋 local db의 Mongo URL을 가리키고 있어야 함. MONGO_OPLOG_URL=mongodb://user:pass@host1:port,host2:port,host3:port/local 
 Oplog는 레플리카 셋의 이용 가능한 모든 DB의 변화를 포함 Meteor는 MONGO_URL에 명시한 DB의 변화만을 tailing
Meteor 사용시 고려사항...(2) 
 필요성 여부를 제외하고 DB의 모든 변화에 대해 Meteor가 대응 하는 건 부담이 될 수 있음 
 만약 observer를 동작시키지 않는 대량의 write operation이 발생한다면...? 
 ex) 오프라인 pre-aggregation, 다른 app으로부터의 write
Meteor 사용시 고려사항...(3) 
 도메인 or DB에 대한 이해가 필요 
 write가 자주 발생하는 collection에 대해 별도 DB로 분리 또는 이동
결국은... 
 다양한 상황을 고려한 Killer-app은 없는 상태 
 monitoring에 대한 고민은 곧 서비스에 대한 고민과 직결 (monitoring factor문제) 
더 나은 대안을 위한 노력 필요
결론 (Meteor는 이때 사용) 
 비용이 충분하다면 MMS 
 비용이 고려되어야 하고 
 대용량 데이터에 대한 실시간 처리가 가능하며, 
 개발 skill-set이 있는 인력으로 dev-ops를 생각하신다면...
OUTLO 
 저의 경험을 이야기 했습니다. 
 많은 분들이 의견을 주실수록 정답에 가까워 질 것 같습니다. 
 저는 그저 하나의 새로운 가능성을 제시하려 노력했을 뿐 
 누구에게나 동일한 best choice는 없으니까요.
Q & A 
Q & A
Thank You inbum85@gmail.com https://www.facebook.com/revolutionistK https://www.facebook.com/groups/krmug/

More Related Content

What's hot

並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャKohei KaiGai
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考えるchonaso
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)I Goo Lee
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionAlexander Kukushkin
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
Tuning PostgreSQL for High Write Throughput
Tuning PostgreSQL for High Write Throughput Tuning PostgreSQL for High Write Throughput
Tuning PostgreSQL for High Write Throughput Grant McAlister
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナーNGINX, Inc.
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Hirofumi Iwasaki
 
Problems with PostgreSQL on Multi-core Systems with MultiTerabyte Data
Problems with PostgreSQL on Multi-core Systems with MultiTerabyte DataProblems with PostgreSQL on Multi-core Systems with MultiTerabyte Data
Problems with PostgreSQL on Multi-core Systems with MultiTerabyte DataJignesh Shah
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymenthyeongchae lee
 
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...NTT DATA Technology & Innovation
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NETterurou
 
Managing PostgreSQL with Ansible
 Managing PostgreSQL with Ansible Managing PostgreSQL with Ansible
Managing PostgreSQL with AnsibleEDB
 

What's hot (20)

並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Tuning PostgreSQL for High Write Throughput
Tuning PostgreSQL for High Write Throughput Tuning PostgreSQL for High Write Throughput
Tuning PostgreSQL for High Write Throughput
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
 
Problems with PostgreSQL on Multi-core Systems with MultiTerabyte Data
Problems with PostgreSQL on Multi-core Systems with MultiTerabyte DataProblems with PostgreSQL on Multi-core Systems with MultiTerabyte Data
Problems with PostgreSQL on Multi-core Systems with MultiTerabyte Data
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deployment
 
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
Managing PostgreSQL with Ansible
 Managing PostgreSQL with Ansible Managing PostgreSQL with Ansible
Managing PostgreSQL with Ansible
 

Similar to Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)

Mongo db in use(naver)
Mongo db in use(naver)Mongo db in use(naver)
Mongo db in use(naver)InBum Kim
 
Mongo db intro & tips
Mongo db intro & tipsMongo db intro & tips
Mongo db intro & tipsInBum Kim
 
MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)InBum Kim
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법성훈 김
 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.xInBum Kim
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Bansook Nam
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XpressEngine
 
WeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdfWeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdfjaneSim13
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기Jaeseung Ha
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법YoungSu Son
 
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요NAVER D2
 
Create document automatically (1)
Create document automatically (1)Create document automatically (1)
Create document automatically (1)SangJune Ahn
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개 SuHyun Jeon
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)Dong Chan Shin
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 

Similar to Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범) (20)

Mongo db in use(naver)
Mongo db in use(naver)Mongo db in use(naver)
Mongo db in use(naver)
 
Mongo db intro & tips
Mongo db intro & tipsMongo db intro & tips
Mongo db intro & tips
 
MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법
 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.x
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
 
WeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdfWeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdf
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
 
Create document automatically (1)
Create document automatically (1)Create document automatically (1)
Create document automatically (1)
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 

Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)

  • 1. MongoDB Monitoring 어떤 것이 좋을까? MongoDB Korea 김인범
  • 2. Intro  저는 김인범입니다.  MongoDB Korea에서 활동하고 있습니다.  회사는 판교(SK C&C), 프로젝트는 보라매  오늘은 MongoDB Monitoring과 관련된 이야기를 하려 합니다.
  • 3. Q1. MongoDB.. 많이들 쓰시나요?
  • 5. Q2. MongoDB Monitoring 어떻게 하세요?
  • 7. 그 외에...  ganglia, cacti, nagios...  mongostat, mongotop (내장기능)  shell scripting (능력자들)
  • 8. 이대로 괜찮은가..?(1)  사실은 괜찮다...  문제는 항상 높아지는 기대치...  개발 보다는 운영 시점에 항상 화두가 되는 monitoring 문제
  • 9. 이대로 괜찮은가..?(2)  기존 대부분의 tool은 실시간 반영의 문제를 내포함  제품 자체의 불안정성 문제  그래서 MMS를 쓰도록 유도하지만…
  • 10. 결국 문제는 비용, 돈!  MMS → Enterprise ver  많은 제품이 일정 기준 초과시 유료 전환  monitoring과 비용의 함정에 갇히는 일상
  • 11. 결국 선택할 수 있는 건...  MMS or 상용 tool 사용  기존 무료 tool 제한적 사용  shell command의 절묘한 조합  새로운 대안
  • 12. 우선...  새로운 상용 tool을 찾아 봤습니다.  일정 기준 이하에서는 무료였습니다.  앞서 열거한 제품들은 제외했습니다.
  • 13. Q3. 앞서 열거한 제품들을 제외한 이유?
  • 14. 고객의 요구사항  일단 비용 지출 없는 걸로...  이왕 지불할거라면 모니터링 상황을 체계적으로 볼 수 있는 걸로...  “대용량 데이터 처리”에 대해 실시간 모니터링이 가능한 걸로...
  • 15. A3-1. 그럼 어떤 제품을 살펴봤는가?
  • 16. Pandora FMS  Open Source(GPL2) (Ent. Ver가 따로 존재함)  Ent. Ver는 100 agent부터 비용이 책정됨.  별도의 기술문의와 error fix를 위한 블로그 운영 (http://blog.pandorafms.org/)
  • 17. Pandora FMS  동일 서버에 pandora agent & server가 설치되어야 함.  MongoDB Plugin까지 내려받아 설정해주면 완료.
  • 20. 좋아 보였지만...  언급하지 않은 복잡한 추가설정 필요  제품에 대한 feedback 문제  ent ver 제품 구매 문의 10여회 시도...  그러나... 응답없음.(아직까지도…)
  • 21. A3-2. 또 다른 대안은?
  • 22. Meteor를 이용한 monitoring 구성  web & mobile app을 구축하기 위한 js open source 플랫폼  실시간 업데이트 가능 (매번 빌드 하거나, 서버를 내렸다 올리지 않아도 자동 갱신)  데이터 동기화 시 자체적으로 지연 보정 수행  민감한 코드는 서버 보안 영역에 분리하여 실행 가능
  • 23. Meteor를 이용한 monitoring 구성  Meteor는 MongoDB의 Oplog를 이용한 Monitoring 수행  javascript 빠에게 좋은 선택(javascript 기반)  ‘실시간’ 모니터링 가능  app 구성하기에 따라서 visualization이 가능
  • 24. Oplog를 이용한 monitoring...(1)  Meteor는 MongoDB의 Oplog를 이용한 Monitoring 수행 * oplog : 복제셋 형태로 운영되는 MongoDB 서버간의 동기화를 위해 DB의 변경사항을 저장하는 로그  Meteor의 기본 observe driver는 polling 방식 기반이며, 이는 Meteor를 매우 느리게 만들고 곧 서버 리소스에 부담이 됨  해결책으로서, Meteor는 data변화를 탐지하고 observer를 작동시키기 위해 oplog를 사용한다.
  • 25. Oplog를 이용한 monitoring...(2)  Meteor는 Primary를 tailing하는 Secondary처럼 행동함  Meteor는 메모리 안의 데이터에 대한 캐시를 유지하고 이를 observer를 활성화시키는 동안에 적용한다.  Meteor는 Oplog로부터 나오는 모든 데이터에 대한 것이 아닌 observer와 관련된 데이터에 대한 것만을 caching한다.
  • 27. A4. Meteor 사용시 주의점?
  • 28. Meteor 사용시 고려사항...(1)  MONGO_OPLOG_URL 변수 설정 필요 이때 MONGO_OPLOG_URL은 레플리카 셋 local db의 Mongo URL을 가리키고 있어야 함. MONGO_OPLOG_URL=mongodb://user:pass@host1:port,host2:port,host3:port/local  Oplog는 레플리카 셋의 이용 가능한 모든 DB의 변화를 포함 Meteor는 MONGO_URL에 명시한 DB의 변화만을 tailing
  • 29. Meteor 사용시 고려사항...(2)  필요성 여부를 제외하고 DB의 모든 변화에 대해 Meteor가 대응 하는 건 부담이 될 수 있음  만약 observer를 동작시키지 않는 대량의 write operation이 발생한다면...?  ex) 오프라인 pre-aggregation, 다른 app으로부터의 write
  • 30. Meteor 사용시 고려사항...(3)  도메인 or DB에 대한 이해가 필요  write가 자주 발생하는 collection에 대해 별도 DB로 분리 또는 이동
  • 31. 결국은...  다양한 상황을 고려한 Killer-app은 없는 상태  monitoring에 대한 고민은 곧 서비스에 대한 고민과 직결 (monitoring factor문제) 더 나은 대안을 위한 노력 필요
  • 32. 결론 (Meteor는 이때 사용)  비용이 충분하다면 MMS  비용이 고려되어야 하고  대용량 데이터에 대한 실시간 처리가 가능하며,  개발 skill-set이 있는 인력으로 dev-ops를 생각하신다면...
  • 33. OUTLO  저의 경험을 이야기 했습니다.  많은 분들이 의견을 주실수록 정답에 가까워 질 것 같습니다.  저는 그저 하나의 새로운 가능성을 제시하려 노력했을 뿐  누구에게나 동일한 best choice는 없으니까요.
  • 34. Q & A Q & A
  • 35. Thank You inbum85@gmail.com https://www.facebook.com/revolutionistK https://www.facebook.com/groups/krmug/