DataKit AIX
DataKit AIX는 IBM AIX 호스트 자체 지표, 호스트 객체, 오류 로그 errpt를 수집하며, 필요에 따라 DB2, Oracle, Informix, Sybase, IBM MQ, WebSphere, IHS, SAP 등 미들웨어 지표 수집도 활성화할 수 있습니다.
테스트된 버전:
- AIX 7.2 TL5 SP10
설정¶
설치¶
AIX 호스트에서 설치 스크립트를 실행합니다. DATAKITAIX_DATAWAY는 /etc/datakitaix/datakitaix.toml의 [dataway] 설정에 기록됩니다.
최신 버전 설치:
DATAKITAIX_DATAWAY=https://openway.guance.com?token=<TOKEN> sh -c "$(curl -L https://static.guance.com/datakitaix/install.sh)"
지정 버전 설치:
DATAKITAIX_DATAWAY=https://openway.guance.com?token=<TOKEN> sh -c "$(curl -L https://static.guance.com/datakitaix/install-<VERSION>.sh)"
예시:
DATAKITAIX_DATAWAY=https://openway.guance.com?token=<TOKEN> sh -c "$(curl -L https://static.guance.com/datakitaix/install-1.0.0.sh)"
오프라인 설치:
gzip -dc datakitaix-offline-aix-ppc64-<VERSION>.tar.gz | tar -xf -
cd datakitaix-offline-aix-ppc64-<VERSION>
DATAKITAIX_DATAWAY=https://openway.guance.com?token=<TOKEN> sh install.sh
설치 후 기본 경로는 다음과 같습니다.
| 경로 | 설명 |
|---|---|
/opt/datakitaix/bin/datakitaix |
메인 프로그램 |
/usr/bin/datakitaix |
datakitaix를 바로 실행하기 위한 명령 심볼릭 링크 |
/etc/datakitaix/datakitaix.toml |
실행 설정, 설치 시 생성됨 |
/etc/datakitaix/datakitaix.toml.sample |
현재 버전의 설정 예시, 업그레이드 시 갱신됨 |
/var/lib/datakitaix |
실행 데이터, spool 및 errpt 커서 |
/var/log/datakitaix |
실행 로그 |
설치 스크립트는 AIX SRC 서비스 datakitaix를 등록합니다. DataWay가 설정되지 않으면 서비스는 등록되지만 자동으로 시작되지 않습니다.
업그레이드¶
이미 DataKit AIX가 설치된 호스트에서 실행합니다.
업그레이드 시 DataWay도 함께 갱신해야 하면 DATAKITAIX_DATAWAY를 추가합니다.
DATAKITAIX_DATAWAY=https://openway.guance.com?token=<TOKEN> DATAKITAIX_UPGRADE=1 sh -c "$(curl -L https://static.guance.com/datakitaix/install.sh)"
업그레이드는 바이너리를 교체하고 datakitaix.toml.sample을 갱신하며, 기존 /etc/datakitaix/datakitaix.toml은 유지합니다. 업그레이드 중 DATAKITAIX_DATAWAY로 기존 설정을 덮어쓸 경우, 먼저 같은 디렉터리에 datakitaix.toml.old.<timestamp>를 생성합니다.
제거¶
기본적으로 바이너리, 보조 스크립트, 명령 심볼릭 링크, SRC 등록만 삭제하고 설정과 실행 데이터는 보존합니다. 설정과 데이터까지 함께 정리하려면:
명령 설명¶
| 명령 | 설명 |
|---|---|
startsrc -s datakitaix |
AIX SRC 서비스를 시작합니다. |
stopsrc -s datakitaix |
AIX SRC 서비스를 중지합니다. |
lssrc -s datakitaix |
AIX SRC 서비스 상태를 확인합니다. |
datakitaix version |
현재 버전 번호를 출력합니다. |
datakitaix run -config /etc/datakitaix/datakitaix.toml |
포그라운드에서 실행하며, 설정에 따라 collector, input, 로그 tailer, health-check, OpenTelemetry를 시작합니다. |
datakitaix once -config /etc/datakitaix/datakitaix.toml |
collector를 한 번만 실행하고 DataWay로 전송합니다. |
datakitaix once -dry-run -config /etc/datakitaix/datakitaix.toml |
collector를 한 번만 실행하고 line protocol을 출력하며, 전송하지 않습니다. |
datakitaix check -config /etc/datakitaix/datakitaix.toml |
설정을 검증하고 시작 전 점검을 수행합니다. |
주요 설정¶
주요 설정에는 전역 항목만 남겨둡니다. 자체 수집기, 미들웨어, 파일 로그, health-check, OpenTelemetry 설정은 아래 각 통합 문서를 참고하세요.
[logging]
# Agent 실행 로그 설정.
log = "/var/log/datakitaix/datakitaix.log"
error_log = "/var/log/datakitaix/error.log"
level = "info"
disable_color = false
rotate = 32
rotate_backups = 5
[dataway]
# DataWay 주소. 설치 시 DATAKITAIX_DATAWAY를 설정하면 이 설정에 자동으로 기록됩니다.
urls = ["https://openway.guance.com?token=<TOKEN>"]
timeout = "30s"
retry = 2
gzip = true
max_raw_body_size = 1048576
[spool]
# 재시도 가능한 업로드 실패용 로컬 디스크 캐시를 활성화합니다.
enabled = true
# 실패 데이터 캐시 디렉터리이며, 로그 tailer offset 상태도 함께 저장합니다.
path = "/var/lib/datakitaix/spool"
# 재전송 대기 spool 파일의 최대 디스크 사용량. 초과 시 가장 오래된 파일부터 삭제합니다.
max_size_mb = 128
# 재전송 대기 spool 파일의 최대 개수.
max_files = 5000
# 재전송 대기 데이터의 재시도 간격.
drain_interval = "30s"
[global_tags]
# 모든 수집 데이터에 추가되는 전역 tag.
# env = "prod"
[self_monitor]
# datakitaix 프로세스, Go runtime, spool 상태를 보고합니다.
enabled = true
# 자체 지표 보고 간격.
interval = "30s"
자체 수집기¶
자체 수집기는 AIX 호스트 자체 지표, 프로세스 객체, 호스트 객체, errpt를 수집하는 데 사용됩니다.
| 수집기 이름 | 설명 |
|---|---|
CPU(cpu) |
호스트 CPU 사용량을 수집합니다. |
Disk(disk) |
디스크와 파일 시스템 사용량을 수집합니다. |
디스크 IO(diskio) |
호스트 디스크 IO 상태를 수집합니다. |
Mem(mem) |
호스트 메모리 사용량을 수집합니다. |
Swap(swap) |
paging space 사용량을 수집합니다. |
System(system) |
호스트 운영체제 부하를 수집합니다. |
Net(net) |
호스트 네트워크 트래픽과 프로토콜 스택 상태를 수집합니다. |
LPARStat(lparstat) |
LPAR 및 Hypervisor 지표를 수집하며, 기본적으로 비활성화되어 있습니다. |
Process(process) |
호스트 프로세스 객체를 수집합니다. |
호스트 객체(hostobject) |
운영체제 정보, 하드웨어 정보 등 호스트 기본 정보를 수집합니다. |
Errpt(errpt) |
AIX 오류 보고를 수집합니다. |
미들웨어 수집¶
미들웨어 input은 기본적으로 비활성화되어 있으며, [inputs].enabled = true를 설정하고 각 인스턴스를 활성화해야 합니다.
| 수집기 이름 | 설명 |
|---|---|
DB2(db2) |
IBM DB2 인스턴스, 데이터베이스, 테이블스페이스, HADR 상태를 수집합니다. |
Oracle(oracle) |
Oracle 데이터베이스, 테이블스페이스, ASM, FRA, 대기 이벤트 상태를 수집합니다. |
Informix(informix) |
Informix 인스턴스, 세션, dbspace, 로그 사용량을 수집합니다. |
Sybase(sybase) |
Sybase ASE 연결 및 데이터베이스 용량 상태를 수집합니다. |
IBM MQ(ibm_mq) |
Queue Manager, 큐, 채널, 리스너 상태를 수집합니다. |
WebSphere(websphere) |
WebSphere server, JVM, thread pool, HTTP session 상태를 수집합니다. |
IHS(ihs) |
IBM HTTP Server worker, 트래픽, scoreboard 상태를 수집합니다. |
SAP(sap) |
SAP 인스턴스 프로세스, 큐, enqueue, 알림 상태를 수집합니다. |
확장 기능¶
| 기능 | 설명 |
|---|---|
| 파일 로그 | [logs]와 여러 [[logs.files]] 설정을 통해 로컬 파일 로그를 수집합니다. |
| Health Check | [healthcheck] 설정을 통해 TCP/HTTP 가용성 검사를 수행합니다. |
| OpenTelemetry | [otel] 설정을 통해 OpenTelemetry HTTP/gRPC 수신기를 구성합니다. |
자체 지표¶
DataKit AIX는 [self_monitor]를 통해 자체 실행 상태 지표를 보고하여 datakitaix 프로세스, Go runtime, spool 상태를 관찰할 수 있습니다.
datakitaix¶
| 태그 및 필드 | 설명 |
|---|---|
| host ( tag) |
호스트명입니다. |
| uptime_seconds | datakitaix 프로세스의 실행 시간입니다. 유형: int | (gauge) 단위: time,s |
| goroutines | 현재 Go goroutine 수입니다. 유형: int | (gauge) 단위: count |
| cpu_usage | datakitaix 프로세스의 CPU 사용률입니다. 유형: float | (gauge) 단위: percent |
| cpu_cores | Go runtime이 볼 수 있는 CPU 코어 수입니다. 유형: int | (gauge) 단위: count |
| go_mem_heap_alloc | 현재 Go heap에 할당된 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| go_mem_heap_inuse | 현재 사용 중인 Go heap 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| go_mem_heap_released | 운영체제에 반환된 Go heap 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| go_mem_stack_inuse | 현재 사용 중인 Go stack 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| go_mem_sys | Go runtime이 운영체제에 요청한 총 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| go_gc_count | 누적 Go GC 횟수입니다. 유형: int | (count) 단위: count |
| go_gc_pause_total_ns | 누적 Go GC 일시정지 시간입니다. 유형: int | (count) 단위: time,ns |
| spool_pending | 현재 spool의 전송 대기 파일 수입니다. 유형: int | (gauge) 단위: count |
| spool_bytes | 현재 spool의 전송 대기 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| spool_bad_files | 현재 spool의 손상된 파일 수입니다. 유형: int | (gauge) 단위: count |
| spool_bad_bytes | 현재 spool의 손상된 파일 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| spool_tmp_files | 현재 spool의 임시 파일 수입니다. 유형: int | (gauge) 단위: count |
| spool_tmp_bytes | 현재 spool의 임시 파일 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |
| spool_dropped_files | 현재 spool에서 버려진 파일 수입니다. 유형: int | (gauge) 단위: count |
| spool_dropped_bytes | 현재 spool에서 버려진 파일 바이트 수입니다. 유형: int | (gauge) 단위: digital,B |