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 디렉토리로 백업되고 같은 이름의 파일에 새로운 데이터가 기록된다.