반응형
이후 influxdb 구성을 한다.
보통은 UI를 이용하는데 편의상 Command line으로 진행한다.
influxdb 구성
# influxdb 컨테이너 진입
$ docker exec -it influxdb2 /bin/bash
# influxdb 설정
bash-5.1# influx setup --username anonym --password 'anonym!@34' --org ANONYM_GRP --bucket telegraf --retention 1w --force
> Config default has been stored in /etc/influxdb2/influx-configs.
User Organization Bucket
anonym ANONYM_GRP telegraf
# influxdb 에 새로 설정된 계정의 token 확인 - telegraf 에서 사용
bash-5.1# influx auth list
ID Description Token User Name User ID Permissions
081be7ad7aa16000 anonym's Token Q6a7ox2TGpTaJGx_e-McIlGYOko77a1ajsUI0XE0OtsoV5ObQEx6LgBKcivwHxWDeOfzl29uDqP72g3flEKrNg== anonym 081be7ad64216000 [read:authorizations write:authorizations read:buckets write:buckets read:dashboards write:dashboards read:orgs write:orgs read:sources write:sources read:tasks write:tasks read:telegrafs write:telegrafs read:users write:users read:variables write:variables read:scrapers write:scrapers read:secrets write:secrets read:labels write:labels read:views write:views read:documents write:documents read:notificationRules write:notificationRules read:notificationEndpoints write:notificationEndpoints read:checks write:checks read:dbrp write:dbrp]
bash-5.1#
telegref.conf 구성
# /data/inftelegra/telegraf/telegraf.conf 의 파일을 수정
> hostname = "SERVER_NAME" # 원하는 서버명 기재 - influxdb 쿼리 시 사용, grafana에 표시된다.
> #[[outputs.influxdb]] # 주석 처리 - v1.x을 사용하지 않을 것이므로
> [[outputs.influxdb_v2]] # 주석 해제 - v2.x를 사용할 것이므로
> urls = ["http://10.211.55.31:8086"] # 주석 해제 후 주소 변경 - 접속할 influxdb 정보
> token = "Q6a7ox2TGpTaJGx_e-McIlGYOko77a1ajsUI0XE0OtsoV5ObQEx6LgBKcivwHxWDeOfzl29uDqP72g3flEKrNg==" # 주석 해제 후 Token 기입 - influxdb 정보
> organization = "ANONYM_GRP" # 주석 해제 후 org 기입 - influxdb에 저장된 정보
> bucket = "telegraf" # 주석 해제 후 bucket 기입 - influxdb에 저장된 정보
# 구성 저장 후 container 재시작
$ docker restart telegraf
telegraf
$
influxdb의 데이터 수집 확인
# docker 에 shell 진입
$ docker exec -it influxdb2 /bin/bash
# 진입한 쉘에서 명령어 실행
bash-5.1# influx query
# 아래 쿼리 입력
from(bucket: "telegraf")
|> range(start: -10m)
|> filter(fn: (r) => r["_measurement"] == "cpu")
|> filter(fn: (r) => r["_field"] == "usage_idle")
|> filter(fn: (r) => r["cpu"] == "cpu-total")
|> map(fn: (r) => ({ r with _value: r._value * -1.0 + 100.0 }))
|> toFloat()
|> yield(name: "mean")
# 필요하면 host 필터를 넣을 수도 있다. |> filter(fn: (r) => r["host"] == "HOST_NAME")
# ctrl - d 를 입력하면 쿼리가 commit 되고 결과가 표시됨
# 아래와 같이 정상적으로 결과가 표시되면 수집 OK
# 쿼리 파일을 만들어 수행하는 방법도 있음. influx query -r --file query.flux
Result: mean
Table: keys: [_field, _measurement, _start, _stop, cpu, host]
_field:string _measurement:string _start:time _stop:time cpu:string host:string _time:time _value:float
---------------------- ---------------------- ------------------------------ ------------------------------ ---------------------- ---------------------- ------------------------------ ----------------------------
usage_idle cpu 2021-09-07T10:15:32.430768748Z 2021-09-07T10:25:32.430768748Z cpu-total SVR_NM 2021-09-07T10:15:40.000000000Z 0.20090406831177177
usage_idle cpu 2021-09-07T10:15:32.430768748Z 2021-09-07T10:25:32.430768748Z cpu-total SVR_NM 2021-09-07T10:15:50.000000000Z 0.2510040160606195
usage_idle cpu 2021-09-07T10:15:32.430768748Z 2021-09-07T10:25:32.430768748Z cpu-total SVR_NM 2021-09-07T10:16:00.000000000Z 0.1507537688566174
usage_idle cpu 2021-09-07T10:15:32.430768748Z 2021-09-07T10:25:32.430768748Z cpu-total SVR_NM 2021-09-07T10:16:10.000000000Z 0.3018108651794762
usage_idle cpu 2021-09-07T10:15:32.430768748Z 2021-09-07T10:25:32.430768748Z cpu-total SVR_NM 2021-09-07T10:16:20.000000000Z 0.2510040160606195
usage_idle cpu 2021-09-07T10:15:32.430768748Z 2021-09-07T10:25:32.430768748Z cpu-total SVR_NM 2021-09-07T10:16:30.000000000Z 0.25125628142158973
usage_idle cpu 2021-09-0
반응형
Comment