Подмножество тегов для второго вывода

У меня есть служба, из которой я пытаюсь записывать журналы и отправлять их в определенные места в зависимости от того, к чему они относятся. Fluentd имеет смысл. В настоящее время у меня просто все выгружается на s3, и это отлично работает. Однако теперь я хочу, чтобы небольшое подмножество (любая строка, начинающаяся с фразы «ACTION:») также было отправлено в базу данных mongo. Я все еще хочу, чтобы все отправлялось на s3.

У меня есть этот файл конфигурации, который, конечно же, не сработает.

<source>
  @type  forward
  @id    input
  @label mainstream
  port   24224
</source>

<label @mainstream>

  <match foo.**>
    @type copy

    <store>
      @type s3

      ...
    </store>
    <store>
      @type rewrite_tag_filter
      rewriterule1 log "^ACTION:" foo.bar
    </store>

  </match>

  <match foo.bar>
    @type mongo

    ...
  </matc>
</label>

Все это будет собрано и остановлено, как только мы дойдем до первого тега соответствия, нормальное поведение rewrite_tag_filter, похоже, не проходит мимо <store>.

Другое, что пробовал.

  • Копирование s3 store, чтобы он использовался дважды. Однако я не хочу, чтобы мои выходы s3 были разделены.
  • Перенаправить самому себе на другой порт, запустить источник через другую метку, однако он не подключится.

Я уверен, что то, о чем я прошу, не слишком безумно. Кто-нибудь делал что-то подобное раньше?


person SCB    schedule 19.07.2016    source источник


Ответы (1)


Просто нужно быть осторожным с тем, что переназначать. Если вы используете что-то, что будет совпадать с указанным выше совпадением, оно не будет двигаться дальше, поэтому оно должно быть другим. В этом случае, хотя тег был другим, поскольку я начинал его с foo, он не переместился бы дальше <match foo.**>.

<source>
  @type  forward
  @id    input
  @label mainstream
  port   24224
</source>

<label @mainstream>

  <match foo.**>
    @type copy

    <store>
      @type s3

      ...
    </store>
    <store>
      @type rewrite_tag_filter
      # Changed tag from foo.bar to this
      rewriterule1 log "^ACTION:" totally.different.tag.name
    </store>

  </match>


  # the new totally.different.tag.name won't get caught by the 
  # first <match foo.**> so it will actually reach this one
  <match totally.different.tag.name>
    @type mongo

    ...
  </match>
</label>
person SCB    schedule 19.07.2016