728x90
안녕하세요!
오늘은 로그스태시 Range 필터에 대하여 알아보겠습니다.
1. Range Filter
range 필터는 특정 필드가 예상 크기/길이 범위 내에 있는지 확인하는 데 사용됩니다. 숫자와 문자열이 지원되며, 숫자는 숫자 값 범위 내에 있는지 문자는 문자열의 길이 범위 내에 있는지 확인합니다. 동일한 필드에 두 개 이상의 범위를 지정할 수 있습니다. 필드 값이 지정된 범위 내에 있으면 이벤트 삭제, 태그 추가, 필드 추가 등의 작업이 수행됩니다.
1. range filter install
/usr/share/logstash/bin/logstash-plugin install logstash-filter-range
2. options
negate
기본값은 false이며 유형은 bool 범위 일치 논리를 무효화 합니다.
range {
negate => false (or true)
ranges => [ "filedName" , 1000, 5000, "tag:anomaly"]
}
negate를 true로 설정 시 1000~5000의 범위 내의 값이 아니면 tag 추가합니다
ranges
값의 유형은 배열입니다.
배열은 필트, 최소값, 최대값, 액션 순서입니다.
filter {
range {
ranges => [ "message", 0, 10, "tag:short",
"message", 11, 100, "tag:medium",
"message", 101, 1000, "tag:long",
"message", 1001, 1e1000, "drop",
"duration", 0, 100, "field:latency:fast",
"duration", 101, 200, "field:latency:normal",
"duration", 201, 1000, "field:latency:slow",
"duration", 1001, 1e1000, "field:latency:outlier",
"requests", 0, 10, "tag:too_few_%{host}_requests" ]
}
}
Common Options
- add_field: 해시 형태로 지정하며, 필드 이름과 값을 추가합니다. 예를 들어,
add_field => { "new_field" => "value" }
는 "new_field"라는 이름으로 "value"를 추가합니다. - add_tag: 배열 형태로 지정하며, 이벤트에 태그를 추가합니다. 예:
add_tag => ["tag1", "tag2"]
. - enable_metric: 메트릭 수집을 활성화(
true
) 또는 비활성화(false
)합니다. 기본값은true
입니다. - id: 필터 플러그인의 고유 식별자입니다. 이를 사용하여 특정 플러그인을 구분할 수 있습니다.
- periodic_flush: 주기적으로 플러그인을 플러시할지 여부를 지정합니다. 기본값은
false
입니다. 일부 필터에서만 의미가 있습니다. - remove_field: 배열로 지정하며, 이벤트에서 특정 필드를 제거합니다. 예:
remove_field => ["field1", "field2"]
. - remove_tag: 배열로 지정하며, 이벤트에서 특정 태그를 제거합니다. 예:
remove_tag => ["tag1", "tag2"]
.
2. 적용
range {
# negate를 true로 설정하여 1000~5000 이외 값은 anomaly의 태그를 추가하도록 설정
negate => true
ranges => [
"fgSysSesCount", 1000, 5000, "tag:anomaly",
]
}
output {
# anomaly 태그가 있으면 별도의 로그 파일로 저장
if "anomaly" in [tags] {
file {
path => "/root/anomaly/anomalies.log"
}
} else {
elasticsearch {
hosts => ["https://192.168.123.21:9200"]
index => "snmp-firewalls-datastream"
action => "create"
user => "elastic"
password => "elastic!"
cacert => "/etc/logstash/elasticsearch.crt"
}
stdout { codec => rubydebug }
}
}
3. 참고
값이 문자열일때
filter {
mutate {
convert => { "fgSysSesCount" => "integer" }
}
range {
negate => true
ranges => [
["fgSysSesCount", 1000, 5000, "tag:anomaly"]
]
}
}
소수점도 가능
range {
ranges => [
"fgSysSesCount", 10.023, 1000, "tag:anomaly",
"fgSysSesCount", 5000, 8000, "tag:anomaly",
]
}
이상입니다.
감사합니다!
천사불여일행(千思不如一行) : 천번 생각하는 것보다 한번 행동하는 것이 더 중요하다.
기기일약 불능십보 노마십가 공재불사(騏驥一躍 不能十步 駑馬十駕 功在不舍): 천리마가 한번 크게 뛴다고 하더라도 열 걸음을 나아갈 수 없고 노둔한 말일지라도 열흘 달리면 역시 거기에 미칠 수가 있다.
일의 성과는 멈추지 않고 계속하는 데 있다. (순자, 권학편)
728x90
반응형
'Elastic Search AI Platform' 카테고리의 다른 글
logstash multi output(elasticseach, exec) (1) | 2024.11.19 |
---|---|
Logstash exec output으로 파일 이동하기 (1) | 2024.11.18 |
Elasticsearch fingerprint 확인 하기 (2) | 2024.11.12 |
Logstash Input http_poller vs http 비교 (1) | 2024.11.08 |
Elastic Certified Engineer exan (엘라스틱 엔지니어 자격 시험) 후기 (1) | 2024.10.24 |