Позвольте мне начать с самого начала. Запуск нескольких процессов в одном контейнере - это анти-шаблон. Старайтесь избегать этого как можно больше. Например, у Kubernetes есть отличное решение для вашего случая, когда они могут развернуть два контейнера в одном модуле и просто настроить связь между контейнерами в одном и том же петлевом сетевом интерфейсе (127.0.0.1), поэтому для процессов это будет выглядеть как будто они работают в одном контейнере. Подробнее см. https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/.
Если вы все еще хотите, чтобы все три процесса были в одном контейнере, у вас есть два варианта получения журналов с разными индексами:
маршрутизация по индексатору
Если вы можете идентифицировать журналы на стороне индексатора, вы можете пересылать журналы, как обычно, и с помощью transforms.conf на стороне индексатора направить их к определенному индексу, см. http://docs.splunk.com/Documentation/Splunk/latest/Admin/Transformsconf
[nginx_route]
DEST_KEY = _MetaData:Index
REGEX = nginx .*
FORMAT = index_nginx
обход журналов контейнеров
Другой вариант. Вы можете создать том для журналов, который вы будете использовать совместно с вашим контейнером и сервером пересылки (Splunk Universal Forwarder) или нашим сборщиком (https://www.outcoldsolutions.com).). В конфигурации укажите, к какому индексу вы хотите пересылать эти журналы. В вашем контейнере вам нужно будет изменить способ записи логов, вместо стандартного ввода, записывать их в файлы.