콘텐츠로 이동

4. altiMon#

개요#

Altibase 서버 상태와 Altibase 서버가 구동 된 운영체제의 자원 상태를 수집하는 모니터링 유틸리티로, 운영체제의 자원 상태를 수집하기 위해 자체 제작한 PICL(Platform Information Collection Library) 라이브러리와 JDBC 드라이버 기반의 자바 애플리케이션이다. altiMon에서 수집한 데이터는 데이터베이스 장애 발생 시 장애 원인을 추적하는데 이용할 수 있다.

altiMon의 모니터링 요소는 3가지로 나뉜다. 각 요소에 대한 보다 자세한 것은 altiMon 설정 - Metrics.xml에서 설명한다.

  • OS Metric : Altibase의 PICL 라이브러리에서 미리 정의된 운영체제의 자원 상태
  • Command Metric : 사용자가 정의한 운영체제의 자원 상태
  • SQL Metric : 사용자가 정의한 Altibase 서버 상태


시스템 요구사항#

자바#

  • Oracle, OpenJDK 또는 IBM Java Runtime Environment 8 이상
  • 64비트 자바

지원 플랫폼#

altiMon의 지원 플랫폼은 PICL 라이브러리를 제공하는 플랫폼에 의존한다.

운영체제 CPU PICL 라이브러리
AIX
AIX 5.3
AIX 6.1
AIX 7.1
PowerPC aix-ppc64-5.so
HP-UX
HP-UX 11.31 Itanium (IA-64) hpux-ia64-11.sl
Linux
Red Hat Enterprise Linux 6.0 x86-64 linux-x64.so
Red Hat Enterprise Linux 6.5 PowerPC linux-ppc64.so
Red Hat Enterprise Linux 7.2 PowerPC (Little Endian) linux-ppc64.so

AIX 7.3, RHEL 8 등 위 표에 명시되지 않은 운영체제 버전에서 PICL 라이브러리가 동작하는 지 확인하는 방법이다.

PICL 라이브러리의 동작 여부를 확인하는 방법#

1️⃣ $ALTIBASE_HOME/altiMon 디렉토리로 이동한다.

$ cd $ALTIBASE_HOME/altiMon

2️⃣ java 명령어로 PICL 라이브러리의 동작 여부를 확인한다.

위 표에서 해당하는 운영체제의 PICL 라이브러리 파일명을 확인하고 아래 명령어를 수행한다. 반드시 $ALTIBASE_HOME/altiMon 디렉토리 아래에서 수행해야 한다.

$ java -Dpicl="<picl_lib_file>" -jar lib/com.altibase.picl.jar

수행 예:

$ java -Dpicl="linux-x64.so" -jar lib/com.altibase.picl.jar 
===========================================================
Platform Information Collection Library-PICL Testing Module
===========================================================

Initializing PICL(Platform Information Collection Library)...
PICL Library : linux-x64.so

----------
Process ID
----------
Altibase Process : /home/altibase/altibase_home/bin/altibase
PID : 5230
...중략... 


구문#

altimon.sh {start | stop}


파라미터#

파라미터 설명
start altimon 시작
stop altimon 종료


altiMon 시작 및 중지#

altiMon 시작#

1️⃣ Java를 사용할 수 있게 PATH 환경 변수를 설정한다.

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

2️⃣ altiMon 시작 명령을 수행한다.

$ altimon.sh start

3️⃣ altiMon 시작이 실패하면 $ALTIBASE_HOME/altiMon/logs/altimon.log 파일을 확인한다.

altiMon 중지#

$ altimon.sh stop


altiMon 설정#

altiMon을 사용하기 위해 $ALTIBASE_HOME/altiMon 디렉토리의 conf 디렉토리에 있는 아래의 파일들을 설정한다. 설정 파일들은 모두 XML 문서이다.

config.xml#

