Использование полей RabbitMQ в выводе Logstash - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу использовать некоторые поля из сообщений RabbitMQ в выводе Logstah Elasticsearch (например, имя индекса и т. Д.).

Если я использую [@metadata][rabbitmq_properties][timestamp] в фильтре, он работает хорошо, но не в операторе вывода (configниже).

Что я делаю не так?

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"]
    }
  }
}

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

    stdout {codec => rubydebug}
}

1 Ответ

0 голосов
/ 18 декабря 2018

проверьте с функцией замены, как указано ниже.

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}
    }
...