각 Fluentd 플러그인에는 일련의 파라미터가 있다.
예를 들어, in_tail 플러그인에는 rotate_wait 및 pos_file 과 같은 파라미터가 있다.
각 파라미터에는 연관된 특정 타입이 있으며, 각 다음과 같이 정의된다 :
파라미터 데이터 타입
string
필드가 문자열로 분석된다. 이것은 가장 일반적인 타입으로 각 플러그인이 문자열 처리 방법을 결정한다.
문자열에는 인용되지 않은 한 줄의 문자열, 따옴표(')로 인용된 문자열, 쌍따옴표(")로 인용된 문자열 등으로 구분할 수 있다.
integer
필드가 정수로 분석된다.
float
필드가 부동소숫점으로 분석된다.
size
필드가 바이트 수로 분석되며 몇 가지 표기법이 있다.
- 값이 <INTEGER>k 또는 <INTEGER>K 와 일치하면, 값은 INTEGER(KByte) 이다.
- 값이 <INTEGER>m 또는 <INTEGER>M 과 일치하면, 값은 INTEGER(MByte) 이다.
- 값이 <INTEGER>g 또는 <INTEGER>G 와 일치하면, 값은 INTEGER(GByte) 이다.
- 값이 <INTEGER>t 또는 <INTEGER>T 와 일치하면, 값은 INTEGER(TByte) 이다.
- 나머지는 byte 수이다.
time
필드가 시간으로 분석된다.
- 값이 <INTEGER>s 와 일치하면, 값은 INTEGER(초) 이다.
- 값이 <INTEGER>m 과 일치하면, 값은 INTEGER(분) 이다.
- 값이 <INTEGER>h 와 일치하면, 값은 INTEGER(시) 이다.
- 값이 <INTEGER>d 와 일치하면, 값은 INTEGER(일) 이다.
- 나머지는 float 로 분석되며 float 는 초단위의 수이다. 이 옵션은 "0.1"(=0.1초 = 100ms) 와 같이 1초 미만의 시간을 지정하는 데 유용하다.
array
필드가 JSON 배열로 분석된다.
hash
필드가 JSON 객체로 분석된다.
거의 모든 프로그래밍 언어 및 인프라 도구에서 JSON 값을 쉽게 생성할 수 있기 때문에 array 및 hash 타입은 JSON 형식이다.
플러그인의 공통 파라미터
아래 파라미터들은 시스템 예약어이며, @ 접두사를 가진다.
- @type : 플러그인 타입 지정.
- @id : 플러그인 id 지정. in_monitor_agent 는 plugin_id 필드에 이 값을 사용한다.
- @label : label 기호 지정.
- @log_level : 플러그인 별 로그 수준 지정.
type, id, log_level 은 이전 버전과 호환된다.
Multiple line
쌍따옴표(") 부호가 있는 string, array, hash 값에 대해 다중 행을 쓸 수 있다.
str_param "foo # This line is converted to "foo\nbar". NL is kept in the parameter bar" array_param [ "a", "b" ] hash_param { "k":"v", "k1":10 } | cs |
Fluentd 는 [ 또는 { 가 array / hash 의 시작으로 판단한다.
따라서 [ 또는 { 시작되었지만 non-json 파라미터를 설정하려면 ' 또는 " 을 사용하라.
예제1: mail 플러그인
<match **> @type mail subject "[CRITICAL] foo's alert system" </match> | cs |
예제2: map 플러그인
<match tag> @type map map '[["code." + tag, time, { "code" => record["code"].to_i}], ["time." + tag, time, { "time" => record["time"].to_i}]]' multi true </match> | cs |
Ruby 코드 포함
" 인용 부호 string 에서 #{} 부호로 Ruby 코드를 삽입할 수 있다.
이것은 호스트 이름 같은 컴퓨터 정보를 설정하는 데 유용하다.
host_param "#{Socket.gethostname}" # host_param is actual hostname like `webserver1`. env_param "foo-#{ENV["FOO_BAR"]}" # NOTE that foo-"#{ENV["FOO_BAR"]}" doesn't work. | cs |
config-xxx 혼합 형식은 "#{}" 이 아닌 "${}" 을 사용한다.
큰 따옴표로 묶인 string 에서 \는 이스케이프 문자이다.
\는 이스케이프 문자로 해석된다.
큰 따옴표로 묶인 string 에서 \, \r, \n, \t, \ 등에는 \ 를 붙여야 한다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.