N-Watch Architecture - 오픈소스 Zabbix 를활용한대용량시스템모니터링솔루션 2015. 7. 10 IT 서비스혁신센터 SW 기술연구소전우성 작성일시 _ 작성부서 _ 작성자명
목차 I. N-Watch 시스템개요 1. N-Watch구성 2. 아키텍처 II. N-Watch 아키텍처설계 1. 요구사항분석 2. 문제해결방안 3. 프록시구성 4. H/A지원 5. NoSQL적용 6. TCP Reverse III. 적용효과
I. N-Watch 시스템개요 1. N-Watch 구성 N-Watch 는 Backend, Database, Front-End 의구조로구성되어있으며 Backend 를통하여다양한데이터가수집되고, Front-end 모듈을통하여사용자에게보여주게됩니다. 2
I. N-Watch 시스템개요 2. 아키텍처 N-Watch 의기반이되는 Zabbix 는 Client 의성능정보를 Server 에서받아서운영자가대시보드나, 알람을통해서서버정보를확인할수있도록해주는구조를가지고있습니다. N-Watch Server N-Watch Client Dash Board Map Graph/Tables Report Screens / Application Engine Inventory SLA Database Configured Information Gathered Data Windows 1 2 Ext-SVR Solaris OracleDB AIX SMS Jabber Action Linux Script Email Condition Media Type Permission User Management Operation Trigger Template Users Memory Network Trapper Webpage CPU Memory JVM LogMonitoring Items Templates External Check Staff Operator Manager Dashboard Map Screen 3
I. N-Watch 시스템개요 2. 아키텍처 Agent 를통하여성능정보를수집합니다. 또한디스커버리기능을제공하여신규추가된장비에대한자동추가기능을제공하고있습니다. N-Watch Server N-Watch Client Dash Board Map Graph/Tables Report Screens Inventory SLA / Application Engine Database 네트워크장비 etc.... Configured Information Gathered Data Windows 1 2 Ext-SVR Solaris OracleDB AIX SMS Jabber Action Linux Script Email Condition Media Type N-Watch Permission 주기적인 IP, Port 검색 User Management Operation Trigger Template Users Memory Network Trapper Webpage CPU Memory JVM LogMonitoring Items Templates External Check Staff Operator Manager Dashboard Map Screen 4
I. N-Watch 시스템개요 2. 아키텍처 모니터링범위는하드웨어부터네트워크, 미들웨어, 어플리케이션까지모니터링접점이존재하는모든항목에대하여모니터링이가능합니다. N-Watch Server N-Watch Client Memory Network User Dash App Board Trapper Webpage Map Graph/Tables Report Screens External CPU Memory JVM LogMonitoring Check / Application Engine Items Inventory SLA SMS Script Applications Jabber Media Middleware Type Permission Email User Management Network Templates Database Configured Information Gathered Data 운영자가원하는모든어플리케이션 Action Condition Operation Trigger Template Users Staff Windows 1 2 Ext-SVR Linux Solaris OracleDB AIX Manager Hardware Operator Dashboard Map Screen 5
I. N-Watch 시스템개요 2. 아키텍처 템플릿기능은모니터링항목을그룹화하여모니터링대상을쉽게추가할수있는기능을제공합니다. N-Watch Server N-Watch Client Action Inventory Template SLA Dash Board Map Condition Graph/Tables Report Screens Operation / Application Engine Trigger Database Configured Information Gathered Data Windows 1 2 Ext-SVR Solaris OracleDB AIX SMS Jabber Action Linux Script Email Condition Media Type Permission User Management Operation Trigger Template Users Staff Manager Dashboard Map Operator Screen 6
Monitoring PC I. N-Watch 시스템개요 2. 아키텍처 장애발생시장애정보는 SMS, EMail, Ticketing 시스템등다양한미디어를통하여관리자들에게전송할수있습니다. N-Watch Server N-Watch Client SMS Jabber Dash Board Map Script Graph/Tables Email Report Screens Media Type / Application Engine Permission Inventory User Management SLA Database Configured Information Gathered Data Staff Operator Windows 1 2 Ext-SVR Manager Solaris Dashboard Map OracleDB Screen AIX Linux 장애 발생 즉시 WiFi AP 15 분 30 분 1 시간 Memory Network E-mail User SMS App Trapper Webpage CPU Memory JVM LogMonitoring 서버운영자 Items Templates Help Desk ticket External Check E-mail Manager( 관리자 ) SMS 7
I. N-Watch 시스템개요 2. 아키텍처 수집되는데이터는데이터베이스에저장이됩니다. 데이터베이스의데이터는 JSON-RPC 방식의 API 를통하여저장하거나조회할수있습니다. N-Watch Server Inventory Dash Board Configured Information Map Graph/Tables Report Database Screens SLA / Application Engine Gathered Data N-Watch Client Windows Solaris 1 2 OracleDB Ext-SVR AIX SMS Jabber Action Linux Script Email Condition Media Type Permission User Management Memory Network Trapper Webpage CPU Memory JVM LogMonitoring Items Templates Operation Trigger Template External Check Users Staff Operator Manager Dashboard Map Screen 8
I. N-Watch 시스템개요 2. 아키텍처 대시보드에서는시스템의장애상황을신속하게확인할수있으며, 네트워크맵, 그래프스크린등관리에유용한기능들을제공하고있습니다. N-Watch Server Dash Board Map Graph/Tables Report Screens / Application Engine N-Watch Client Windows Solaris 1 2 OracleDB Ext-SVR AIX SMS Jabber Action Linux Script Email Condition Media Type Permission User Management Operation Trigger Template Users Memory Network Trapper Webpage CPU Memory JVM LogMonitoring Items Templates External Check Staff Operator Manager Dashboard Map Screen 9
I. N-Watch 시스템개요 2. 아키텍처 대시보드에서는시스템의장애상황을신속하게확인할수있으며, 네트워크맵, 그래프스크린등관리에유용한기능들을제공하고있습니다. N-Watch Server Dash Board Map Graph/Tables Report Screens / Application Engine N-Watch Client Windows Solaris 1 2 OracleDB Ext-SVR AIX SMS Jabber Action Linux Script Email Condition Media Type Permission User Management Operation Trigger Template Users Memory Network Trapper Webpage CPU Memory JVM LogMonitoring Items Templates External Check Staff Operator Manager Dashboard Map Screen 10
I. N-Watch 시스템개요 2. 아키텍처 대시보드에서는시스템의장애상황을신속하게확인할수있으며, 네트워크맵, 그래프스크린등관리에유용한기능들을제공하고있습니다. N-Watch Server Dash Board Map Graph/Tables Report Screens / Application Engine N-Watch Client Windows Solaris 1 2 OracleDB Ext-SVR AIX SMS Jabber Action Linux Script Email Condition Media Type Permission User Management Operation Trigger Template Users Memory Network Trapper Webpage CPU Memory JVM LogMonitoring Items Templates External Check Staff Operator Manager Dashboard Map Screen 11
II. N-Watch 아키텍처설계 1. 현장요구사항분석 대용량관제가요구되는현장운영자들에게기존에모니터링솔루션운영시, 문제점이나요구사항을수렴한결과다음과같은비기능적요구사항이있었습니다. 현장운영자인터뷰결과 1 한대의서버에서모니터링장비수제한 단일모니터링서버대모니터링대상서버의수량제한 2 네트워크분할에의한네트워크별서버존재 네트워크가다를경우방화벽설정의어려움 3 장기간의데이터집계시집계시간증대 대용량데이터처리능력한계 4 모니터링서버의장애시모니터링대상서버의 장애판단불가 단일서버구성으로장애대처불가 5 일시적인장애시데이터의유실 비신뢰전송으로데이터유실발생 6 Polling 방식의 Agent 설치시방화벽설정부담 PUSH 방식의수집기능제공 12
II. N-Watch 아키텍처설계 2. 문제해결방안 문제점에대한해결방안으로는프록시구성, NoSQL 적용, HA 지원, TCP Reverse 등이도출되었습니다. 문제점 단일서버구성으로장애대처불가 H/A 지원 H/A 지원을통한장애시대체서버구성 장애발생시데이터유실발생 네트워크가다를경우방화벽설정의어려움 단일모니터링서버대모니터링대상서버의수량제한 프록시구성 프록시를통한모니터링서버구성으로서버의처리량확보 NoSQL 적용 비관계형데이터베이스인 NoSQL 적용시데이터베이스에대한성능향상제공 대용량데이터처리능력한계 TCP Reverse PUSH 방식의수집기 TCP 의방향전환을통한방화벽허용 13
II. N-Watch 아키텍처설계 3. 프록시구성 프록시를구성할경우서버의부하를분산하고, 네트워크간복잡도를해소하고, 프록시를통하여캐쉬를가능하게하여운영의효율성을크게높일수있습니다. AS- Zabbix Proxy 서버의수량이많을경우 - 모니터링서버가수용할수있는범위만큼서버를분산하여관리 네트워크가다를경우 - 네트워크별서버를설치하여모니터링을수행 프록시를통하여모니터링수행 - 모니터링대상서버들은프록시서버에성능정보를전달 - 서버장애발생시프록시의캐시를통하여신뢰전송보장 - 프록시에서취합된정보를서버로전달 - 운영자는단일서버에접속하여모니터링대상서버모니터링 14
II. N-Watch 아키텍처설계 4. H/A 지원 프록시를구성할경우서버의부하를분산하고, 네트워크간복잡도를해소하고, 프록시를통하여캐쉬를가능하게하여운영의효율성을크게높일수있습니다. Zabbix Proxy H/A Adopted HA 구성 프록시를통하여모니터링수행 - 모니터링대상서버들은프록시서버에성능정보를전달 - 서버장애발생시프록시의캐시를통하여신뢰전송보장 - 프록시에서취합된정보를서버로전달 - 운영자는단일서버에접속하여모니터링대상서버모니터링 프록시이중화를통한장애예방 - Zabbix 기본구조인단일프록시구성시프록시서버에장애가발생할경우특정네트워크존에대한관제부재 - 프록시서버및 N-Watch 서버에대하여 Active-Standby 구조로구성하여 Active 서버장애발생시 Standby 서버가 active 가되도록 15
II. N-Watch 아키텍처설계 4. H/A 지원 NodeManager 는 Active 서버의상태를체크하고, 서버에장애가발생하였을경우 Stand-by 를 Active 로전환하여장애를복구하는기능을제공합니다. WEB WEB agent WEB WEB agent Alive check Alive check Alive check Alive check Node Manager Node Manager Node Manager Node Manager 수집서버 수집서버 수집서버 수집서버 Active Stand-by Stand-by Active Database Database 16
II. N-Watch 아키텍처설계 4. H/A 지원 NodeManager 는 Active 서버의상태를체크하고, 서버에장애가발생하였을경우 Stand-by 를 Active 로전환하여장애를복구하는기능을제공합니다. WEB WEB agent Alive check +isactive Node Manager NodeManager +registerobserver() +removeobserver() +notifyobserver() +healthcheck() Alive check Node Manager WEB WEB agent Alive check Node Manager Alive check Node Manager PipeObserver +recvsocketchannel +sendsocketchannel 수집서버 DaemonObserver +update() 수집서버 수집서버 수집서버 +update() Active Stand-by Stand-by Active Database Database 17
II. N-Watch 아키텍처설계 5. NoSQL 적용 백엔드데이터베이스를 NoSQL(MongoDB) 를활용할경우 Replication 을통한 fault tolerant 가가능해지고, 분산저장을통하여조회, 저장간의성능을확보할수있습니다. Shard1 Replica Set Shard2 Replica Set Shard2 Replica Set Mongos 대용량수집을위한분산저장지원 Replication 을통한 fault tolerant 실현 Server 가용성, 처리량확보 18
II. N-Watch 아키텍처설계 5. NoSQL 적용 MongoDB 의 Map-Reduce 를활용하면분산된서버에서데이터를추출, 집계하여운영자가원하는데이터를신속하게조회할수있습니다. 1 MAP 을통하여청크에서집계할범위의데이터추출 2 추출된데이터에대하여 Reduce 를통하여일, 주, 월단위집계 CHUNK1 MAP REDUCE PART1 CHUNK2 MAP REDUCE PART2 CHUNK3 MAP 19
II. N-Watch 아키텍처설계 5. NoSQL 적용 DB 분석결과성능정보가저장되는테이블인 history 테이블과, history_str 테이블은별도의 Relation 이존재하지않은것으로확인되었습니다. 20
II. N-Watch 아키텍처설계 5. NoSQL 적용 소스분석결과 history 테이블과, history_str 테이블은조회쿼리수행시다른테이블과의조인이없는것으로확인되었습니다. AS- AS-IS MongoDB DB +DBstart() +DBclose() +DBend() +DBselect() +DBexecute() CGraphDraw +applygraphtheme() +setperiod() +setstime() +setfrom() +drawrectangle() +execute() +drop() +lasterror() +command() HistoryDAO DB CGraphDraw +aggredatedhistory() +inserthistory() +DBstart() +DBclose() +DBend() +DBselect() +DBexecute() +applygraphtheme() +setperiod() +setstime() +setfrom() +drawrectangle() +draw() CLineGraphDraw +draw() CPieGraphDraw CLineGraphDraw CPieGraphDraw +draw() +draw() 21
II. N-Watch 아키텍처설계 6. TCP Reverse Zabbix 는데이터를수집시 polling 방식으로데이터를수집하여방화벽정책설정에어려움이있었습니다. Server agent01:10050 agent01 agent02 agent03 agent04 agent05 agent99 22
II. N-Watch 아키텍처설계 6. TCP Reverse NodeManager 는 Active 서버의상태를체크하고, 서버에장애가발생하였을경우 Stand-by 를 Active 로전환하여장애를복구하는기능을제공합니다. Server agent01 Server agent01 Server agent01 23
III. 적용효과 1. 적용효과 개선된아키텍처를통해 N-Watch 의실행효율성, 자원효율성, 운영성, 오류허용성, 회복성을향상할수있었습니다. 실행효율성 자원효율성 운영성 프록시는모니터링서버와관제대상서버간의처리효율과처리시간을향상시켜줍니다. NoSQL 의 Map Reduce 는조회시가용자원의이용효율을높여줍니다. 프록시를활용한단일서버구축은운영자의감시포인트를감소시켜솔루선의운영성을증대합니다. 오류허용성 회복성 NoSQL 적용은시스템의다운상황을예방하여높은성능수준을달성할수있도록해줍니다. H/A 구성은서버의장애상황에서서비스가회복되도록해줍니다. 24
25