altiMon 수행과 관련한 설정과 모니터링 대상인 Altibase 서버의 정보를 설정하는 파일이다. 루트 요소 <configuration> (또는 <config>) 태그를 시작으로 Altimon 요소와 Target 요소로 구성되어 있다.

$ cat config.xml 
<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <!-- Altimon 요소 -->
    <Altimon Name="rnd1" monitorOsMetric="true">
        <!--<LogDir>logs</LogDir> -->
        <DateFormat>yyyy-MM-dd HH:mm:ss</DateFormat>
        <MaintenancePeriod>3<!-- days --></MaintenancePeriod>
        <Interval>60<!-- seconds --></Interval>
        <CpuSamplingInterval>3<!-- seconds --></Interval>
        <DBConnectionWatchdogCycle>60<!-- seconds --></DBConnectionWatchdogCycle>
    </Altimon>

    <!-- Target 요소 -->
    <Target Name="Altibase1">
        <!--<HomeDirectory>/home/altibase/altibase_home</HomeDirectory> -->
        <!--<User>sys</User> -->
        <Password Encrypted="No">manager</Password>
        <Port>20300</Port>
        <DbName>mydb</DbName>
        <NLS>KSC5601</NLS>
        <IPv6>FALSE</IPv6>
        <ConnectionProperties>login_timeout=3</ConnectionProperties>
    </Target>

</configuration>

altiMon 실행 설정#

config.xml에서 <Altimon ...> 요소는 altiMon 로그 출력 형식, 로그 파일 삭제 주기, 모니터링 주기와 같은 altiMon 실행과 관련된 설정을 정의한다. 이 요소는 두 개의 속성과 4개의 하위 요소를 가진다.

속성#
속성 이름 설명
Name 사용자가 임의로 설정하는 altiMon의 고유 이름이다. 현재는 별다른 용도가 없으며 추후 기능 확장 시 사용될 예정이다.
monitorOsMetric                           Metrics.xml 파일에서 OSMetric 요소를 사용할 것인지 설정한다. true 또는 false 값을 가지며 기본값은 true이다.
- true : 사용한다. PICL 라이브러리가 필요하다.
- false : 사용하지 않는다. OS 자원을 감시할 필요가 없거나 PICL C 라이브러리가 제공되지 않는 환경에서 설정한다.
하위 요소#

아래 표의 태그는 <Altimon ...> 요소 아래에 중첩된 하위 요소로 사용된다.

태그 이름 설명
<LogDir> altiMon 로그 파일이 생성될 경로를 설정한다. 기본값은 logs 이며, 이 태그를 추가하지 않으면 $ALTIBASE_HOME/altiMon/logs로 설정된다. $ALTIBASE_HOME/altiMon 아래에 logs 디렉토리가 존재하지 않으면 altiMon을 시작할 때 생성한다. 값은 절대 경로나 $ALTIBASE_HOME/altiMon/ 아래에 생성할 디렉토리 이름을 사용할 수 있다.
<DateFormat> altiMon 로그의 날짜 형식을 설정한다. 기본값은 yyyy-MM-dd HH:mm:ss 이다. 설정 가능한 날짜 형식은 자바 SimpleDateFormat 클래스의 날짜 형식을 참고한다.
<MaintenancePeriod> altiMon 로그 파일의 보관 기간을 설정한다. 기본값은 3이고 단위는 일(day)이다.
<Interval> altiMon의 모니터링 데이터 수집 주기를 설정한다. 기본값은 60이고 단위는 초(second)이다.
Metrics.xml 파일의 <OSMetric> 또는 <SQLMetric> 요소에서 Interval 속성을 설정하지 않으면 이 값이 적용된다. GroupMetrics.xml 파일의 <GroupMetric> 요소에서는 이 값의 영향을 받지 않는다.
<CpuSamplingInterval> CPU 사용률(%)을 측정하는 쓰레드의 실행 주기이다. 기본값은 3이고 단위는 초(second)이다.
Altibase 7.1.0.8.4 이후 부터는 CPU 사용률을 측정하기 위해 OS CPU 사용률 측정 쓰레드, Altibase CPU 사용률 측정 쓰레드가 추가되었다. 각 쓰레드는 CpuSamplingInterval 주기로 CPU 사용률을 측정하며, 모니터링 요소에서는 이 값들을 참조 한다. OS CPU 사용률 측정 쓰레드와 Altibase CPU 사용률 측정 쓰레드는 각기 별도의 쓰레드로 동작하기 때문에, CPU 과부하시 두 측정값 사이에 시간차가 발생할 수 있다.
<DBConnectionWatchdogCycle> Altibase 서버로의 접속 시도 주기를 설정한다. Altibase 서버가 중지되었을 때 altiMon은 이 값에 따라 주기적으로 Altibase 서버에 접속을 시도하므로 Altibase 서버가 시작되면 모니터링을 지속할 수 있다. 기본값은 60이고 단위는 초(second)이다.

