Opserver Stack Overflow 본거지  Stack Exchange 팀의 모니터링 시스템 

기능 è 모니터링 도구

대상 è Winodws 서버(CPU, Memory, Disk, Process) / SQL / Exception 등등

배포 è IIS 통해 배포

 

특징

-       웹 대시보드를 중심으로 구성

-       특정 시스템에 특화된 웹 화면 (선택적 구성 가능)

-       JSON 형태의 설정 파일

-       초기 시작은 예외로그 Viewer에서 시작

-       SQL 포함한 여러 시스템을 중앙관제 할 수 있는 시스템으로 발전(플러그인과 같은 방식으로 모니터링 시스템을 추가 할 수 있음

è 내부 구조가 디자인 패턴화 되어 있을 듯

 

보안 설정 (Config 설정 example) 

/Config/SecuritySettings.config

-    Active Directory 인증 Web.Config에서 ViewGroups AdminGroups 편집

-    모니터 단위에 ViewGroups AdminGroups 편집

-    "AdminGroups" : "GroupName", 또는 "ViewGRoups" : "GroupName", 설정 

 

다른 툴과 연동

-    Bosun

-    Orion

-    Jira

-    PagerDuty

 

개발환경

-    ASP.NET MVC4

 

초기 설정 확인 (json 형태의 설정파일들)

http://www.dannysorensen.com/2013/11/using-stack-exchanges-opserver-step-1-will-it-build/

http://www.dannysorensen.com/2013/11/using-stack-exchanges-opserver-step-2-sql-configuration/

http://www.patrickhyatt.com/2013/10/25/setting-up-stackexchanges-opserver.html

 

Exception 모니터링

-    https://nickcraver.com/StackExchange.Exceptional/

 


간단하게 조사한 내용에서는 구조에 대해서 아래의 그림을 구했다 

출처 : https://imgur.com/a/dawwf 


 

Poller는 주기적으로 데이터 수집을 하는 Engine이 있다

Opserver.Core는 Dashboard Class와 Provider Class들이 나누어져 있다 좀 더 분석해봐야 알겠지만 Provider라는 것을 알아보면 공급자 또는 하나의 Service 또는 Factory와 같이 뭔가 만들기만 하는 부분이 있고 만들어진 것을 가져다 쓰는 부분이 있는 것 같다 


실제 소스코드까지 분석해본 내용은 나중에 추가한다. 


어쨌든 이 그림들과 간략히 폴더 구성들만 봤을때 Provider라는 Base Class 역할을 하는 녀석이 있고 그 Provider를 토대로 각각의 Dashboard를 만들고 Dashboard에서는 Poller가 동작하면서 내부 쓰레드... (UI와 별개인 work thread??) 인 녀석을 통해 data 를 수집할 수 있는 구조로 만든 것 같다


하나의 Dashboard를 SQL 모니터링 or Exception 모니터링 같은 것이라고 하면 그 내부에는 Poll Engine이 있고 대상을 Configuration 파일에 등록하면 필요한 data를 수집하고 알람도 보낼 수 있고(Mail : StackExchange.Exceptional) 지정한 Data Store에 저장할 수 있다 


모니터링 도구로서 UI 화면을 제공하고 Collector 서버가 있고 그 data를 저장하는 DB가 있다고 생각하면 쉬울 것 같다 


- 웹 UI 지원 

- 내부 Poll Engine (Collector Server) 

- Alarm 발송 기능 

- DB 저장 기능 


NMS(모니터링 시스템)의 각각의 기능을 정리하면 전체적인 구조는 그려진다 


User (Web UI) <-> Manager Server (Dashboard) <-> Collector Server (Poller) 

                                                        ↑↓                                 ↓

                                                                DB(Data Store) 



- 장애관리

  -- CPU/MEM/DISK 임계치 / Exception / SQL Error

- 성능관리

   -- WMI를 통한 성능 data 수집

- 운영관리

  -- Dashboard를 통한 관리

- 자산관리 

   -- 모니터링 대상을 설정

- Service/Application 관리

  -- 프로세스 모니터링

  -- Windows 서비스 모니터링 


좀 더 디테일한 분석은 나중에 추가하며 Source를 추가할 수도 있으므로 회사 안에서 하긴 힘들 것 같다.....

+ Recent posts