- 작성시간 : 2019/12/06 16:28
- 퍼머링크 : paar13kr.egloos.com/7475867
- 카테고리 : docker
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과 같다고 보면 될것 같다.)


덧글