logstash 中的 GROK 自定义模式过滤器
GROK custom pattern filter in logstash
如何在 logstash 中创建 grok 自定义模式过滤器?
我想为 http 响应状态代码创建一个模式
这是我的模式代码
STATUS_CODE __ %{NONNEGINT} __
我真正想做的是让我的所有 Web 服务器都使用用户 IP 并请求 http headers 和有效负载以及 Web 服务器的响应。
这是我的logstash.conf
input {
file {
type => "kpi-success"
path => "/var/log/kpi_success.log"
start_position => beginning
}
}
filter {
if [type] == "kpi-success" {
grok {
patterns_dir => ["./patterns"]
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:message} "}
}
multiline {
pattern => "^\["
what => "previous"
negate => true
}
mutate{
add_field => {
"statusCode" => "[STATUS_CODE]"
}
}
}
}
output {
if [type] == "kpi-success" {
elasticsearch {
hosts => "elasticsearch:9200"
index => "kpi-success-%{+YYYY.MM.dd}"
}
}
}
您不必使用自定义模式文件,您可以直接在过滤器中定义一个新模式文件。
grok {
match => { "message" => "(?<STATUS_CODE>__ %{NONNEGINT} __)"}
}
如何在 logstash 中创建 grok 自定义模式过滤器? 我想为 http 响应状态代码创建一个模式 这是我的模式代码
STATUS_CODE __ %{NONNEGINT} __
我真正想做的是让我的所有 Web 服务器都使用用户 IP 并请求 http headers 和有效负载以及 Web 服务器的响应。
这是我的logstash.conf
input {
file {
type => "kpi-success"
path => "/var/log/kpi_success.log"
start_position => beginning
}
}
filter {
if [type] == "kpi-success" {
grok {
patterns_dir => ["./patterns"]
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:message} "}
}
multiline {
pattern => "^\["
what => "previous"
negate => true
}
mutate{
add_field => {
"statusCode" => "[STATUS_CODE]"
}
}
}
}
output {
if [type] == "kpi-success" {
elasticsearch {
hosts => "elasticsearch:9200"
index => "kpi-success-%{+YYYY.MM.dd}"
}
}
}
您不必使用自定义模式文件,您可以直接在过滤器中定义一个新模式文件。
grok {
match => { "message" => "(?<STATUS_CODE>__ %{NONNEGINT} __)"}
}