我正在尝试设置一个logstash管道,该管道根据日志中的字段[logstash_url]
将日志输出到其他不同的logstash示例:
http {
url => "http://%{[logstash_url]}:5044"
retry_failed => 'false'
http_method => 'post'
retry_non_idempotent => 'true'
format => 'json_batch'
http_compression => 'true'
}
问题是logstash没有替换[logstash_url]
,我得到了以下跟踪:
[ERROR] 2022-11-16 14:20:04.014 [[main]>worker0] http - Could not fetch URL {:url=>"http://%{[logstash_url]}:5044", :method=>:post, :message=>"Malformed escape pair at index 16: http://%{[logstash_url]}:5044", :class=>"Java::JavaNet::URISyntaxException", :will_retry=>false}
字段[logstash_url]
确实存在,我甚至可以在过滤器或其他输出类型中使用它。
我使用的图像是docker.elastic.co/logstash/logstash:8.1.0
1条答案
按热度按时间k2arahey1#
原来是
format => 'json_batch'
选项导致了这个问题。我删除了它,[logstash_url]
现在被正确替换,日志被转发到相应的logstash示例。