Telegraf는 데이터 수집, 처리 및 전송을 위한 오픈 소스 시스템 모니터링 및 이벤트 데이터 수집 도구입니다. Telegraf는 다양한 데이터 소스에서 메트릭 데이터를 수집하고, 이를 다양한 대상 시스템에 전송하는 역할을 수행합니다. 이것은 시스템 모니터링, 로깅, 이벤트 트래킹 및 다른 관련 작업에 매우 유용합니다.
Install Telegraf | Telegraf Documentation (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"]
'Linux' 카테고리의 다른 글
[Linux] C언어로 C 파일 컴파일 및 실행 (3) | 2023.11.21 |
---|---|
[Linux] find 명령어로 group,user 파일 찾기,변경하기 (1) | 2023.11.17 |
[Linux] logrotate 설치하여, 주기적으로 로그를 삭제하기 (2) | 2023.10.11 |
[Linux] sysctl 명령어의 다양한 예제 (1) | 2023.09.29 |
[Linux] lsof 명령어와 다양한 예제 (1) | 2023.09.28 |