Altibase 서버 설정#

config.xml에서 <Target ...> 요소는 데이터베이스 사용자, 패스워드 등 altiMon으로 모니터링 할 Altibase 서버의 접속 정보를 설정한다. 이 요소는 한 개의 속성과 설정할 수 있는 속성과 8개의 하위 요소를 가진다.

속성#
속성 이름 설명
Name                                Altibase 서버를 식별하기 위한 고유 이름으로 사용자가 임의로 설정 가능하다. 현재는 별다른 용도가 없으며 추후 기능 확장 시 사용될 예정이다.
하위 요소#

아래 표의 태그는 Target 요소 아래에 중첩된 하위 요소로 사용된다.

태그 이름 설명
<HomeDirectory> Altibase 서버의 홈 디렉토리를 절대 경로로 입력한다. 설정하지 않으면 환경변수 ALTIBASE_HOME 값이 적용된다.
<User> Altibase 서버에 접속할 데이터베이스 사용자를 입력한다. 설정하지 않으면 기본값인 SYS 사용자로 접속한다.
<Password Encrypted> 데이터베이스 사용자의 패스워드를 입력한다.
Encrypted 속성은 altiMon을 처음 시작하기 전에 "No" 값으로 설정해야 한다. 이후 altiMon을 시작하면 평문으로 입력한 패스워드가 암호화된 값으로 저장되며 Encrypted 속성의 값이 "Yes"로 변경된다.
<Port> Altibase 서버의 서비스 포트를 입력한다.
<NLS> 데이터베이스 클라이언트 캐릭터셋을 입력한다.
<DbName> 데이터베이스 이름을 입력한다. 설정하지 않으면 기본값 mydb 로 설정된다.
데이터베이스 이름은 아래 문장으로 확인할 수 있다.
SELECT DB_NAME FROM V$DATABASE;
<IPv6> IPv6 사용 여부를 설정한다. true 또는 false 값을 가지며 기본값은 false 이다.
- true : IPv6를 사용한다. Altibase 서버 프로퍼티 NET_CONN_IP_STACK이 1 또는 2일 때 설정할 수 있다.
- false : IPv6를 사용하지 않는다.
<ConnectionProperties> Altibase 서버 접속할 때 추가적인 연결 속성이 필요한 경우 연결속성=값;연결속성=값;... 형식으로 입력한다. 사용할 수 있는 연결 속성은 JDBC User's Manual을 참고한다.
예: <ConnectionProperties>login_timeout=3;fetch_timeout=60<ConnectionProperties>

Metrics.xml#

CPU 및 메모리 사용률 등의 운영체제 자원과 Altibase 서버의 상태를 감시하기 위한 질의문을 설정하는 파일이다. 루트 요소 <Metrics> 태그를 시작으로 CommandMetric 요소, OSMetric 요소, SQLMetric 요소로 구성되어 있다. 각 요소는 모니터링 항목에 따라 여러 번 사용할 수 있다.

$ cat Metrics.xml | more
<?xml version="1.0" encoding="UTF-8"?>

