Logstash 자세히 보기 - Filter 모듈
Logstash 세 개의 구성 요소의 두 번째 구성 요소도 진짜 Logstash 도구 중 가장 복잡하고 가장 아픈 구성 요소이다. 물론 가장 중요한 구성 요소이기도 하다.
1. grok 플러그인grok 플러그인은 매우 강력한 기능을 가지고 있다. 그는 모든 데이터를 일치시킬 수 있지만 그의 성능과 자원에 대한 손실 역시 비난을 받는다.
filter{
grok{
# match , message , logdate。
# , Logstash message , message。
# grok , TIMESTAMP_ISO8601 。
# ,grok , ,
#http://blog.csdn.net/liukuan73/article/details/52318243
# , , , , ,grok 。
match => ['message','%{TIMESTAMP_ISO8601:logdate}']
}
}
2. mutate 플러그인 mutate 플러그인은 데이터를 처리하는 형식입니다. 시간 형식을 처리하거나 문자열을 숫자 형식으로 바꾸려면 선택할 수 있습니다. (당연히 합법적이어야 합니다) 마찬가지로 되돌아갈 수도 있습니다.설정할 수 있는 변환 형식은 "인덱스", "float","string"입니다.
filter {
mutate {
# , value,type
# , , ‘abc’ 123 。
convert => [
# request_time
"request_time", "float",
#costTime
"costTime", "integer"
]
}
}
3. 루비 플러그인에 대한 공식적인 소개는 못하는 것이 없다.루비 플러그인은 논리적 판단, 조건문, 순환문, 문자열에 대한 조작, EVENT 대상에 대한 모든 루비 문법을 사용할 수 있습니다.
filter {
ruby {
#ruby , init code
#init , , , ruby{} 。
# field hash 。 coed 。
init => [field={}]
#code , ruby 。
# 。
# , message , “|”。 (ruby )。
# , (ruby 、 )
# , EVEVT 。
# , , MD5
# event ?event Logstash , ruby code , , , , 。
# MD5 , 。
# message 。
code => "
array=event。get('message').split('|')
array.each do |value|
if value.include? 'MD5_VALUE'
then
require 'digest/md5'
md5=Digest::MD5.hexdigest(value)
event.set('md5',md5)
end
if value.include? 'DEFAULT_VALUE'
then
event.set('value',value)
end
end
remove_field=>"message"
"
}
}
4.date 플러그인은 앞에 있는grok 플러그인에서 벗겨진 값인logdate와 함께 사용해야 합니다. (물론 당신은grok로 하지 않을 수도 있습니다.)
filter{
date{
# grok logdate ? 。 , 。 。
# ?
# , @timestamp , , ES (+0 )
# , target @timestamp, , 。
# ,logdate , , event 。
match=>["logdate","dd/MMM/yyyy:HH:mm:ss Z"]
target=>"@timestamp"
remove_field => 'logdate'
# ,@timestamp , , ,
# , grok , , , :"timeat", "%{TIMESTAMP_ISO8601:logdate}"
#timeat 。
# , 。
}
}
5. json 플러그인, 이 플러그인도 매우 유용한 플러그인입니다. 현재 우리의 로그 정보는 기본적으로 고정된 양식으로 구성되어 있습니다. 우리는 json 플러그인을 사용하여 이를 분석하고 각 필드에 대응하는 값을 얻을 수 있습니다.
filter{
#source json 。
json {
source => "value"
}
# : json , , ruby , 。
}
json 플러그인은 사용하는 방법을 주의해야 한다. 다음은 다층 구조의 폐단이다. 대응하는 해결 방안은 다음과 같다.
ruby{
code=>"
kv=event.get('content')[0]
kv.each do |k,v|
event.set(k,v)
end"
remove_field => ['content','value','receiptNo','channelId','status']
}
Logstash Filter 구성 요소의 플러그인은 기본적으로 여기에 소개되어 있습니다. 여기서 알아야 할 것은:addfield、remove_field、add_tag、remove_tag 는 모든 Logstash 플러그인이 있습니다.관련 사용 반법은 필드 이름을 보면 알 수 있다.차라리 너도 해봐...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
logstash:grok 대신dissect로 성능을 향상시킵니다.파이프의 성능을 향상시키는 간단한 방법은 다른 필터로 대체할 수 있는지 확인하는 것이다grok.내가 계속 grok 로 대체하고 있는 필터는 dissect 필터다.grok과dissect 사이의 주요 차이점은 disse...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.