본문 바로가기
Data/ELK

[2021.03.26] 인턴 +25 logstash filter 기능(사용법)

by injekim97 2021. 3. 26.
반응형

[2021.03.26] 인턴 +25   logstash filter 기능(사용법)

 

 

www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-convert

 

Mutate filter plugin | Logstash Reference [7.12] | Elastic

Variable substitution in the id field only supports environment variables and does not support the use of values from the secret store.

www.elastic.co

-> logstash filter 기능에 대해 담긴 document이다.

 

 

 

Mutate filter plugin 옵션 (총 13가지)

  1. convert
  2. copy
  3. gsub
  4. join
  5. split
  6. lowercase, uppercase
  7. capitalize
  8. merge
  9. coerce
  10. update
  11. replace
  12. strip
  13. rename

 

* 모든 예시에 대해서 input{}이 들어가 있지만, 생략하였음(넣었다고 가정)

ex) {"field1" : "apple", "field2" : "money"}

 

1.convert

-> 해당 필드를 형변환하는데 사용하는 옵션

 

 

2. copy

-> 필드의 값을 복사하는 옵션


3. gsub

-> 일치하는 항목을 다른 문자열로 대체(치환)하는 옵션

즉,  apple(파일안 내용) -> money(사용자가 지정)

ex) apple is very good -> money is very good

★gsub는 {}가 아닌 []로 받아야 한다.★

 


4. join

-> 배열을 하나의 문자로 합쳐주는 옵션

입력 값 당연히 배열, ex) "{field1" : ["abc","def","ghf"]

-> 출력 값: abc,def,ghf

 

 

5.split

-> 문자를 배열로 분할한다.

입력 값 ex) "{field1" : "abc\def\ghf"}

-> 출력 값: [0]abc,

               [1]def,

               [2]ghf


6. lowercase, uppercase

-> lowercase(소문자) , uppercase(대문자) 치환


7. capitalize

-> 해당 문자의 첫 글자만 대문자, 나머진 전부 소문자로 치환

 

 


8. merge

-> 해당 필드 값을 다른 필드에 삽입(포함)

오른쪽에서 왼쪽으로 대입한다고 생각하자 ★

merge => {"field1(해당 필드 값을)" => "field2(다른필드)"}에 넣기 때문에, field1이 먼저 값 들어가고, field2가 드감

 

 

 


9. coerce

-> 해당 input 필드 값이 NULL일 경우 지정해준 value값으로 대체헤서 삽입

 

 

10.update

->  해당 input field값(text) 에서 BUNOBUNO가 나오지 않고 아래로 %{coment}: code 치환

* 즉, text: %{coment}: code만 나옴(보노보노X)  

 

 


11. replace

-> 해당 field 값을 다른 값으로 대체(치환)

* 첫 번째 경우 input에서 "text" 필드가 없다면? , 두 번째 경우 input에서 "comment"만 있을경우?

-> text 필드를 생성하여 대체한다. (update옵션은 생성하지 않음)

* input { } , { "comment""test" }인 경우 text필드 대체

 

 

 

12. strip

-> 좌우 공백 제거

* 번호 임의로 막 집어넣음(제번호 X)

출력 값: name : injekim

           phone-number : 010-5367-2421

 

 


13. rename

-> 필드이름을 다시 재정의

* 필드 이름이 number에서 phone_number로 바꿔서 쓰임.

* 출력 값 phone_number : "010-5616-4589"

 

반응형

댓글