...
Token
봇의 API access token을 기입합니다.Chat ID
알람 메세지를 받을 계정의 Chat ID를 기입합니다.Select the alert message format. 알람 메시지 형식을 선택합니다.
알람 메시지의 형식을 지정하려면 마크다운(기본) 또는 HTML을 선택합니다.Disable link previews in alert messages. 링크 미리보기 비활성화
알람 메시지에서 링크 미리보기를 비활성화하려면 이 옵션을 선택합니다.Disable notifications on iOS devices and disable sounds on Android devices. Android users continue to receive notifications. 알람 비활성화
iOS 장치 및 안드로이드 장치의 사운드에 대한 알람을 비활성화하려면 이 옵션을 선택합니다. 안드로이드 사용자는 계속 알람을 수신합니다.Send Test Alert 버튼을 클릭하면 아래의 이미지처럼 테스트 메시지가 전송됩니다.
...
TCP
...
수정중
TCP 이벤트 핸들러는 JSON 인코딩된 알람 데이터를 TCP 엔드포인트로 전송합니다.
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
핸들러 추가하기:
|
예제
준비물: node.js 8+
tcp 이벤트 핸들러를 사용하기 위해 테스트용 서버를 작성합니다.
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" } }
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
을 선택합니다.오른쪽 상단의
Save Rule
버튼을 클릭하여 알람 규칙을 저장합니다.CLI 로 돌아와 테스트용 server를 실행합니다.
Code Block $ node server.js