modify는 규칙과 조건을 설정해 레코드를 변경할 수 있다.
[SERVICE]
Flush 1
Daemon off
[INPUT]
Name tail
Tag my_tail
path /var/logf/app.log
[FILTER]
Name modify
Match *
Condition Key_does_not_exists key1
Add key1 value1
[FILTER]
Name modify
Match *
Condition Key_does_not_exists key2
Add key2 value2
[OUTPUT]
Name kinesis_streams
match my_tail
region ap-northeast-2
stream skills-stream
# 조건
[FILTER]
Condition Key_exists key1 # key1 필드가 존재
Condition Key_does_not_exist key2 # key2 필드가 존재하지 않음
Condiiton A_key_matches regex # regex 정규식과 일치하는 키가 존재
Condiiton No_key_matches regex # regex 정규식과 일치하는 키가 존재하지 않음
Condition Key_value_equals key3 value3 # key3 필드의 값이 value3
Condition Key_value_does_not_equal key4 value4 # key4 필드의 값이 value4 가 아님
Condition Key_value_matches key5 regex5 # key5 필드의 값이 regex5 정규식과 일치
Condition Key_value_does_not_match key6 regex6 # key6 필드의 값이 regex6 정규식과 일치
Condition Matching_keys_have_matching_values regex1 regex2 # regex1 정규식과 일치하는 필드의 값이 regex2의 정규식과 일치
Condition Matching_keys_do_not_have_matching_values regex1 regex2 # regex1 정규식과 일치하는 필드의 값이 regex2의 정규식과 일치하지 않음
# 행동
[FILTER]
Name modify
Match *
Set key1 value1 # key1 필드 생성 후 value1 값 설정. 이미 존재한다면 덮어씀
Add key2 value2 # key2 필드 생성 후 value2 값 설정. 이미 존재한다면 아무 것도 안함
Remove key3 # key3 필드 제거
Remove_wildcard key4* # key로 시작하는 모든 필드 제거
Rename key5 key6 # key5 필드를 key6로 이름 변경. key5 필드가 존재하고 key6 필드가 존재하지 않아야 함.
Hard_rename key7 key8 # key7 필드를 key8으로 이름 변경. key5 필드가 존재하고 key6 필드가 존재하면 덮어씀.
Copy key9 key10 # key9의 값으로 key10 필드 추가. key10 필드가 존재한다면 아무 것도 안함
Hard_copy key11 key12 # key11의 값으로 key12 필드 추가. key12 필드가 존재한다면 덮어씀.