본문 바로가기

리눅스

[WIP] td-agent plugin(td-agent 플러그)

728x90

td-agent plugin(td-agent 플러그)

td-agent는 Fluentd 기반으로 동작하며 다양한 기능은 플러그인(plugin) 형태로 확장할 수 있습니다.

플러그인은 td-agent-gem 명령어를 통해 관리합니다.

td-agent-gem 이란?

td-agent-gem은 td-agent에 포함된 RubyGems 패키지 관리 도구로 Fluentd 플러그인의 설치, 조회, 업데이트 등을 수행할 수 있습니다.

플러그인 목록 확인

로컬(설치된 플러그인) 목록

td-agent-gem list --local
$ td-agent-gem list --local

*** LOCAL GEMS ***

addressable (2.8.1)
async (1.30.3)
async-http (0.59.2)
async-io (1.34.0)
async-pool (0.3.12)
aws-eventstream (1.2.0)
...
uri (default: 0.10.0)
webhdfs (0.10.2)
webrick (1.7.0, default: 1.6.1)
xmlrpc (0.3.0)
yajl-ruby (1.4.3)
yaml (default: 0.1.0)
zip-zip (0.3)
zlib (default: 1.1.0)
현재 서버에 설치된 플러그인 및 Ruby gem 목록을 확인할 수 있습니다.

원격(전체 플러그인) 목록

td-agent-gem list --remote
$ td-agent-gem list --remote
- (1)
-A (0.0.0)
.cat (0.0.1)
.omghi (2)
0mq (0.5.3)
0xdm5 (0.1.0)
0xffffff (0.1.0)
0xn3va-hola (0.0.1)
10to1-crack (0.1.3)
1234567890_ (1.2)
12_hour_time (0.0.4)
...
zzot-semi-static (0.0.6)
zzot-zzot-semi-static (0.0.1)
zzsharedlib (0.0.7)
zzutil (0.0.4)
Zzzzz (0.0.1)
zzzzzz (0.0.3)
설치 가능한 전체 플러그인 목록을 조회합니다.
(출력 결과가 매우 많으므로 검색과 함께 사용하는 것이 일반적입니다)
728x90

플러그인 검색

특정 플러그인을 찾을 때는 아래와 같이 검색합니다.

td-agent-gem search -r fluent-plugin-elasticsearch
$ td-agent-gem search -r fluent-plugin-elasticsearch

*** REMOTE GEMS ***

fluent-plugin-elasticsearch (5.2.4)
fluent-plugin-elasticsearch-check-size (0.1.0)
fluent-plugin-elasticsearch-cluster (0.1.0)
fluent-plugin-elasticsearch-dext (5.0.2)
fluent-plugin-elasticsearch-ruby (0.0.3)
fluent-plugin-elasticsearch-sm (1.4.1)
fluent-plugin-elasticsearch-ssl-verify (0.0.2)
fluent-plugin-elasticsearch-timestamp-check (0.3.1)
fluent-plugin-elasticsearch2 (3.5.7)
fluent-plugin-elasticsearchfork (0.5.1)

플러그인 설치

td-agent-gem install elasticsearch
$ td-agent-gem install elasticsearch
Fetching elasticsearch-8.6.0.gem
Fetching elasticsearch-api-8.6.0.gem
Successfully installed elasticsearch-api-8.6.0
Successfully installed elasticsearch-8.6.0
Parsing documentation for elasticsearch-api-8.6.0
Installing ri documentation for elasticsearch-api-8.6.0
Parsing documentation for elasticsearch-8.6.0
Installing ri documentation for elasticsearch-8.6.0
Done installing documentation for elasticsearch-api, elasticsearch after 18 seconds
2 gems installed
Fluentd 플러그인은 일반적으로 fluent-plugin-* 형태의 이름을 사용합니다.
(예: fluent-plugin-elasticsearch)

플러그인 업데이트

td-agent-gem update fluent-plugin-elasticsearch
$ td-agent-gem update fluent-plugin-elasticsearch
Updating installed gems
Nothing to update
특정 플러그인을 최신 버전으로 업데이트합니다.

td-agent-gem 기본 사용법

td-agent-gem
Usage: gem command [arguments...] [options...]

Examples:
  gem install rake
  gem list --local
더보기
$ td-agent-gem
RubyGems is a sophisticated package manager for Ruby.  This is a
basic help message containing pointers to more information.

  Usage:
    gem -h/--help
    gem -v/--version
    gem command [arguments...] [options...]

  Examples:
    gem install rake
    gem list --local
    gem build package.gemspec
    gem help install

  Further help:
    gem help commands            list all 'gem' commands
    gem help examples            show some examples of usage
    gem help gem_dependencies    gem dependencies file guide
    gem help platforms           gem platforms guide
    gem help <COMMAND>           show help on COMMAND
                                   (e.g. 'gem help install')
    gem server                   present a web page at
                                 http://localhost:8808/
                                 with info about installed gems
  Further information:
    https://guides.rubygems.org

플러그인 설치 후 반드시 서비스 재시작 필요

sudo systemctl restart td-agent

플러그인 버전 호환성 확인 필수

  • td-agent 버전 ↔ fluentd ↔ plugin 버전 간 충돌 가능

운영 환경에서는 무분별한 update 지양

  • 검증 후 적용 권장

 

참고URL

- 변군이글루 블로그 : 우분투에서 td-agent를 설치하는 방법

- 변군이글루 블로그 : td-agent-bit 설치하는 방법

 

728x90