<Metrics>

    <!-- CommandMetric 요소 --> 
    <CommandMetric Name='MEM_VSZ'>
        <Command>scriptsDir/vsz.sh</Command>
        <Alert Activate='true' ComparisonType='gt'>
            <WarningThreshold Value='100000000'>
                <ActionScript>mem_act.sh</ActionScript>
            </WarningThreshold>
        </Alert>
    </CommandMetric>    

    <!-- OSMetric 요소 -->
    <OSMetric Name='TOTAL_CPU' Activate='true' Description='TOTAL_CPU'>
    <OSMetric Name='TOTAL_CPU_USER' Activate='false' Description='TOTAL_CPU_USER'></OSMetric>
    <OSMetric Name='TOTAL_CPU_KERNEL' Activate='false'></OSMetric>    
    <OSMetric Name='PROC_CPU' Activate='true'>
        <Alert Activate='true' ComparisonType='gt'>
            <WarningThreshold Value='80' >
                <ActionScript>cpu_act.sh</ActionScript>
            </WarningThreshold>
        </Alert>
    </OSMetric>

    <!-- SQLMetric 요소 --> 
    <SQLMetric Name='MEM_DATABASE_USAGE' Activate='true' Interval='30'>
        <Query>
            select
            trunc(mem_alloc_page_count*32/1024, 2) as alloc_mem_mb,
            trunc(mem_free_page_count*32/1024, 2) as free_mem_mb
            from v$database
        </Query>
        <Alert Activate='true' ComparisonColumn='ALLOC_MEM_MB' ComparisonType='GT'>
            <CriticalThreshold Value='8000' >
                <ActionScript>db_usage.sh</ActionScript>
            </CriticalThreshold>
        </Alert>
    </SQLMetric>
    <SQLMetric Name='MEMSTAT_LIST' Activate='true'>
        <Query>SELECT * FROM v$MEMSTAT ORDER BY 4 DESC LIMIT 30</Query>
    </SQLMetric>   

</Metrics>    

사용자 정의 운영체제 자원 모니터링(CommandMetric)#

Metrics.xml에서 <CommandMetric ...> 요소는 사용자가 직접 감시할 운영체제 자원을 정의할 수 있게 지원하는 모니터링 요소이다. PICL 라이브러리가 필요한 OSMetric 요소를 사용할 수 없는 환경에서 사용자가 직접 운영체제 명령어로 자원을 감시할 수 있다. OSMetric 요소에서 지원하지 않는 항목을 CommandMetric 요소에 추가할 수도 있다.

속성#

CommandMetric 요소에서 사용할 수 있는 속성이다. 이 속성들은 OSMetric 요소, SQLMetric 요소에서도 동일하게 사용할 수 있다.

속성 이름 설명
Name CommandMetric 요소는 여러 개 사용할 수 있으며 각 요소를 식별하기 위한 고유 이름을 설정한다. 이 요소의 로그는 Name.log 로 생성된다.
Description 사용자가 임의의 설명을 기록하기 위한 항목이다.
Activate 해당 CommandMetric 요소를 수집할 것인지 설정한다. true 또는 false 값을 가지며 기본값은 true이다.
- true : 해당 CommandMetric 요소를 수집한다.
- false : 해당 CommandMetric 요소를 수집하지 않는다.
Interval 데이터 수집 주기. 단위는 초(second)이다.
설정하지 않으면 config.xml에서 Altimon 요소의 <Interval>에 설정한 값을 따른다.
Logging 데이터 수집 결과를 파일에 기록할 것인지 설정한다. true 또는 false 값을 가지며 기본값은 true이다.
- true : 데이터 수집 정보를 파일에 기록한다.
- false : 데이터 수집 정보를 파일에 기록하지 않는다. 단, 하위 요소로 <Alert ...> 태그가 활성화되었다면, alert 정보는 이 설정과 무관하게 기록된다.
하위 요소#

