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

개요

서버자원모니터링은 웹서버, 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

  • 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)

    <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>

스케줄러 등록

  • 서버자원모니터링 스케줄러를 등록하기 위해서 context-scheduling.xml 파일에 다음과 같이 등록한다.
  <!-- 서버자원모니터링   -->
  <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를 구현하여 대상 서버 상에서 실행시켜야 한다.

  • EgovServerResrceMntrngMBean : MBean 인터페이스
  • EgovServerResrceMntrng : MBean으로 cpuUsage 및 memoryUsage 정보를 제공 (main 메소드를 가지고 있고, 서버 상에서 java 명령으로 실행시킬 대상)
  • EgovServerResrceMntrngClient : 테스트를 위한 클래스로 EgovServerResrceMntrngScheduling와 동일한 client 기능 제공
 
egovframework/com/v3.9/utl/sys/srm/서버자원모니터링.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki