在 Logstash 中组合多个事件
Combining multiple events in Logstash
我有一个 Logstash 配置,我正在从 Graphite 输入读取简单的行(但如果这有帮助,它也可能只是 tcp),我正在通过 AMQP 将它们转发到 RabbitMQ。
input {
graphite {
host => localhost
type => carbon
port => 22003
}
}
output {
rabbitmq {
codec => json
host => 'localhost'
port => 5672
user => 'guest'
password => 'guest'
vhost => '/'
exchange_type => topic
key => '%{type}'
persistent => true
durable => true
ssl => false
verify_ssl => false
workers => 1
exchange => 'metrics'
}
}
现在我想优化 payload/overhead 比率,方法是将来自 Graphite 输入的多个在线添加到一个 AMQP 消息中。
我正在查看诸如整理或聚合之类的过滤器,但它们似乎并没有完全满足我的需要。我正在寻找的是一种传输格式,其中一个 AMQP 消息包含此输入的 20 或 30 行。
我自己弄明白了,我现在使用 multiline
作为输入编解码器:
tcp {
host => localhost
codec => multiline { pattern => "\r" max_lines => 100 what => "next" }
type => carbon
port => 22003
}
我有一个 Logstash 配置,我正在从 Graphite 输入读取简单的行(但如果这有帮助,它也可能只是 tcp),我正在通过 AMQP 将它们转发到 RabbitMQ。
input {
graphite {
host => localhost
type => carbon
port => 22003
}
}
output {
rabbitmq {
codec => json
host => 'localhost'
port => 5672
user => 'guest'
password => 'guest'
vhost => '/'
exchange_type => topic
key => '%{type}'
persistent => true
durable => true
ssl => false
verify_ssl => false
workers => 1
exchange => 'metrics'
}
}
现在我想优化 payload/overhead 比率,方法是将来自 Graphite 输入的多个在线添加到一个 AMQP 消息中。
我正在查看诸如整理或聚合之类的过滤器,但它们似乎并没有完全满足我的需要。我正在寻找的是一种传输格式,其中一个 AMQP 消息包含此输入的 20 或 30 行。
我自己弄明白了,我现在使用 multiline
作为输入编解码器:
tcp {
host => localhost
codec => multiline { pattern => "\r" max_lines => 100 what => "next" }
type => carbon
port => 22003
}