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 필드가 존재한다면 덮어씀.