Get the App
SLTechnology News&Howtos  ›  Servers  › 

Logstash basic Operation-Filter

Shulou Source: shulou.com Published: 2022-06-03 03:17:28 09月20日 Update

Grok configuration case:

# # Startup file configuration: # Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {}} filter {grok {match = > ["message" "% {IP:clientip}\ [% {HTTPDATE:timestamp}\]\% {QS:referrer}\% {NUMBER:response}\% {NUMBER:bytes}]}} output {stdout {codec = >" rubydebug "}} # # output file content 172.16.213.132 [07/Feb/2018:16:24:19 + 0800]" GET / HTTP/1.1 "403 5039 display content {" @ version "= >" 1 " "@ timestamp" = > 2019-11-10T06:02:42.865Z, "host" = > "localhost.localdomain", "message" = > "172.16.213.132 [07/Feb/2018:16:24:19 + 0800]\" GET / HTTP/1.1\ "403 5039", "timestamp" = > "07/Feb/2018:16:24:19 + 0800", "bytes" = > "5039", "response" = > "clientip" = > "172.16.213.132", "referrer" = > "\" GET / HTTP/1.1\ ""}

Grok filter duplicate fields

# # configuration file # Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {} filter {grok {match = > ["message", "% {IP:clientip}\ [% {HTTPDATE:timestamp}\]\% {QS:referrer}\% {NUMBER:response}\% {NUMBER:bytes}"] remove_field = > ["message"]}} output {stdout {codec = > "rubydebug"}}

Grok with Date time plug-in configuration

# Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {} filter {grok {match = > ["message", "% {IP:clientip}\ [% {HTTPDATE:timestamp}\]\% {QS:referrer}\% {NUMBER:response}\% {NUMBER:bytes}"] remove_field = > ["message"]} date {match = > ["timestamp" "dd/MMMM/yyyy:HH:mm:ss Z"]}} output {stdout {codec = > "rubydebug"}}

Date filter duplicated field configuration

# Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {} filter {grok {match = > ["message", "% {IP:clientip}\ [% {HTTPDATE:timestamp}\]\% {QS:referrer}\% {NUMBER:response}\% {NUMBER:bytes}"] remove_field = > ["message"]} date {match = > ["timestamp" "dd/MMMM/yyyy:HH:mm:ss Z"]} mutate {remove_field = > ["timestamp"]}} output {stdout {codec = > "rubydebug"}}

Comprehensive exercise configuration parameters

# Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {} filter {grok {match = > ["message", "% {IP:clientip}\ [% {HTTPDATE:timestamp}\]\% {QS:referrer}\% {NUMBER:response}\% {NUMBER:bytes}"] remove_field = > ["message"]} date {match = > ["timestamp" "dd/MMMM/yyyy:HH:mm:ss Z"]} mutate {rename = > {"response" = > "response_new"} gsub = > ["referrer", "\", ""] remove_field = > ["timestamp"] split = > ["clientip", "."]} output {stdout {codec = > "rubydebug"}}

Operation mode of Geoip geolocation plug-in

# Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {} filter {grok {match = > ["message", "% {IP:clientip}\ [% {HTTPDATE:timestamp}\]\% {QS:referrer}\% {NUMBER:response}\% {NUMBER:bytes}"] remove_field = > ["message"]} date {match = > ["timestamp" "dd/MMMM/yyyy:HH:mm:ss Z"} mutate {remove_field = > ["timestamp"]} geoip {source = > "clientip" database = > "/ usr/local/include/GeoLite2-ASN_20191105/GeoLite2-ASN.mmdb"}} output {stdout {codec = > "rubydebug"}}

Geoip outputs specified attribute values

# Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {} filter {grok {match = > ["message", "% {IP:clientip}\ [% {HTTPDATE:timestamp}\]\% {QS:referrer}\% {NUMBER:response}\% {NUMBER:bytes}"] remove_field = > ["message"]} date {match = > ["timestamp" "dd/MMMM/yyyy:HH:mm:ss Z"]} mutate {remove_field = > ["timestamp"]} geoip {source = > "clientip" # database = > "/ usr/local/include/GeoLite2-Country_20191015/GeoLite2-Country.mmdb" database = > "/ usr/local/include/GeoLite2-City_20191105/GeoLite2-City.mmdb" fields = > ["city_name", "region_name", "country_name", "ip", "latitude", "longitude" "timezone"]} output {stdout {codec = > "rubydebug"}} Simulation data: 36.7.152.182 [07/Feb/2018:16:24:19 + 0800] "GET / HTTP/1.1" 403 5039

Comprehensive actual combat

# Sample Logstash configuration for creating a simple# Beats-> Logstash-> Elasticsearch pipeline.input {stdin {} filter {grok {match = > {"message" = > "% {TIMESTAMP_ISO8601:localtime}\ |\ |% {IP:clientip}\ |\ ~\ |% {GREEDYDATA:http_user_agent}\ |% {GREEDYDATA:url}\ |\ ~\ |% {GREEDYDATA:mediaid}\ |\ ~\ |% {GREEDYDATA:osid}"} remove_field = > [ "message"]} date {match = > ["localtime" "yyyy-MM-dd'T'HH:mm:ssZZ"] target = > "@ timestamp"} mutate {remove_field = > ["localtime"]} geoip {source = > "clientip" # database = > "/ usr/local/include/GeoLite2-Country_20191015/GeoLite2-Country.mmdb" database = > "/ usr/local/include/GeoLite2-City_20191105/GeoLite2-City.mmdb" fields = > ["city_name", "region_name", "country_name", "ip", "latitude" "longitude", "timezone"]}} output {stdout {codec = > "rubydebug"} example: 2018-02-09T10:57:42+08:00 | ~ | 123.87.240.97 | ~ | Mozilla/5.0 (iPhone) CPU iPhone OS 11 / 2 / 2 like Mac OS X) AppleWebKit/604.4.7 Version/11.0 Mobile/15C202 Safari/604.1 | ~ | http://m.sina.cn/cm/ads_ck_wap.html|~|12434785489009|~|DF45566587855P

Tags: Configuration files content fields plug-ins synthesis output location parameters geography geographic location actual combat attributes data methods time cases examples basics Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Shulou Technology Shulou Information Linux Apple MariaDB