...
왼쪽 내비게이션에서 Alert → Alert Setting 탭을 클릭하여 페이지를 이동합니다.
오른쪽 위의
+ Build Alert Rule
버튼을 클릭합니다.알람 규칙의 이름을 “http/post idle cpu usage alert“으로 지정하고, Alert Type은 임계치 설정을 위해
Threshold
로 지정합니다.Time Series는 telegraf.autogen → cpu → usage_idle로 설정합니다. Condition은 현재 알람 규칙의 실행 조건을 결정하는 단계입니다. usage_idle이 100% 미만 일 때 이벤트 핸들러가 실행됩니다. (100%는 테스트를 위한 값입니다. 실제 적용 시 상황에 알맞게 사용해야 합니다.)
Condition의 조건에 만족했을 때 실행할 이벤트 핸들러입니다. 이 예제에서는
post
를 선택합니다.Post 이벤트 핸들러의
HTTP endpoint for POST request
입력란에http://127.0.0.1:3333
을 입력하고, Message의 입력란에'{{ .Time }}: CPU idle usage 100%'
를 입력합니다.오른쪽 상단의 위의
Save Rule
버튼을 클릭하여 알람 규칙을 저장합니다.
...
Slack WebHook URL을 사용하면 CloudHub Portal에서 Slack으로 메시지를 전송할 수 있습니다. 다음 단계는 Slack WebHook URL을 만드는 방법을 설명합니다.
incoming webhook integrationIncoming WebHooks을 클릭하여 해당 사이트를 방문합니다.
Post to Channel
섹션에서 channel 또는 DM 선택합니다. 이 가이드에서는Create a new channel
버튼을 클릭하여 새로운 Channel을 생성하겠습니다. 테스트 Channel 이름을cloudhub-test-alert
로 지정하고Create
버튼을 눌러 생성합니다.Incoming Webhooks 페이지에서 Add Incoming WebHooks integration을 클릭합니다.
Slack Webhooks URL을 복사(Copy URL)합니다.
Webhook URL 정보로 Kapacitor의 설정을 변경해 주어야 합니다.
기본 설정을 변경하고자 하는 경우 Kapacitor의 설정 파일인kapacitor.conf
를 아래와 같이 수정하고, Kapacitor를 재시작합니다.Code Block ... [slack] enabled = true url = "Webhook URL" channel = "#cloudhub-test-alert" username = "kapacitor" icon-emoji = "" global = false state-changes-only = false ...
Send Test Alert 버튼을 눌러
#cloudhub-test-alert
Channel에 도달하는지 확인합니다.
...
Expand | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
옵션 다음 TCP 이벤트 핸들러 옵션은 핸들러 파일 또는 TICKscript에서
예: Handler File
예: TICKscript
TCP 이벤트 핸들러 사용하기 TCP 이벤트 핸들러는 TICKscripts 또는 핸들러 파일을 활용하여 사용할 수 있으며, TCP 엔드포인트로 알람 데이터를 전송합니다. TICKscript에서 TCP 엔드포인트로 알람 데이터 전송하기 아래의 TICKscript는 유휴 CPU 사용량이 10% 미만으로 떨어질 때마다 tcp-cpu-alert.tick
핸들러를 정의하여 TCP 엔드포인트로 알람 데이터 전송하기 다음 설정은 "Hey, check your CPU"라는 메시지와 함께 항목에 알람 메시지를 전송하는 TICKscript를 생성합니다. 아래의 TICKscript는 유휴 CPU 사용량이 10% 미만으로 떨어질 때마다 cpu_alert.tick
TICKscript 추가 및 실행하기:
tcp_cpu_handler.yaml
핸들러 추가하기:
|
tcp 이벤트 핸들러 테스트를 위한 서버 작성
...
테스트 서버 만들기 Node.js
...
tcp-server 디렉터리 생성 및 진입
Code Block $ mkdir tcp-server && cd tcp-server
package.json 생성
Code Block $ yarn init yarn init v1.16.0 question name (tcp-server): question version (1.0.0): question description: question entry point (index.js): question repository url: question author: question license (MIT): question private: success Saved package.json
net 라이브러리 추가 후 의존성(package.json) 확인
Code Block $ yarn add net $ cat package.json { "name": "tcp-server", "version": "1.0.0", "main": "index.js", "license": "MIT", "dependencies": { "net": "^1.0.2" } }
net 라이브러리 추가하기
의존성(package.json) 확인
server.js 생성 후 작성
Code Block $ vi server.js --- vi --- const net_server = require('net') const server = net_server.createServer(client => { console.log('Client connection: ') console.log(' local = %s:%s', client.localAddress, client.localPort) console.log(' remote = %s:%s', client.remoteAddress, client.remotePort) client.setTimeout(500) client.setEncoding('utf8') client.on('data', data => { console.log( 'Received data from client on port %d: %s', client.remotePort, data.toString() ) writeData(client, 'Sending: ' + data.toString()) console.log(' Bytes sent: ' + client.bytesWritten) }) client.on('end', () => { console.log('Client disconnected') }) client.on('error', err => { console.log('Socket Error: ', JSON.stringify(err)) }) client.on('timeout', () => { console.log('Socket Timed out') }) }) server.listen(7777, () => { console.log('Server listening: ' + JSON.stringify(server.address())) server.on('close', () => { console.log('Server Terminated') }) server.on('error', err => { console.log('Server Error: ', JSON.stringify(err)) }) }) const writeData = (socket, data) => { const success = socket.write(data) if (!success) console.log('Client Send Fail') } :wq
...
CloudHub Portal 부분입니다. 왼쪽 내비게이션에서 Alert → Alert Setting 탭을 클릭하여 페이지를 이동합니다.
오른쪽 위의
+ Build Alert Rule
버튼을 클릭합니다.알람 규칙의 이름을 “tcp idle cpu usage alert“ 으로 지정하고, Alert Type은 임계치 설정을 위해
Threshold
로 지정합니다.Time Series는 telegraf.autogen → cpu → usage_idle로 설정합니다. Condition은 현재 알람 규칙의 실행 조건을 결정하는 단계입니다. usage_idle이 100% 미만 일 때 이벤트 핸들러가 실행됩니다. (100%는 테스트를 위한 값입니다. 실제 적용 시 상황에 알맞게 사용해야 합니다.)
Condition의 조건에 만족했을 때 실행할 이벤트 핸들러입니다. 이 예제에서는
tcp
를 선택합니다.tcp
이벤트 핸들러의 입력창에 엔드포인트 주소는127.0.0.1:7777
입니다. 해당 엔드포인트에 JSON 인코딩된 알람 데이터가 전송됩니다.오른쪽 위의
Save Rule
버튼을 클릭하여 알람 규칙을 저장합니다.알람을 활성화되어있는 지 되어있는지 확인합니다.
작성한 서버를 실행하고 들어오는 값 확인하기.
...