telegraf 설치 및 influxdb에 데이터 전송 (모니터링 서비스 구축) 0








telegraf를 통한 influxdb에 데이터 전송.

telegraf란 Go 언어로 쓰여진 agent로 주로 수집, 처리, 메트릭에 쓰기 위해 사용된다. 
서버의 상태 cpu, memory,disk, db 등등 다양한 정보들을 influxdb로 보내 grafana에 그래프를 그릴 수 있도록 설치하였다.


1. Docker-compose 파일 작성

  * 다른 서버들과 버전을 맞추기 위해 tel
  mkdir /home/docker/telegraf
  vi /home/docker/telegraf/docker-compose.yml

telegraf:
  image: telegraf:1.12.6
  container_name: default-telegraf
  privileged: true
  restart: always
  environment:
    - HOST_PROC=/rootfs/proc
    - HOST_SYS=/rootfs/sys
    - HOST_MOUNT_PREFIX=/rootfs
  net: host
  volumes:
    - /:/rootfs:ro
    - /proc:/rootfs/proc:ro
    - /sys:/rootfs/sys:ro
    - /var/run/docker.sock:/var/run/docker.sock
    - /home/docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf


2. telegraf.conf 파일 작성

   vi /home/docker/telegraf/telegraf.conf
  * 아래 노란색 부분은 수정하여 사용

[global_tags]

[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  debug = false
  quiet = false
  logfile = ""
  hostname = "Server Hostname"
  omit_hostname = false


[[outputs.influxdb]]
  urls = ["http://influxdb IP:8086"]
  database = "COMMON"
  retention_policy = ""
  write_consistency = "any"
  timeout = "5s"

[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false


[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs"]

[[inputs.diskio]]

[[inputs.kernel]]

[[inputs.mem]]

[[inputs.processes]]

[[inputs.swap]]

[[inputs.system]]

[[inputs.docker]]
   endpoint = "unix:///var/run/docker.sock"
   gather_services = false
   container_names = []
   container_name_include = []
   container_name_exclude = []
   timeout = "5s"
   perdevice = true
   total = false
   docker_label_exclude = []

[[inputs.net]]


3. 서비스 시작

  1) docker-compose 만든 디렉토리로 이동
   cd /home/docker/telegraf

  2) 서비스 시작
   docker-compose up -d

  3) 서비스 확인
   docker ps -a


4. Influxdb에서 데이터 확인

  1) 이전에 만든 Influx DB docker container 접속
    docker exec -it influxdb bash
  
  2) InfluxDB 접속
    influx

  3) 데이터 확인
    select * from cpu limit 1;


* 데이터베이스 및 테이블 확인은 아래와 같다.
데이터베이스 확인 : show databases;
테이블 확인 : show MEASUREMENTS;  (MEASUREMENTS 는 mysql에서 table과 같다고 보면 될것 같다.)




덧글

댓글 입력 영역