TICK Stack을 통한 모니터링 환경 구축(Telegraf+InflumxDB+Chronogaf+Kapacitor)
개요
최소한의 설정으로 TICK Stack 구축
TICK은 다음 Inflexdb 수정influxdata 도구 그룹으로 구성된 Stack인 것 같습니다.
※ 공식 홈페이지를 통해
컨디션
AWS에서 서버 2대 준비
다양한 설치
InflexDB 설치$ wget https://influxdb.s3.amazonaws.com/influxdb-0.10.0-0.beta1.x86_64.rpm
$ sudo yum localinstall influxdb-0.10.0-0.beta1.x86_64.rpm
Telegraf 설치$ wget http://get.influxdb.org/telegraf/telegraf-0.10.0-1.x86_64.rpm
$ sudo yum localinstall telegraf-0.10.0-1.x86_64.rpm
Kapacitor 설치$ wget https://s3.amazonaws.com/influxdb/kapacitor-0.2.4-1.x86_64.rpm
$ sudo yum localinstall kapacitor-0.2.4-1.x86_64.rpm
Chronograf 설치$ wget https://s3.amazonaws.com/get.influxdb.org/chronograf/chronograf-0.4.0-1.x86_64.rpm
$ sudo yum localinstall chronograf-0.4.0-1.x86_64.rpm
InflexDB 설치
어쨌든 기본적으로 시작합니다.$ sudo /etc/init.d/influxdb start
Telegraf 설치
$ wget https://influxdb.s3.amazonaws.com/influxdb-0.10.0-0.beta1.x86_64.rpm
$ sudo yum localinstall influxdb-0.10.0-0.beta1.x86_64.rpm
$ wget http://get.influxdb.org/telegraf/telegraf-0.10.0-1.x86_64.rpm
$ sudo yum localinstall telegraf-0.10.0-1.x86_64.rpm
$ wget https://s3.amazonaws.com/influxdb/kapacitor-0.2.4-1.x86_64.rpm
$ sudo yum localinstall kapacitor-0.2.4-1.x86_64.rpm
$ wget https://s3.amazonaws.com/get.influxdb.org/chronograf/chronograf-0.4.0-1.x86_64.rpm
$ sudo yum localinstall chronograf-0.4.0-1.x86_64.rpm
어쨌든 기본적으로 시작합니다.
$ sudo /etc/init.d/influxdb start
Telegraf 설치
$ sudo vi /etc/telegraf/telegraf.conf
urls = ["http://172.31.17.95:8086"]
[[inputs.cpu]]
percpu = false
Telegraf 시작$ sudo /etc/init.d/telegraf start
기본 모니터링 설정은 다음과 같습니다.measurement
field
cpu
time_guest, time_guest_nice time_idle, time_iowait, time_irq, time_nice, time_softirq, time_steal, time_system, time_user, usage_guest, usage_guest_nice, usage_idle, usage_iowait, usage_irq, usage_nice, usage_softirq, usage_steal, usage_system, usage_user
disk
free, fstype, inodes_free, inodes_total, inodes_used, path, total, used
diskio
io_time name, read_bytes, read_time, reads, serial, write_bytes, write_time, writes
mem
available, available_percent, buffered, cached, free, total, used, used_percent
swap
free, in, out, total, used, used_percent
system
load1, load15, load5
※ 위의 양도를 10초마다 인플렉스 DB로 output
Kapacitor 설정
이메일 알림 사용$ sudo vi /etc/kapacitor/kapacitor.conf
/etc/kapacitor/kapacitor.conf[smtp]
enabled = true #有効化
host = "127.0.0.1"
port = 25
username = ""
password = ""
from = "[email protected]" #送信元アドレス
to = ["****@*************"] #アラートメール通知先
no-verify = false
idle-timeout = "30s"
Kapacitor 시작$ sudo /etc/init.d/kapacitor start
경고 설정
tick 스크립트 만들기
cpu_alert.tickstream
.from().measurement('cpu')
.alert()
.warn(lambda: "usage_idle" < 30) #idle 30%以下で warning
.crit(lambda: "usage_idle" < 10) #idle 30%以下で critical
.email() #email 通知
task 투입$ kapacitor define -name cpu_alert -type stream -dbrp telegraf.default -tick cpu_alert.tick
task의 유효성$ kapacitor enable cpu_alert
감시 대상의 규격이 비교적 낮기 때문에, 가벼운 부하를 더한 후 대량의 우편물이 날아올 것이다
메일의 테마에서 호스트 이름 부분이nil이기 때문에 수정해야 합니다
flaping도 귀찮아요. 어떻게든 해결할게요.
경보 조정
$ sudo vi /etc/kapacitor/kapacitor.conf
[smtp]
enabled = true #有効化
host = "127.0.0.1"
port = 25
username = ""
password = ""
from = "[email protected]" #送信元アドレス
to = ["****@*************"] #アラートメール通知先
no-verify = false
idle-timeout = "30s"
$ sudo /etc/init.d/kapacitor start
stream
.from().measurement('cpu')
.alert()
.warn(lambda: "usage_idle" < 30) #idle 30%以下で warning
.crit(lambda: "usage_idle" < 10) #idle 30%以下で critical
.email() #email 通知
$ kapacitor define -name cpu_alert -type stream -dbrp telegraf.default -tick cpu_alert.tick
$ kapacitor enable cpu_alert
stream
.from().measurement('cpu')
.groupBy('host','cpu')
.window()
.period(60s)
.every(60s)
.alert()
.id('{{ index .Tags "host" }}/{{ index .Tags "cpu" }}')
.warn(lambda: "usage_idle" < 30)
.crit(lambda: "usage_idle" < 10)
.stateChangesOnly()
.email()
task 재투입$ kapacitor define -name cpu_alert -type stream -dbrp telegraf.default -tick cpu_alert.tick
확인$ kapacitor show cpu_alert
Name: cpu_alert
Error:
Type: stream
Enabled: true
Executing: true
Databases Retention Policies: ["telegraf"."default"]
TICKscript:
stream
.from().measurement('cpu')
.groupBy('host','cpu')
.window()
.period(60s)
.every(60s)
.alert()
.id('{{ index .Tags "host" }}/{{ index .Tags "cpu" }}')
.warn(lambda: "usage_idle" < 30)
.crit(lambda: "usage_idle" < 10)
.stateChangesOnly()
.email()
DOT:
digraph cpu_alert {
stream0 -> stream1 [label="12"];
stream1 -> window2 [label="1"];
window2 -> alert3 [label="0"];
}
task 일람표 얻기$ kapacitor list tasks
Name Type Enabled Executing Databases and Retention Policies
cpu_alert stream true true ["telegraf"."default"]
경고 메일 확인주의 사항
tick 스크립트의 문법 오류는 define에서 검사된 오류입니다. 실행 중 오류가 발생하는task를 삽입하면panic가 떨어져서 시작할 수 없습니다
이런 거.
cpu_alert.tick
stream
.from().measurement('cpu')
.window()
.period(30s)
.every(30s)
.groupBy('host','cpu')
.alert()
.warn(lambda: "usage_idle" < 30)
.crit(lambda: "usage_idle" < 10)
.log('/tmp/cpu_alert.log'
대응:task db 초기화 제거$ sudo rm /var/lib/kapacitor/tasks/task.db
Chronograf 설정
외부 액세스 허용$ sudo vi /opt/chronograf/config.toml
Bind = "0.0.0.0:10000"
Chronograf 시작$ sudo /etc/init.d/chronograf start
http:/{서버 IP 주소}:10000 액세스
Addnew server에서 NICKNAME을 적절하게 입력한 다음 Save
↓
New Graph에서 차트 이름을 설정하고 BUILDER를 사용하여 질의 작성
telegraf로 얻은 cpu 도량의 도표
다음에telegraf의 측정과kapacitor의 이벤트 처리를 깊이 있게 발굴할 것입니다
Reference
이 문제에 관하여(TICK Stack을 통한 모니터링 환경 구축(Telegraf+InflumxDB+Chronogaf+Kapacitor)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/quickguard/items/31e8d5ced9be54c25a8c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sudo vi /opt/chronograf/config.toml
Bind = "0.0.0.0:10000"
$ sudo /etc/init.d/chronograf start
Reference
이 문제에 관하여(TICK Stack을 통한 모니터링 환경 구축(Telegraf+InflumxDB+Chronogaf+Kapacitor)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/quickguard/items/31e8d5ced9be54c25a8c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)