목차

요소기술 - 서버자원모니터링

개요

서버자원모니터링은 웹서버, WAS, DB 서버 등의 서버자원의 메모리 등 자원 사용 현황을 모니터링하는 기능을 제공한다.

설명

  ① 서버자원모니터링목록조회 : 서버자원모니터링 정보를 최근 등록 순서대로 조회하고. 그 결과를 화면에 반영한다.
  ② 서버자원모니터링상세조회 : 서버자원모니터링 목록에서 선택한 서버자원모니터링 상세정보를 보여준다.
  ③ 서버자원모니터링결과등록 : 서버자원모니터링 결과(로그)정보를 스케줄러를 통해 시스템에 등록한다.

관련소스

유형대상소스명비고
Controlleregovframework.com.utl.sys.srm.web.EgovServerResrceMntrngController.java서버자원모니터링을 위한 controller 클래스
Serviceegovframework.com.utl.sys.srm.service.EgovServerResrceMntrngService.java서버자원모니터링을 위한 Service Interface
ServiceImplegovframework.com.utl.sys.srm.service.impl.EgovServerResrceMntrngServiceImpl.java서버자원모니터링을 위한 서비스 구현 클래스
DAOegovframework.com.utl.sys.srm.service.impl.ServerResrceMntrngDAO.java서버자원모니터링을 위한 데이터처리 클래스
Modelegovframework.com.utl.sys.srm.service.ServerResrceMntrng.java서버자원모니터링을 위한 Model 클래스
VOegovframework.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 XMLresources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_altibase.xml서버자원모니터링 관리를 위한 Altibase용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_cubrid.xml서버자원모니터링 관리를 위한 Cubrid용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_maria.xml서버자원모니터링 관리를 위한 MariaDB용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_mysql.xml서버자원모니터링 관리를 위한 MySQL용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_oracle.xml서버자원모니터링 관리를 위한 Oracle용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_postgres.xml서버자원모니터링 관리를 위한 PostgreSQL용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/srm/EgovServerResrceMntrng_SQL_tibero.xml서버자원모니터링 관리를 위한 Tibero용 Query XML
Message propertiesresources/egovframework/message/com/utl/sys/srm/message_en.properties서버자원모니터링 관리를 위한 Message properties(영문)
Message propertiesresources/egovframework/message/com/utl/sys/srm/message_ko.properties서버자원모니터링 관리를 위한 Message properties(한글)
Idgen XMLresources/egovframework/spring/com/idgn/context-idgn-ServerResrceMntrngLog.xml서버자원모니터링 관리를 위한 Id생성 Idgen XML

클래스 다이어그램

관련테이블

테이블명테이블명(영문)비고
서버자원로그정보COMTNSERVERRESRCELOGINFO웹서버, WAS, DB 서버 등의 서버자원의 메모리 등 자원 사용 현황의 로그를 관리한다.

ID Generation 관련 DDL 및 DML

    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)

    <bean name="egovServerResrceMntrngLogIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="ServerResrceMntrngLogIdStrategy" />
        <property name="blockSize"  value="10" />
        <property name="table"      value="COMTECOPSEQ" />
        <property name="tableName"  value="SVCRESMONTLOG_ID" />
    </bean>
    <bean name="ServerResrceMntrngLogIdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix"     value="LOG_" />
        <property name="cipers"     value="16" />
        <property name="fillChar"   value="0" />
    </bean>

스케줄러 등록

  <!-- 서버자원모니터링   -->
  <bean id="serverResrceMntrng"
      class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
      <property name="targetObject" ref="egovServerResrceMntrngScheduling" />
      <property name="targetMethod" value="monitorServerResrce" />
      <property name="concurrent" value="false" />
  </bean>
 
  <!-- 서버자원모니터링  트리거-->
  <bean id="serverResrceMntrngTrigger"
      class="org.springframework.scheduling.quartz.SimpleTriggerBean">
      <property name="jobDetail" ref="serverResrceMntrng" />
      <property name="startDelay" value="60000" />
      <property name="repeatInterval" value="600000" />
  </bean>
  startDelay는 서버 시작후 몇초 뒤에 시작할지를 설정한다.(ms 단위 : 현재 1분)
  repeatInterval는 몇 초에 한번씩 실행될지를 설정한다.(ms 단위 : 현재 10분)
  <!-- 모니터링 스케줄러 -->
  <bean id="mntrngScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
      <list>
        <ref bean="serverResrceMntrngTrigger" />
      </list>
    </property>
  </bean>

관련화면 및 수행메뉴얼

서버자원모니터링대상 목록조회

ActionURLController methodQueryID
조회/utl/sys/srm/selectMntrngServerList.doselectMntrngServerList“serverResrceMntrngDAO.selectMntrngServerList”
“serverResrceMntrngDAO.selectMntrngServerListTotCnt”

서버자원모니터링대상 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 서버H/W 명에 대해서 수행된다.

조회 : 서버자원 모니터링 대상은 시스템관리 > 서버정보관리에 서버H/W 정보에 종속되어 있는 서버H/W의 목록을 화면에 출력한다.
로그 : 서버자원모니터링의 로그정보를 조회하기 위해 로그버튼을 선택하여 서버자원 모니터링 로그목록 화면으로 이동한다.


서버자원모니터링로그 목록조회

ActionURLController methodQueryID
조회/utl/sys/srm/selectServerResrceMntrngList.doselectServerResrceMntrngList“serverResrceMntrngDAO.selectServerResrceMntrngList”
“serverResrceMntrngDAO.selectServerResrceMntrngListTotCnt”

서버자원모니터링로그 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 서버H/W 명, 기간에 대해서 수행된다.

조회 : 기 등록된 서버자원모니터링로그 목록을 조회한다.
목록 : 서버자원모니터링대상 목록 화면으로 이동하기 위해 목록버튼을 선택한다.
상세조회 : 서버자원모니터링의 상세정보를 조회하기 위해 서버H/W 명을 선택하여 서버자원모니터링 상세조회 화면으로 이동한다.


서버자원모니터링로그 상세조회

ActionURLController methodQueryID
조회/utl/sys/srm/getServerResrceMntrng.doselectServerResrceMntrng“serverResrceMntrngDAO.selectServerResrceMntrng”

서버자원모니터링로그 목록에서 선택한 서버자원모니터링로그 상세정보를 보여준다.

목록 : 서버자원모니터링로그 목록조회 화면으로 이동한다.


모니터링 Agent (MBean) 예제

서버자원모니터링은 JMX를 통해 모니터링된 정보를 제공하기 때문에, 대상 서버에 모니터링용 agent(MBean)가 실행되어야 한다.

이에 대한 예제를 통해 agent를 구현하여 대상 서버 상에서 실행시켜야 한다.