이전 글 참고
아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)
아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)
현재 운영 중인 프로젝트 서버의 로그를 모니터링하고자 ELK 파이프라인을 구축했다. 그래서 서비스 ELK 파이프라인 구축하기 전, 시험 삼아 apache 로그 모니터링 시스템을 구축했던 과정을 블로
gani-dev.tistory.com
아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK)
아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK)
이전 글 참고 !아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)Filebeat이란?Elsastic 서비스인 Beats의 서비스 중 하나이며, 로그 데이터를 수집하고 전달하는 역할을 한다. Filebeat는 지정한 로그 파
gani-dev.tistory.com
아파치 로그 모니터링 시스템 구축하기 - Logstash (ELK)
아파치 로그 모니터링 시스템 구축하기 - Logstash (ELK)
이전 글아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK)Logstash란?실시간 파이프라인 기능을 갖춘 오픈소스 데이터 수집 엔진이다. 수집한 데
gani-dev.tistory.com
Logstash filter
logstash의 filter plugin에는 여러 종류가 있다. 그 중에서 이번에는 grok 와 mutate를 이용하려고 한다.
grok 란?
비구조화된 로그 데이터를 구조화하고 질의 가능한 형태로 파싱할 수 있도록 돕는 필터 플러그인이다.
주로 아파치 및 기타 웹 서버 로그, MySQL 로그를 다룰 때 사용된다.
grok 패턴의 구문은 %{SYNTAX:SEMANTIC}이다.
ex ) %{IP:client}
- SYNTAX : 텍스트와 일치할 패턴의 이름을 말한다 . 예를 들어 55.3.244.1은 IP 패턴에 일치한다.
- SEMANTIC : 일치하는 텍스트에 지정하는 식별자를 말한다. 예를 들어 55.3.244.1을 client 라는 식별자로 지정할 수 있다. 즉 client 식별자에는 55.3.244.1 텍스트가 저장됨
아래 로그를 아래 패턴으로 식별자 지정한다. (패턴이 로그와 일치하지 않는 경우 오류 발생)
"message" => "10.0.11.218 - - [26/Apr/2024:05:44:07 +0000] \\"GET / HTTP/1.1\\" 403 45 \\"-\\" \\"curl/8.5.0\\"",
filter {
grok {
match => {"message" => "%{IP:client} %{USER:ident} %{USER:auth} \\[%{HTTPDATE:timestamp}\\] \\"%{WORD:method} %{DATA:request} HTTP/%{NUMBER:httpversion}\\" %{NUMBER:response} %{NUMBER:bytes}" }
}
}
- client : 10.0.11.218
- ident : -
- auth : -
- timestamp : 26/Apr/2024:05:44:07 +0000
… 등등
Grok filter plugin | Logstash Reference [8.13] | Elastic
Grok filter plugin | Logstash Reference [8.13] | 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
Mutate 란?
필드에 대한 정보를 변경할 수 있는 필터 플러그인이다. 이벤트에서 필드를 이름 변경하고 대체하고 수정할 수 있다.
예를 들어 replace를 이용하면, 값을 대체할 수 있다.
아래의 예시에서는 message 필드의 값을 grok 필터에서 저장한 식별자 값들의 일부로 구성하고 있다.
filter {
grok{
match => {"message" => "%{IP:client} %{USER:ident} %{USER:auth} \\[%{HTTPDATE:timestamp}\\] \\"%{WORD:method} %{DATA:request} HTTP/%{NUMBER:httpversion}\\" %{NUMBER:response} %{NUMBER:bytes}" }
}
mutate {
replace => { "message" => "%{client} %{method} %{request} %{response}" }
}
}
//replace 전
"message" => "10.0.11.218 - - [26/Apr/2024:05:44:07 +0000] \\"GET / HTTP/1.1\\" 403 45 \\"-\\" \\"curl/8.5.0\\"",
//replace 후
"message" => "10.0.11.218 GET / 403"
Mutate filter plugin | Logstash Reference [8.13] | Elastic
Mutate filter plugin | Logstash Reference [8.13] | Elastic
Conversion insights The values are converted using Ruby semantics. Be aware that using float and float_eu converts the value to a double-precision 64-bit IEEE 754 floating point decimal number. In order to maintain precision due to the conversion, you shou
www.elastic.co
'ELK' 카테고리의 다른 글
아파치 로그 모니터링 시스템 구축하기 - Elasticsearch(ELK) (1) | 2024.04.26 |
---|---|
아파치 로그 모니터링 시스템 구축하기 - Logstash (ELK) (1) | 2024.04.26 |
아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK) (0) | 2024.04.25 |
아파치 로그 모니터링 시스템 구축하기 - 개요(ELK) (0) | 2024.04.25 |