여러 하위 요소가 있으나 여기서는 CommandMetric 요소에서만 사용할 수 있는 하위 요소를 소개하고 다른 하위 요소는 공통 하위 요소 에서 설명한다.

태그 이름 설명
<Command> 수행할 명령어 또는 스크립트 파일 경로를 절대 경로 또는 상대 경로로 입력한다. 상대 경로의 기준은 $ALTIBASE_HOME/altiMon 디렉토리이다. 예를 들어, 절대 경로 입력 방식은 $ALTIBASE_HOME/altiMon/scriptsDir/cpuUsageWithTop.sh이고 상대 경로 입력 방식은 scriptsDir/cpuUsageWithTop.sh만 입력하면 된다.
공통 하위 요소 중 <Alert …> 태그를 설정하려면 이 항목의 결과 값이 숫자여야 한다.

미리 정의된 운영체제 자원 모니터링(OSMetric)#

Metrics.xml에서 <OSMetric ...> 요소는 PICL 라이브러리에서 미리 정의한 운영체제 자원을 감시하도록 제공하는 모니터링 요소이다.

감시 대상인 운영체제 자원은 아래와 같다.

  • CPU
  • 메모리
  • 스왑(swap)
  • 디스크
속성#

CommandMetric 요소에서 사용하는 속성과 동일하다. 다만, Name은 PICL 라이브러리에서 미리 정의한 이름을 사용해야 한다.

Name으로 사용할 수 있는 값 설명
TOTAL_CPU OS 전체 CPU 사용률(%)
TOTAL_CPU_USER 사용자 모드(user mode)에서 CPU 사용률(%)
TOTAL_CPU_KERNEL 커널 모드(kernel mode)에서 CPU 사용률(%)
PROC_CPU Altibase 프로세스의 CPU 사용률(%)
PROC_CPU_USER 사용자 모드(user mode)에서 Altibase 프로세스의 CPU 사용률(%)
PROC_CPU_KERNEL 커널 모드(kernel mode)에서 Altibase 프로세스의 CPU 사용률(%)
TOTAL_MEM_FREE 사용할 수 있는 메인 메모리(RAM)의 크기(KB)
TOTAL_MEM_FREE_PERCENTAGE 사용할 수 있는 메인 메모리(RAM)의 비율(%)
PROC_MEM_USED Altibase 프로세스가 사용중인 메인 메모리(RSS)의 크기(KB)
PROC_MEM_USED_PERCENTAGE Altibase 프로세스가 사용중인 메인 메모리(RSS)의 비율(%)
SWAP_FREE 사용 가능한 SWAP의 크기(KB)
SWAP_FREE_PERCENTAGE 전체 SWAP 공간에서 사용 가능한 SWAP의 비율(%)
DISK_FREE 지정한 디스크에서 사용되지 않은 디스크의 크기(KB).
이 값을 사용할 때는 <Disk Name ...> 하위 요소가 반드시 필요하다.
DISK_FREE_PERCENTAGE 지정한 디스크에서 사용되지 않은 디스크의 비율(%).
이 값을 사용할 때는 <Disk Name ...> 하위 요소가 반드시 필요하다.
하위 요소#

공통 하위 요소를 참고한다.

Altibase 서버 상태 모니터링(SQLMetric)#

Metrics.xml에서 <SQLMetric ...> 요소는 Altibase 서버 상태를 수집할 수 있도록 제공하는 모니터링 요소이다.

속성#

CommandMetric 요소에서 사용하는 속성과 동일하다.

하위 요소#

여러 하위 요소가 있으나 여기서는 SQLMetric 요소에서만 사용할 수 있는 하위 요소를 소개하고 다른 하위 요소는 공통 하위 요소를 참고한다.

태그 이름 설명
<Query> 모니터링 쿼리를 입력한다. 이 쿼리는 반드시 데이터 한 건을 조회하는 SELECT 문이어야 한다.

