在Logstash输出中使用RabbitMQ字段

时间:2018-12-18 07:11:44

标签: rabbitmq logstash

我想将RabbitMQ消息中的某些字段用于Logstah Elasticsearch输出中(例如索引名称等)。

如果我在过滤器中使用Node version - 8.11.2 ,则效果很好,但在输出语句(下面的配置)中效果不佳。

我在做什么错了?

[@metadata][rabbitmq_properties][timestamp]

1 个答案:

答案 0 :(得分:-1)

使用如下所述的替换功能进行检查。

input {
        rabbitmq {
            host => "rabbitmq:5672"
            user => "user"
            password => "password"
            queue => "queue "
            durable => true
            prefetch_count => 1
            threads => 3
            ack => true
            metadata_enabled => true
        }
    }

    filter {
      if [@metadata][rabbitmq_properties][timestamp] {
        date {
          match => ["[@metadata][rabbitmq_properties][timestamp]", "UNIX"]
        }
      }
      mutate {
        replace => {
          "[@metadata][index]" => "%{[@metadata][rabbitmq_properties][IndexName]}_%{+YYYY.MM.dd}"
        }
      }
    }

    output {
        elasticsearch {
            hosts => ['http://elasticsearch:9200']
            index => "%{[@metadata][index]}_%{+YYYY.MM.dd}"
        }

        stdout {codec => rubydebug}
    }