====== 요소기술 - 서버자원모니터링 ======
===== 개요 =====
**서버자원모니터링**은 웹서버, WAS, DB 서버 등의 서버자원의 메모리 등 자원 사용 현황을 모니터링하는 기능을 제공한다.
===== 설명 =====
* **서버자원모니터링**은 서버자원에 대한 모니터링 정보의 등록, 조회, 목록조회의 기능을 수반한다.
① 서버자원모니터링목록조회 : 서버자원모니터링 정보를 최근 등록 순서대로 조회하고. 그 결과를 화면에 반영한다.
② 서버자원모니터링상세조회 : 서버자원모니터링 목록에서 선택한 서버자원모니터링 상세정보를 보여준다.
③ 서버자원모니터링결과등록 : 서버자원모니터링 결과(로그)정보를 스케줄러를 통해 시스템에 등록한다.
=== 관련소스 ===
^유형^대상소스명^비고^
|Controller|egovframework.com.utl.sys.srm.web.EgovServerResrceMntrngController.java|서버자원모니터링을 위한 controller 클래스|
|Service|egovframework.com.utl.sys.srm.service.EgovServerResrceMntrngService.java|서버자원모니터링을 위한 Service Interface|
|ServiceImpl|egovframework.com.utl.sys.srm.service.impl.EgovServerResrceMntrngServiceImpl.java|서버자원모니터링을 위한 서비스 구현 클래스|
|DAO|egovframework.com.utl.sys.srm.service.impl.ServerResrceMntrngDAO.java|서버자원모니터링을 위한 데이터처리 클래스|
|Model|egovframework.com.utl.sys.srm.service.ServerResrceMntrng.java|서버자원모니터링을 위한 Model 클래스|
|VO|egovframework.com.utl.sys.srm.service.ServerResrceMntrngVO.java|서버자원모니터링을 위한 VO 클래스|
|스케쥴링|egovframework.com.utl.sys.srm.service.EgovServerResrceMntrngScheduling.java|서버자원모니터링의 스케쥴링을 위한 클래스|
|JSP|/WEB-INF/jsp/egovframework/com/utl/sys/srm/EgovMntrngServerList.jsp|서버자원모니터링 목록조회를 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/com/utl/sys/srm/EgovServerResrceMntrngList.jsp|서버자원모니터링 로그 목록조회를 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/com/utl/sys/srm/EgovServerResrceMntrngDetail.jsp|서버자원모니터링 로그 상세조회를 위한 jsp페이지|
|Query XML|resources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_altibase.xml|서버자원모니터링 관리를 위한 Altibase용 Query XML|
|Query XML|resources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_cubrid.xml|서버자원모니터링 관리를 위한 Cubrid용 Query XML|
|Query XML|resources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_maria.xml|서버자원모니터링 관리를 위한 MariaDB용 Query XML|
|Query XML|resources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_mysql.xml|서버자원모니터링 관리를 위한 MySQL용 Query XML|
|Query XML|resources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_oracle.xml|서버자원모니터링 관리를 위한 Oracle용 Query XML|
|Query XML|resources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_postgres.xml|서버자원모니터링 관리를 위한 PostgreSQL용 Query XML|
|Query XML|resources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_tibero.xml|서버자원모니터링 관리를 위한 Tibero용 Query XML|
|Message properties|resources/egovframework/message/com/utl/sys/srm/message_en.properties|서버자원모니터링 관리를 위한 Message properties(영문)|
|Message properties|resources/egovframework/message/com/utl/sys/srm/message_ko.properties|서버자원모니터링 관리를 위한 Message properties(한글)|
|Idgen XML|resources/egovframework/spring/com/idgn/context-idgn-ServerResrceMntrngLog.xml|서버자원모니터링 관리를 위한 Id생성 Idgen XML|
=== 클래스 다이어그램 ===
{{:egovframework:com:utl:sys:srm:ServerResrceMntrng.png|}}
=== 관련테이블 ===
^테이블명^테이블명(영문)^비고^
|서버자원로그정보|COMTNSERVERRESRCELOGINFO|웹서버, WAS, DB 서버 등의 서버자원의 메모리 등 자원 사용 현황의 로그를 관리한다.|
=== ID Generation 관련 DDL 및 DML ===
* ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 **SVCRESMONTLOG_ID** 항목을 추가해야 한다.
CREATE TABLE COMTECOPSEQ ( table_name varchar(16) NOT NULL,
next_id DECIMAL(30) NOT NULL,
PRIMARY KEY (table_name)
);
INSERT INTO COMTECOPSEQ VALUES ('SVCRESMONTLOG_ID','0');
=== ID Generation 환경설정(context-idgn-ServerResrceMntrngLog.xml) ===
=== 스케줄러 등록 ===
* 서버자원모니터링 스케줄러를 등록하기 위해서 **context-scheduling.xml** 파일에 다음과 같이 등록한다.
startDelay는 서버 시작후 몇초 뒤에 시작할지를 설정한다.(ms 단위 : 현재 1분)
repeatInterval는 몇 초에 한번씩 실행될지를 설정한다.(ms 단위 : 현재 10분)
----
===== 관련화면 및 수행메뉴얼 =====
=== 서버자원모니터링대상 목록조회 ===
^Action^URL^Controller method^QueryID^
|조회|/utl/sys/srm/selectMntrngServerList.do|selectMntrngServerList|"serverResrceMntrngDAO.selectMntrngServerList"|
| | | |"serverResrceMntrngDAO.selectMntrngServerListTotCnt"|
서버자원모니터링대상 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다.
검색조건은 **서버H/W 명**에 대해서 수행된다.
{{:egovframework:com:v3.8:utl:sys:srm:list.png|}}
조회 : 서버자원 모니터링 대상은 시스템관리 > 서버정보관리에 서버H/W 정보에 종속되어 있는 서버H/W의 목록을 화면에 출력한다. \\
로그 : 서버자원모니터링의 로그정보를 조회하기 위해 **로그버튼**을 선택하여 **서버자원 모니터링 로그목록** 화면으로 이동한다.\\
----
=== 서버자원모니터링로그 목록조회 ===
^Action^URL^Controller method^QueryID^
|조회|/utl/sys/srm/selectServerResrceMntrngList.do|selectServerResrceMntrngList|"serverResrceMntrngDAO.selectServerResrceMntrngList"|
| | | |"serverResrceMntrngDAO.selectServerResrceMntrngListTotCnt"|
서버자원모니터링로그 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다.
검색조건은 서버H/W 명, 기간에 대해서 수행된다.
{{:egovframework:com:v3.8:utl:sys:srm:log_list.png|}}
조회 : 기 등록된 서버자원모니터링로그 목록을 조회한다.\\
목록 : 서버자원모니터링대상 목록 화면으로 이동하기 위해 **목록버튼**을 선택한다. \\
상세조회 : 서버자원모니터링의 상세정보를 조회하기 위해 **서버H/W 명**을 선택하여 **서버자원모니터링 상세조회** 화면으로 이동한다.\\
----
=== 서버자원모니터링로그 상세조회 ===
^Action^URL^Controller method^QueryID^
|조회|/utl/sys/srm/getServerResrceMntrng.do|selectServerResrceMntrng|"serverResrceMntrngDAO.selectServerResrceMntrng"|
서버자원모니터링로그 목록에서 선택한 서버자원모니터링로그 상세정보를 보여준다.
{{:egovframework:com:v3.8:utl:sys:srm:log_detail.png|}}
목록 : 서버자원모니터링로그 목록조회 화면으로 이동한다.\\
----
===== 모니터링 Agent (MBean) 예제 =====
서버자원모니터링은 JMX를 통해 모니터링된 정보를 제공하기 때문에, 대상 서버에 모니터링용 agent(MBean)가 실행되어야 한다.
이에 대한 {{:egovframework:com:utl:sys:srm:mbeanexample.zip|예제}}를 통해 agent를 구현하여 대상 서버 상에서 실행시켜야 한다.
* EgovServerResrceMntrngMBean : MBean 인터페이스
* EgovServerResrceMntrng : MBean으로 cpuUsage 및 memoryUsage 정보를 제공 (main 메소드를 가지고 있고, 서버 상에서 java 명령으로 실행시킬 대상)
* EgovServerResrceMntrngClient : 테스트를 위한 클래스로 EgovServerResrceMntrngScheduling와 동일한 client 기능 제공