공통 하위 요소#

CommandMetric, OSMetric, SQLMetric 요소에서 공통적으로 사용할 수 있는 하위 요소를 설명한다. 각 하위 요소는 아래와 같이 중첩적으로 사용된다.

<Alert Activate='...' ComparisonColumn='...' ComparisonType='...'>
    <WarningThreshold Value='...'>
        <ActionScript>script_name</ActionScript>
    </WarningThreshold>
</Alert>
태그 이름 속성 이름 설명
<Alert ...> 이 요소는 선택 항목으로, 모니터링 요소의 출력 값이 사용자가 정의한 한계 설정을 만족할 때 별도의 로그 $ALTIBASE_HOME/altiMon/logs/alert.log에 기록하는 기능이다.
Activate <Alert ...>의 수행 여부를 설정한다. true 또는 false 값을 가지며 기본값은 true이다.
- true : alert 기능을 사용한다. 하위 요소로 <WarningThreshold ...> 또는 <CriticalThreshold ...>가 반드시 필요하다.
- false : alert 기능을 사용하지 않는다.
ComparisonColumn 이 속성은 SQLMetric에서만 사용할 수 있다. SQLMetric에서 조회한 칼럼을 입력해야 한다. 칼럼의 값은 <WarningThreshold ...> 또는 <CriticalThreshold ...>의 Value 속성과 비교 가능한 10진수 숫자여야 한다.
ComparisonType 모니터링 요소의 출력 값과 <WarningThreshold ...> 또는 <CriticalThreshold ...>의 Value 속성과 비교할 비교 연산자를 입력한다.
- eq : 모니터링 요소의 출력 값과 한계값이 같을 때
- ne : 모니터링 요소의 출력 값이 한계값과 같지 않을 때
- gt : 모니터링 요소의 출력 값이 한계값보다 클 때
- ge : 모니터링 요소의 출력 값이 한계값보다 크거나 같을 때
- lt : 모니터링 요소의 출력 값이 한계값보다 작을 때
- le : 모니터링 요소의 출력 값이 한계값보다 작거나 같을 때
<WarningThreshold ...> 또는 <CriticalThreshold ...> <Alert ...>의 하위 요소로 경고 종류를 선택한다. <WarningThreshold ...> 일 때 alert.log의 첫 번째 열은 WARNING이고 <CriticalThreshold ...>이면 CRITICAL이다.
Activate 속성값이 true이면 반드시 이 요소를 사용해야 한다.
Value 모니터링 요소의 한계 값을 10진수 숫자로 설정한다.
<ActionScript> <WarningThreshold ...> 또는 <CriticalThreshold ...>의 하위 요소로, 모니터링 요소의 출력 값이 사용자가 정의한 한계 조건에 해당할 때 수행할 스크립트 파일 이름을 입력한다. 이 파일은 미리 작성되어 있어야 하며 $ALTIBASE_HOME/altiMon/action_scripts 디렉토리에 위치해야 한다. 스크립트 수행 시 각 모니터링 요소의 Name 속성과 alert 종류, 한계 값, 모니터링 요소의 결과 값이 인자로 전달된다.
스크립트 수행 결과는 $ALTIBASE_HOME/altiMon/action_logs/actionscript_name.log에 기록된다. action_logs의 파일들은 장애 원인 분석에 꼭 필요한 정보가 될 수 있어서 altiMon이 자동으로 삭제하지 않으므로 사용자가 직접 관리해야 한다.

GroupMetrics.xml#

Metrics.xml에 정의한 Command Metric과 OS Metric 그리고 SQL Metric을 사용자가 원하는 항목 별로 조합하여 하나의 파일에 저장하는 기능을 제공한다. GroupMetrics로 수집한 데이터는 $ALTIBASE_HOME/altiMon/logs 디렉토리에 CSV 파일 형식의 GroupMetricName.csv 이름으로 저장된다. Metrics.xml은 루트 요소 <GroupMetrics> 태그를 시작으로 여러 개의 GroupMetric 요소로 구성할 수 있다.

