Name
Last commit
Last update
..
.gitkeep k8s, oper update12
README.md k8s, oper update14(kapacitor completed)

logo

Kapacitor 설치 및 구성

Kapacitor는 원시 데이터 처리 엔진이다. InfluxDB에서 스트림 및 배치 데이터를 모두 처리할 수 있으며, Kapacitor를 사용하면 동적 임계 값으로 경고를 처리하고, 패턴에 대한 메트릭을 일치시키며, 통계적 이상을 계속하고 동적로드 재조정과 같은 이러한 경고를 기반으로 특정 작업을 수행하는 사용자 정의 논리 또는 사용자 정의 함수를 연결할 수 있다.

Kapacitor는 HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack과 통합 된다.

Kapacitor 개요

Kapacitor 작업은 TICK script 구문을 사용하여 데이터 집합에서 수행 할 작업을 정의하며, Kapacitor 작업에는 다음이 포함된다.

  • stream task - stream task은 Kapacitor의 InfluxDB에 기록 된 데이터를 복제한다. 이는 쿼리 오버 헤드를 줄이고, Kapacitor가 데이터를 디스크에 저장해야한다.
  • batch task - 일괄 작업은 지정된 간격 동안 데이터를 쿼리하고 처리한다.

Kapacitor 설치

Kapacitor는 influxdata 에서 개발하고 배포하고 있다. 따라서 YUM Repository를 별도로 등록해야 한다.

# cat /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key

다음과 같이 yum 명령으로 진행하면 된다.

# yum install kapacitor

!중요 : Kapacitor의 데몬을 실행하기 위해서는 반드시 통신/계정접근이 가능한 InfluxDB가 사전에 준비되어 있어야 한다.

# cat /etc/kapacitor/kapacitor.conf
...중략
[[influxdb]]
  # Connect to an InfluxDB cluster
  # Kapacitor can subscribe, query and write to this cluster.
  # Using InfluxDB is not required and can be disabled.
  enabled = true
  default = true
  name = "influxdb01"
  urls = ["http://172.16.0.188:8086"]
  username = "admin"
  password = "패스워드"
  timeout = 0

그리고 사용자의 권한은 반드시 Admin 계정이 부여되어야 한다.

Kapacitor Task 제어 흐름

Kapacitor Task의 활성화는 다음의 순서대로 진행되어야 한다.

"Tick 스크립트 작성 -> Task의 등록/변경/제거 -> List Tasks 명령 쿼리로 확인 -> Task의 Enabled/Disabled"

Tick Script 작성

일반적으로 Tick 스크립트와 템플릿은 특정 경로에 디렉토리를 생성해서 진행하는 것이 향후 관리에 도움이 될 것이다. 따라서 다음과 같이 디렉토리 생성을 진행한다.

# mkdir /root/kapacitor
# cd /root/kapacitor
# mkdir scripts values
  • /root/kapacitor/scripts : tick 스크립트 파일이 위치하는 경로
  • /root/kapacitor/values : json 변수 파일이 위치하는 경로

Task 등록

  1. Template 등록

확장자가 .tick로 끝나는 파일을 작성한 후 define-template 옵션을 사용하여, 다음과 같이 등록한다.

# kapacitor define-template CPU-USED-PERCENT-COMMON -tick /root/kapacitor/scripts/cpu_common.tick

!참고 : 관례적으로 Task의 이름은 대문자로 하는 것이 좋다.

  1. 등록한 Task 확인

show-template 옵션을 사용하여, 다음과 같이 등록된 Task를 확인한다.

# kapacitor show-template CPU-USED-PERCENT-COMMON
ID: CPU-USED-PERCENT-COMMON
Error:
Type: batch
Created: 05 Mar 22 15:47 KST
Modified: 15 Mar 22 12:34 KST
TICKscript:
// Json Variables
var strDB string
var strRP string
...중략
  1. 등록한 Task에 대한 변수를 정의하는 JSON 파일 작성

이 json 파일은 Task에 대한 변수 값을 실시간으로 적용할 수 있도록 하는데, define 옵션을 사용하면 된다.

# kapacitor define CPU-USED-PERCENT-COMMON -file /root/kapacitor/values/CPU-USED-PERCENT-COMMON.json

!참고 : json 파일의 경우도 Task의 이름과 동일하게 대문자로 작성하는 것이 좋다.

  1. Task 활성화

Task를 등록하면, 최초 상태는 disabled 상태가 되기 때문에 자동으로 활성화되지 않는다. 따라서 다음과 같이 활성화를 진행한다.

# kapacitor list tasks
ID                      Type      Status    Executing Databases and Retention Policies
CPU-USED-PERCENT-COMMON batch     disabled  false     ["hongsnet"."autogen"]

enable 옵션을 사용하여 활성화 한다.

# kapacitor enable CPU-USED-PERCENT-COMMON

Tick / Template 변수 수정

Tick 스크립트 및 Json 파일을 수정한 후 다음과 같이 간단하게, 즉시 적용이 가능하다.

  1. Tick 스크립트 변경

Tick 스크립트의 내용을 변경한 후 다음과 같이 define-template 옵션을 사용하여 명령하면 된다.

# kapacitor define-template CPU-USED-PERCENT-COMMON -tick /root/kapacitor/scripts/cpu_common.tick
  1. Template 변수 수정

Json 파일의 내용을 변경한 후 다음과 같이 define 옵션을 사용하여 명령하면 된다.

# kapacitor define CPU-USED-PERCENT-COMMON -file /root/kapacitor/values/CPU-USED-PERCENT-COMMON.json

Task 제거

  1. 제거할 Task 확인
# kapacitor list tasks
ID                      Type      Status    Executing Databases and Retention Policies
CPU-USED-PERCENT-COMMON batch     enabled   true      ["hongsnet"."autogen"]
  1. Task 제거
# kapacitor delete tasks CPU-USED-PERCENT-COMMON

그럼, 다음과 같이 삭제된 것을 확인할 수 있다.

# kapacitor list tasks
ID Type      Status    Executing Databases and Retention Policie