Linux

[Linux] Telegraf 설치 및 다양한 예제

IT-PAPA 2023. 10. 16. 06:21
728x90
반응형

Telegraf는 데이터 수집, 처리 및 전송을 위한 오픈 소스 시스템 모니터링 및 이벤트 데이터 수집 도구입니다. Telegraf는 다양한 데이터 소스에서 메트릭 데이터를 수집하고, 이를 다양한 대상 시스템에 전송하는 역할을 수행합니다. 이것은 시스템 모니터링, 로깅, 이벤트 트래킹 및 다른 관련 작업에 매우 유용합니다.

Install Telegraf | Telegraf Documentation (influxdata.com)

 

Install Telegraf | Telegraf Documentation

Thank you for your feedback! Let us know what we can do better:

docs.influxdata.com

 

기본 설정

Input (입력)

Input 플러그인은 데이터를 수집하는 역할을 합니다. 다양한 입력 플러그인을 사용하여 여러 소스에서 데이터를 가져올 수 있습니다.
아래는 CPU 메트릭을 수집하는 입력 플러그인 예제입니다.

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

 

Filter (필터)

Filter 플러그인은 입력 데이터를 변환하거나 수정하는 데 사용됩니다. 필터를 사용하여 데이터를 가공하고 필요한 정보만을 추출할 수 있습니다.
아래는 필드 이름을 변경하는 필터 플러그인 예제입니다.

[[processors.rename]]
  [[processors.rename.replace]]
    field = "old_field_name"
    dest = "new_field_name"

 

Output (출력):

Output 플러그인은 수집된 데이터를 저장하거나 다른 시스템으로 전송하는 역할을 합니다.
아래는 InfluxDB에 데이터를 전송하는 출력 플러그인 예제입니다.

[[outputs.influxdb]]
  urls = ["http://localhost:8086"]
  database = "mydb"

 

설정 파일 생성

Telegraf 설정 파일은 모든 입력, 필터, 출력 플러그인 및 전역 설정을 포함합니다. 설정 파일은 telegraf.conf와 같은 TOML 형식으로 작성됩니다.
설정 파일을 생성하려면 다음 명령을 사용합니다.

telegraf config > /etc/telegraf/telegraf.conf

 

Telegraf 실행

telegraf

 

다양한 예제

CPU 메트릭 수집

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

디스크 사용량 메트릭 수집

[[inputs.disk]]
  mount_points = ["/"]
  ignore_fs = ["tmpfs", "devtmpfs"]

메모리 사용량 메트릭 수집

[[inputs.mem]]

Apache 웹 서버 메트릭 수집

[[inputs.apache]]
  urls = ["http://localhost/server-status?auto"]

Nginx 웹 서버 메트릭 수집

[[inputs.nginx]]
  urls = ["http://localhost/nginx_status"]

MySQL 데이터베이스 메트릭 수집

[[inputs.mysql]]
  username = "username"
  password = "password"
  servers = ["localhost"]

PostgreSQL 데이터베이스 메트릭 수집

[[inputs.postgresql]]
  address = "localhost"
  username = "username"
  password = "password"
  database = "dbname"

Redis 서버 메트릭 수집

[[inputs.redis]]
  servers = ["tcp://localhost:6379"]

필드 이름 변경

[[processors.rename]]
  [[processors.rename.replace]]
    field = "old_field_name"
    dest = "new_field_name"

필드 값 변경 (정규식 사용)

[[processors.regex]]
  [[processors.regex.tags]]
    key = "tag_key"
    pattern = "pattern_to_match"
    replacement = "replacement_value"

InfluxDB로 데이터 전송

[[outputs.influxdb]]
  urls = ["http://localhost:8086"]
  database = "mydb"

Elasticsearch로 데이터 전송

[[outputs.elasticsearch]]
  urls = ["http://localhost:9200"]
  index_name = "myindex"

파일로 데이터 저장

[[outputs.file]]
  files = ["stdout", "/tmp/telegraf_output.txt"]
728x90
반응형
LIST