<?xml version="1.0" encoding="UTF-8"?>

<GroupMetrics>
    <GroupMetric Name='group1' Interval='40'>
        <Target MetricName='TOTAL_CPU'/>
        <Target MetricName='PROC_CPU'/>
        <Target MetricName='LOGFILE_COUNT'>
            <Column Name='LOG_GAP' />
        </Target>
    </GroupMetric>

    <GroupMetric Name='group2' Interval='80'>
        <Target MetricName='PROC_MEM_USED_PERCENTAGE'/>
        <Target MetricName='MEM_TBL_USAGE'/>
    </GroupMetric>
</GroupMetrics>

다음은 GroupMetrics.xml에 설정할 수 있는 XML 요소와 속성에 대한 설명이다.

속성#

GroupMetric 요소에서 사용할 수 있는 속성이다. 이 속성들은 OSMetric 요소, SQLMetric 요소에서도 동일하게 사용할 수 있다.

속성 이름 설명
Name GroupMetric을 식별하는 고유한 이름으로 사용자가 임의로 설정 가능하다. 로그 파일 생성 시 이 이름이 사용된다. 예: group1.csv
Activate GroupMetric 요소를 수집할 것인지 설정한다. true 또는 false 값을 가지며 기본값은 true이다.
- true : 해당 CommandMetric 요소를 수집한다.
- false : 해당 CommandMetric 요소를 수집하지 않는다.
Interval 데이터 수집 주기. 기본값은 60이며 단위는 초(second)이다.
하위 요소#

GroupMetric 요소 아래에 <Target MetricName>, <Column Name> 요소가 중첩적으로 사용된다.

태그 이름 설명
<Target MetricName> Group Metric에 포함할 모니터링 요소들을 지정한다.

MetricName 속성에 Metrics.xml에서 정의한 Command Metric과 OSMetric 그리고 SQLMetric의 이름을 입력한다. OSMetric의 DISK_FREE와 DISK_FREE_PERCENTAGE를 입력할 때 'OSMetric Name'.'Disk Name'형식으로 입력해야 한다. 예: <Target MetricName='DISK_FREE.disk1'>
<Column Name> SQL Metric의 결과 중 일부 칼럼만 Group Metric에 포함하고 싶을 때 사용한다. 이 태그를 사용하지 않으면 SQL Metric에서 조회한 모든 칼럼이 Group Metric에 포함된다.

Name 속성에 칼럼 이름을 입력한다. 칼럼 이름에 alias를 지정한 경우 alias를 입력한다.


altiMon 로그#

altiMon 로그는 $ALTIBASE_HOME/altiMon/logs 아래에 생성된다.

logs 디렉토리#

logs 디렉토리에 생성되는 파일은 아래와 같다.

altimon.log#

altiMon 시작/중지 과정의 로그와 altiMon 수행 중 예외 상황 발생 시의 경고 또는 에러 메시지가 기록된다.

alert.log#

Metrics.xml에서 <Alert> 설정에 해당하는 데이터를 기록하는 파일이다.

$ cat alert.log 
WARNING | PROC_CPU_USER | 2022-11-21 17:21:48 | PROC_CPU_USER = [90.61]
WARNING | PROC_CPU_USER | 2022-11-21 17:22:48 | PROC_CPU_USER = [90]
WARNING | PROC_CPU_USER | 2022-11-21 17:23:48 | PROC_CPU_USER = [90]
CRITICAL | DISK_FREE_PERCENTAGE.disk1 | 2022-11-21 17:24:46 | DISK_FREE_PERCENTAGE.disk1 = [5.22]
WARNING | PROC_CPU_USER | 2022-11-21 17:24:46 | PROC_CPU_USER = [90]
CRITICAL | DISK_FREE_PERCENTAGE.disk1 | 2022-11-21 17:25:46 | DISK_FREE_PERCENTAGE.disk1 = [5.22]

