logstash의 Filter 설정
12310 단어 Logstash
[sqczm@sqczm logstash-6.7.1]$ pwd
/opt/logstash-6.7.1
[sqczm@sqczm logstash-6.7.1]$ ls demo/second/
events.txt second.conf
[sqczm@sqczm logstash-6.7.1]$ more demo/second/events.txt
2019-04-20 20:21:00 64 bytes from 8.8.8.8: icmp_seq=1 ttl=64 time=1.720 ms
2019-04-20 20:21:01 64 bytes from 8.8.8.8: icmp_seq=2 ttl=64 time=2.197 ms
[sqczm@sqczm logstash-6.7.1]$ more demo/second/second.conf
input {
file {
path => ["/opt/logstash-6.7.1/demo/second/events.txt"]
start_position => "beginning"
}
}
filter {
}
output {
stdout {}
}
[sqczm@sqczm logstash-6.7.1]$ bin/logstash -f demo/second/second.conf
…… ……
{
"@version" => "1",
"host" => "sqczm",
"@timestamp" => 2019-04-20T12:28:58.365Z,
"message" => "2019-04-20 20:21:01 64 bytes from 8.8.8.8: icmp_seq=2 ttl=64 time=2.197 ms",
"path" => "/opt/logstash-6.7.1/demo/second/events.txt"
}
{
"@version" => "1",
"host" => "sqczm",
"@timestamp" => 2019-04-20T12:28:58.323Z,
"message" => "2019-04-20 20:21:00 64 bytes from 8.8.8.8: icmp_seq=1 ttl=64 time=1.720 ms",
"path" => "/opt/logstash-6.7.1/demo/second/events.txt"
}
위에서 설명한 데이터를 살펴보면 다음과 같은 기능을 수행하는 것이 매우 간단합니다.
위의 이 의문을 가지고 우리는 어떻게 실현하는지 보았다.우선, @timestamp 필드를 교체해야 합니다. 이 필드를 바꾸려면logstash-filter-date 플러그인이 필요합니다. 이 플러그인에 대한 상세한 설명은 아래의 주소logstash-filter-date 상세한 설명을 보면 logstash-filter-date 이 플러그인을 이해한 것 같습니다. 우리는 또 다른 플러그인을 알아야 합니다. 이 플러그인은logstash-filter-grok입니다.정규 해석 텍스트에 대한 정보를 쓰기 위해서, 이 플러그인에 대한 상세한 설명은 아래의 사이트 주소logstash-filter-grok에 있는 상세한 설명을 보십시오
위의 두 플러그인을 이해한 후에 우리는 우리의 요구 기능을 실현할 것이다
[sqczm@sqczm logstash-6.7.1]$ pwd
/opt/logstash-6.7.1
[sqczm@sqczm logstash-6.7.1]$ rm data/plugins/inputs/file/.sincedb_814435f84c5f13c338c4625fd2af163b
[sqczm@sqczm logstash-6.7.1]$ more demo/second/second.conf
input {
file {
path => ["/opt/logstash-6.7.1/demo/second/events.txt"]
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:logdate} %{NUMBER:bytes} by
tes from %{IP:ip}: icmp_seq=%{NUMBER:icmp_seq} ttl=%{NUMBER:ttl} time=%{NUMBER:t
ime} ms" }
}
date {
match => [ "logdate", "yyyy-MM-dd HH:mm:ss"]
}
}
output {
stdout {}
}
[sqczm@sqczm logstash-6.7.1]$ bin/logstash -f demo/second/second.conf
…… ……
{
"message" => "2019-04-20 20:21:01 64 bytes from 8.8.8.8: icmp_seq=2 ttl=64 time=2.197 ms",
"icmp_seq" => "2",
"host" => "sqczm",
"bytes" => "64",
"ip" => "8.8.8.8",
"time" => "2.197",
"path" => "/opt/logstash-6.7.1/demo/second/events.txt",
"@version" => "1",
"logdate" => "2019-04-20 20:21:01",
"ttl" => "64",
"@timestamp" => 2019-04-20T12:21:01.000Z
}
{
"message" => "2019-04-20 20:21:00 64 bytes from 8.8.8.8: icmp_seq=1 ttl=64 time=1.720 ms",
"icmp_seq" => "1",
"host" => "sqczm",
"bytes" => "64",
"ip" => "8.8.8.8",
"time" => "1.720",
"path" => "/opt/logstash-6.7.1/demo/second/events.txt",
"@version" => "1",
"logdate" => "2019-04-20 20:21:00",
"ttl" => "64",
"@timestamp" => 2019-04-20T12:21:00.000Z
}
이로써 우리의 기능은 이미 실현되었다. 플러그인에서 비교적 번거로운 것은grok 부분이다. 사실 이 플러그인은 우리에게 많은 정규를 제공했다. 공식 문서에서 설명한 바와 같이 이러한 정규는 아래의 사이트에서 내장된 정규를 찾을 수 있다. 물론 당신이 직접 정규를 쓰면 아래의 사이트를 사용하여 Grok 정규 검증을 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
logstash를 Docker로 이동하여 Elastic Cloud에 데이터를 업로드해 봅니다.환경: Elasticsearch는 Elastic Cloud 사용 logstash: 7.9.1 metricbeat: 7.9.1 Elastic Cloud는 설정이 끝난 것으로 한다. Cloud Id, 패스워드도 메모가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.