elasticsearch 在Elasticsearch输出ILM滚动别名中使用变量
我无法使ILM滚动别名接受变量。在这个特定的实例中,我们将有一个麋鹿集群来承载多个环境的日志。日志条目在进入logstash管道之前将加盖其环境的印章。我希望条目指向正确的别名,但在启动logstash(截断stacktrace)时出现以下错误: 发生意外错误!{:error=>java.net.URISyntaxException: 索引0处的转义对格式不正确:%{[fields][Environment]}-日志 这是我的日志存储管道:
elasticsearch 在Elasticsearch输出ILM滚动别名中使用变量,
elasticsearch,logstash,
elasticsearch,Logstash,我无法使ILM滚动别名接受变量。在这个特定的实例中,我们将有一个麋鹿集群来承载多个环境的日志。日志条目在进入logstash管道之前将加盖其环境的印章。我希望条目指向正确的别名,但在启动logstash(截断stacktrace)时出现以下错误: 发生意外错误!{:error=>java.net.URISyntaxException: 索引0处的转义对格式不正确:%{[fields][Environment]}-日志 这是我的日志存储管道: input { rabbitmq { h
input {
rabbitmq {
host => "rabbitmq"
port => 5672
user => "guest"
password => "guest"
subscription_retry_interval_seconds => 5
queue => "logstash-queue"
exchange => "logs"
exchange_type => "direct"
durable => true
key => "logstash"
}
}
filter {
mutate {
rename => {"Properties" => "fields"}
}
mutate {
lowercase => ["[fields][Environment]"]
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
template_name=>"app-logs"
ilm_enabled => true
ilm_rollover_alias => "%{[fields][Environment]}-logs"
ilm_pattern => "{now/d}-000001"
ilm_policy => "30_day_retention_logs_policy"
}
}
据
当ilm_enabled为true且使用ilm_rollover_别名时,不能使用动态变量替换
建议的解决方案(在编写本文时)是使用多个输出。我建议自动生成logstash.conf
、salt、ansible等,这样您就不必继续手动编辑配置文件
output {
if <condition> {
elasticsearch {
...
index => "logstash-<env>-logs"
ilm...
}
<etc>
输出{
如果{
弹性搜索{
...
索引=>“日志存储--日志”
ilm。。。
}
在ElasticGitHub上存在着这样的问题——很奇怪,这种灵活性被移除了,但你就这样做了