OsMetrics.log#

Metrics.xml에서 설정한 OSMetric에 의해 수집된 데이터를 기록하는 파일이다.

2022-11-21 20:20:25 | TOTAL_MEM_FREE_PERCENTAGE = [40.35]
2022-11-21 20:20:25 | SWAP_FREE = [94629696]
2022-11-21 20:20:25 | DISK_FREE_PERCENTAGE.disk1 = [30.21]
2022-11-21 20:20:25 | SWAP_FREE_PERCENTAGE = [96.26]
2022-11-21 20:20:25 | TOTAL_MEM_FREE = [39970752]
2022-11-21 20:20:25 | PROC_MEM_USED = [1010604]
2022-11-21 20:20:25 | PROC_MEM_USED_PERCENTAGE = [1.02]
2022-11-21 20:20:25 | PROC_CPU_KERNEL = [0]
2022-11-21 20:20:25 | PROC_CPU_USER = [0]

[SQLMetric_Name].log#

SQL Metric에 의해 수집된 데이터가 기록된 파일이다.

-rw-rw-rw- 1 altibase altibase   15399 Nov 21 20:21 BUFFER_STAT.log
-rw-rw-rw- 1 altibase altibase   10701 Nov 21 20:21 STATEMENT_COUNT.log
-rw-rw-rw- 1 altibase altibase  451791 Nov 21 20:21 SESSION_EVENT.log
-rw-rw-rw- 1 altibase altibase 1320921 Nov 21 20:21 MEMSTAT_LIST.log
-rw-rw-rw- 1 altibase altibase  346347 Nov 21 20:21 DB_EVENT.log
-rw-rw-rw- 1 altibase altibase   86298 Nov 21 20:21 DATAFILE_STAT.log
-rw-rw-rw- 1 altibase altibase   32364 Nov 21 20:21 MEM_GC.log
-rw-rw-rw- 1 altibase altibase   28710 Nov 21 20:21 SERVICE_THREAD_MODE.log

$ more BUFFER_STAT.log
2022-11-21 13:39:42 |  VICTIM_FAILS = [0] READ_PAGES = [2]
2022-11-21 13:40:42 |  VICTIM_FAILS = [0] READ_PAGES = [2]
2022-11-21 13:41:42 |  VICTIM_FAILS = [0] READ_PAGES = [2]
2022-11-21 13:42:42 |  VICTIM_FAILS = [0] READ_PAGES = [2]

[GroupMetric_Name].csv#

Group Metric에 의해 수집된 데이터가 Metric별로 csv 파일에 기록된다.

$ cat group1.csv 
"TIMESTAMP","TOTAL_CPU_USER","PROC_CPU_USER","LOGFILE_COUNT.LOG_GAP"
"2022-11-21 13:39:42","8.01","0","0"
"2022-11-21 13:40:22","0.81","0","0"
"2022-11-21 13:41:02","0.82","0","0"
"2022-11-21 13:41:42","0.79","0","0"
"2022-11-21 13:42:22","0.69","0","0"

report.html#

사용자가 설정한 altiMon 설정을 웹으로 확인할 수 있도록 제공하는 html 파일이다.

logs/archive 디렉토리#

logs 디렉토리의 altimon.log, *.csv를 제외한 모든 파일이 archive/YYYY-MM-DD 디렉토리로 매일 백업된다. 이 디렉토리 중 config.xml의 altiMon 실행 설정에서 <MaintenancePeriod>에서 설정한 기간이 지난 디렉토리는 매일 새벽 1시 50분에 삭제된다.

logs/csv_backup 디렉토리#

Group Metric에서 Target 설정이 변경되지 않으면 계속 같은 csv 파일에 데이터가 추가된다. 하지만 Target이 변경되면 기존의 csv 파일은 logs/csv_backup 디렉토리로 백업되고 같은 이름의 파일에 새로운 데이터가 기록된다.