Запросы Splunk: фильтрация по полям _meta

Контекст

У меня есть несколько серверов приложений, которые я хотел бы отслеживать с помощью Splunk. На серверах в каждой среде работают одни и те же приложения. В поисках способа пометить эту информацию, чтобы легко отделить серверы stage от сервера prod в моих информационных панелях, я наткнулся на этот трюк, читая форумы.

inputs.conf из форвардеров на производственных машинах

[default]
_meta = env::prod

inputs.conf из экспедиторов на сценических машинах

[default]
_meta = env::stage

С помощью этого трюка я получаю поле env в проанализированных данных.

index=* | stats count by env

| env    | count |
|:------:|:-----:|
| stage  |2415686|
| prod   |55677  |

Проблема

Я не могу фильтровать по env

index=* logLevel="ERROR" projectName != "null" env="prod" | stats count(_raw) by projectName

Почему это так?


person zar3bski    schedule 11.08.2020    source источник
comment
обычно это достигается путем просмотра host - если у вас есть соглашение об именах, которое указывает на разные среды, это здорово   -  person warren    schedule 11.08.2020
comment
Да, но я имею в виду сбалансированные системы с несколькими нагрузками. Хороший способ выбрать все машины из одной среды - плюс   -  person zar3bski    schedule 11.08.2020


Ответы (1)


Хорошо, в моем случае env был просто тегом (который по умолчанию не индексируется). Чтобы проиндексировать их, вам нужно явно запросить это в fields.conf

[env]
INDEXED = true
person zar3bski    schedule 11.08.2020