...
Expand | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
옵션 다음은
예: 핸들러 파일
예: TICKscript
exec 이벤트 핸들러 사용하기 exec 이벤트 핸들러는 TICKscripts나 핸들러 파일을 활용하여, 알람 로직에 기반한 외부 프로그램을 실행할 수 있습니다.
TICKscript에서 외부 프로그램 실행하기 다음 TICKscript는 exec-cpu-alert.tick
핸들러를 정의하여 외부 프로그램 실행하기 다음 설정은 "Hey, check your CPU"라는 메시지와 함께 항목에 알림 메시지를 전송하는 TICKscript를 생성하세요. 아래의 TICKscript는 유휴 CPU 사용량이 10%미만으로 떨어질 때마다 cpu_alert.tick
TICKscript 추가 및 실행하기:
exec_cpu_handler.yaml
핸들러 추가하기:
|
...
Code Block |
---|
$ vim alarm.py --- vim --- import os.path from datetime import datetime file = '/Users/choedaebeom/alarm-log.txt' if os.path.isfile(file): fs = open('/Users/choedaebeom/alarm-log.txt','a') else: fs = open('/Users/choedaebeom/alarm-log.txt','w') now = datetime.now() fs.write(str(now)+'\n') fs.close() :wq |
exec 이벤트 핸들러 사용하기
왼쪽 사이드 내비게이션에서 Alert → Alert Setting 탭을 클릭하여 페이지를 이동합니다.
오른쪽 상단의
+ Build Alert Rule
버튼을 클릭합니다.알람 규칙의 이름을 “exec idle cpu usage alert“ 으로 지정하고, Alert Type은 임계치 설정을 위해
Threshold
로 지정합니다.Time Series는 telegraf.autogen → cpu → usage_idle로 설정합니다. Condition은 현재 알람 규칙의 실행 조건을 결정하는 단계입니다. usage_idle이 100%미만 일 때 이벤트 핸들러가 실행됩니다. (100%는 테스트를 위한 값입니다. 실제 적용시 상황에 알맞게 사용하여야합니다.)
Condition의 조건에 만족했을 때 실행할 이벤트 핸들러입니다. 이 예제에서는
exec
을 선택합니다.exec 입력창에 외부프로그램을 실행시킬 프로그램의 경로와 외부 프로그램의 경로를 지정해주세요. 구분자는 공백입니다.
Code Block // 외부프로그램 실행시킬 프로그램 + 공백 + 외부프로그램 /path/to/executable /executable/arguments // example /usr/local/bin/python3.7 /Users/choedaebeom/alarm.py
Message 입력창에 아래 문구의 입력합니다. exec 이벤트 핸들러는 외부 프로그램(경보음, 경고등)등을 실행시키기 위함입니다. 따라서 exec 이벤트 핸들러는 Message를 전송하지않지만, 알람 규칙내에 혼용되는 이벤트 핸들러들을 위해 입력합니다.Code Block '{{ .Time }}: CPU idle usage 100%'
오른쪽 상단의
Save Rule
버튼을 클릭하여 알람 규칙을 저장합니다.exec
이벤트 핸들러가 외부 프로그램을 잘 실행시키는 지 확인합니다.
...
Code Block |
---|
KAPACITOR_HTTPPOST_0_ENDPOINT = "example0" KAPACITOR_HTTPPOST_0_URL = "http://example-0.com/path" KAPACITOR_HTTPPOST_0_HEADERS_Example1 = "header1" KAPACITOR_HTTPPOST_0_HEADERS_Example2 = "header2" KAPACITOR_HTTPPOST_1_ENDPOINT = "example1" KAPACITOR_HTTPPOST_1_URL = "http://example-1.com/path" KAPACITOR_HTTPPOST_1_HEADERS_Example1 = "header1" KAPACITOR_HTTPPOST_1_HEADERS_Example2 = "header2" |
옵션
다음 post
이벤트 핸들러 옵션은 핸들러 파일 또는 TICKscript에서 .post()
를 설정할 때 사용할 수 있습니다.
...
TCP 이벤트 핸들러는 JSON 인코딩된 알람 데이터를 TCP 엔드포인트로 전송합니다.
옵션
다음 TCP 이벤트 핸들러 옵션은 핸들러 파일 또는 TICKscript에서 .tcp()
를 설정할 때 사용할 수 있습니다.
...
Code Block |
---|
id: handler-id topic: topic-name kind: tcp options: address: 127.0.0.1:7777 |
예: TICKscript
Code Block |
---|
|alert() // ... .tcp('127.0.0.1:7777') |
...