Vector-aggregator#

Vector-aggregator - это архитектурная роль Vector, при которой Vector разворачивается как централизованный инструмент для обработки и маршрутизации данных телеметрии, поступающих от агентов в частности, от Vector-agent или других источников.

Основные задачи и возможности Vector в режиме aggregator в DropApp:
  • Централизованная обработка данных:

    Vector-aggregator принимает данные от множества агентов (например, запущенных на узлах как Vector в режиме agent) и выполняет их преобразование, фильтрацию и агрегацию перед отправкой в конечное хранилище или систему анализа.

  • Масштабируемость и распределенная обработка:

    Vector-aggregator позволяет вынести тяжелые операции по обработке данных за пределы узлов, где работают контейнеры, обеспечивая более равномерную нагрузку и высокую производительность.

  • Поддержка множества протоколов и источников:

    Vector-aggregator может принимать данные из разных источников (например, через TCP, UDP, HTTP, gRPC), что делает его универсальным центром обработки телеметрии в кластере.

  • Резервное копирование и буферизация:

    Обеспечивает временное хранение данных и их отправку даже в условиях нестабильного соединения с целевыми системами, снижая риск потери данных.

  • Интеграция с Kubernetes через Deployment или StatefulSet

    Vector-aggregator в режиме aggregator обычно разворачивается как отдельный компонент кластера, например, с использованием Deployment или StatefulSet, чтобы обеспечить отказоустойчивость и управляемость.

  • Маршрутизация и мультиплексирование данных:

    Позволяет направлять данные в разные системы назначения (Elasticsearch, S3, Loki, Kafka и др.) в зависимости от типа и содержания.

Примечание

Vector-aggregator устанавливается по умолчанию с компонентом logging. Для Vector-aggregator преднастроена интеграция с Vector-agent.

Конфигурация values#

Значения можно переопределить через редактирование инструмента с именем vector-aggregator и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».

nameOverride - определить переопределенное имя создаваемых ресурсов#

Параметр

Описание

Значение по умолчанию

nameOverride

Переопределяет короткое имя ресурсов, создаваемых чартом

""

fullnameOverride - определить полное переопределенное имя создаваемых ресурсов#

Параметр

Описание

Значение по умолчанию

fullnameOverride

Переопределяет полное имя ресурсов, создаваемых чартом

""

role - определить роль развертывания Vector#

Параметр

Описание

Значение по умолчанию

role

Роль экземпляра Vector. Допустимые значения: Agent, Aggregator, Stateless-Aggregator. Для роли Agent создается DaemonSet, для Aggregator — StatefulSet, для Stateless-Aggregator — Deployment

"Aggregator"

rollWorkload - определить пересоздание workload при изменении ConfigMap#

Параметр

Описание

Значение по умолчанию

rollWorkload

Добавляет контрольную сумму сгенерированного ConfigMap в аннотации workload, чтобы инициировать rolling update при изменении конфигурации

true

rollWorkloadSecrets - определить пересоздание workload при изменении Secret#

Параметр

Описание

Значение по умолчанию

rollWorkloadSecrets

Добавляет контрольную сумму сгенерированного Secret в аннотации workload, чтобы инициировать rolling update при изменении секрета

true

rollWorkloadExtraObjects - определить пересоздание workload при изменении extraObjects#

Параметр

Описание

Значение по умолчанию

rollWorkloadExtraObjects

Добавляет контрольную сумму объектов из extraObjects в аннотации workload, чтобы инициировать rolling update при их изменении

true

commonLabels - определить дополнительные метки для всех ресурсов#

Параметр

Описание

Значение по умолчанию

commonLabels

Дополнительные labels, которые будут добавлены ко всем создаваемым ресурсам

{}

image - определить образ контейнера Vector#

Параметр

Описание

Значение по умолчанию

image.repository

Переопределяет реестр и имя образа Vector

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-vector/vector'

image.pullPolicy

Политика загрузки образа контейнера Vector. Используются стандартные значения Kubernetes, например IfNotPresent, Always, Never

IfNotPresent

image.pullSecrets

Список imagePullSecrets для доступа к приватным registry из Pod Vector

[]

image.tag

Тег образа Vector. По умолчанию совпадает с appVersion чарта

"v0.53.0"

image.sha

Digest SHA образа Vector для фиксации точной версии образа

""

image.base

Базовый дистрибутив образа Vector. При указании заменяет суффикс базового дистрибутива в appVersion, например distroless-libc на debian

""

replicas - определить количество реплик Vector#

Параметр

Описание

Значение по умолчанию

replicas

Количество Pod Vector. Используется для ролей Aggregator и Stateless-Aggregator

2

hostAliases - определить дополнительные записи hostAliases для Pod Vector#

Параметр

Описание

Значение по умолчанию

hostAliases

Дополнительные записи в /etc/hosts внутри Pod Vector. Пример конфигурации:

- ip: «127.0.0.1»
hostnames:
- «foo.local»
- «bar.local»

[]

podManagementPolicy - определить политику управления Pod StatefulSet#

Параметр

Описание

Значение по умолчанию

podManagementPolicy

Политика управления Pod StatefulSet для роли Aggregator. Обычно используется OrderedReady или Parallel

OrderedReady

secrets - определить секреты для использования Vector#

Параметр

Описание

Значение по умолчанию

secrets.generic

Набор произвольных ключей и значений, которые будут добавлены в Secret. Значения указываются в открытом виде, без base64-кодирования. Обычно используется для учетных данных и параметров доступа. Не следует хранить незашифрованные секреты в Git. Пример конфигурации:

my_variable: «my-secret-value»
datadog_api_key: «api-key»
awsAccessKeyId: «access-key»
awsSecretAccessKey: «secret-access-key»

{}

autoscaling - определить параметры автомасштабирования Vector#

Параметр

Описание

Значение по умолчанию

autoscaling.enabled

Создает HorizontalPodAutoscaler для Vector. Применяется к ролям Aggregator и Stateless-Aggregator

false

autoscaling.external

Указывает, что масштабированием управляет внешний механизм, например KEDA

false

autoscaling.annotations

Аннотации для ресурса HPA Vector

{}

autoscaling.minReplicas

Минимальное количество реплик для HPA Vector

1

autoscaling.maxReplicas

Максимальное количество реплик для HPA Vector

10

autoscaling.targetCPUUtilizationPercentage

Целевой процент утилизации CPU для HPA Vector

80

autoscaling.targetMemoryUtilizationPercentage

Целевой процент утилизации памяти для HPA Vector

null

autoscaling.customMetric

Настройка пользовательской метрики для автомасштабирования. Пример конфигурации:

- type: Pods
pods:
metric:
name: utilization
target:
type: AverageValue
averageValue: 95

{}

autoscaling.behavior

Раздельная настройка поведения scale-up и scale-down для HPA. Пример конфигурации:

scaleDown:
stabilizationWindowSeconds: 300

{}

podDisruptionBudget - определить параметры PodDisruptionBudget для Vector#

Параметр

Описание

Значение по умолчанию

podDisruptionBudget.enabled

Включает создание PodDisruptionBudget для Vector

true

podDisruptionBudget.minAvailable

Минимальное количество Pod, которое должно оставаться доступным после eviction

1

podDisruptionBudget.maxUnavailable

Максимальное количество Pod, которое может быть недоступно после eviction

null

rbac - определить RBAC-ресурсы для Vector#

Параметр

Описание

Значение по умолчанию

rbac.create

Создает и использует RBAC-ресурсы. В исходном чарте отмечен как параметр, актуальный только для роли Agent

true

rbac.extraRules

Дополнительные правила Kubernetes RBAC, которые будут добавлены в ClusterRole после стандартных правил чарта. Каждое правило должно соответствовать синтаксису rule для ClusterRole. Пример конфигурации:

- apiGroups: [«»]
resources: [«nodes/metrics», «nodes/stats»]
verbs: [«get»]

[]

psp - определить создание PodSecurityPolicy#

Параметр

Описание

Значение по умолчанию

psp.create

Создает ресурс PodSecurityPolicy. PodSecurityPolicy устарел, начиная с Kubernetes 1.21, и удален в 1.25

false

serviceAccount - определить ServiceAccount для Vector#

Параметр

Описание

Значение по умолчанию

serviceAccount.create

Создает ServiceAccount для Vector

true

serviceAccount.annotations

Аннотации для ServiceAccount Vector

{}

serviceAccount.name

Имя ServiceAccount для использования. Если не задано и включено создание, имя генерируется по шаблону fullname

null

serviceAccount.automountToken

Автоматически монтирует API credentials в ServiceAccount Vector

true

podAnnotations - определить аннотации Pod Vector#

Параметр

Описание

Значение по умолчанию

podAnnotations

Аннотации, которые будут добавлены на Pod Vector

{}

podLabels - определить метки Pod Vector#

Параметр

Описание

Значение по умолчанию

podLabels.vector.dev/exclude

Метка для Pod Vector. Обычно используется для исключения логов самого Vector из сбора

"true"

podPriorityClassName - определить priorityClassName для Pod Vector#

Параметр

Описание

Значение по умолчанию

podPriorityClassName

Имя PriorityClass, которое будет назначено Podм Vector

""

podHostNetwork - определить использование hostNetwork для Pod Vector#

Параметр

Описание

Значение по умолчанию

podHostNetwork

Включает запуск Pod Vector в сетевом пространстве узла

false

podSecurityContext - определить PodSecurityContext для Pod Vector#

Параметр

Описание

Значение по умолчанию

podSecurityContext

Переопределяет стандартный PodSecurityContext для Pod Vector

{}

workloadResourceAnnotations - определить аннотации workload-ресурса Vector#

Параметр

Описание

Значение по умолчанию

workloadResourceAnnotations

Аннотации для ресурса DaemonSet, Deployment или StatefulSet, которым разворачивается Vector

{}

securityContext - определить securityContext контейнеров Vector#

Параметр

Описание

Значение по умолчанию

securityContext

SecurityContext для контейнеров Vector

{}

command - определить команду запуска контейнера Vector#

Параметр

Описание

Значение по умолчанию

command

Переопределяет команду запуска контейнера Vector

[]

args - определить аргументы запуска контейнера Vector#

Параметр

Описание

Значение по умолчанию

args

Переопределяет аргументы запуска контейнера Vector

- –config-dir
- «/etc/vector/»

env - определить переменные окружения контейнеров Vector#

Параметр

Описание

Значение по умолчанию

env

Переменные окружения для контейнеров Vector. Пример конфигурации:

- name: MY_VARIABLE
valueFrom:
secretKeyRef:
name: vector
key: my_variable
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: vector
key: awsAccessKeyId

[]

envFrom - определить источники импорта переменных окружения#

Параметр

Описание

Значение по умолчанию

envFrom

Импортирует переменные окружения из Secret или ConfigMap. Пример конфигурации:

- secretRef:
name: vector

[]

containerPorts - определить порты контейнера Vector вручную#

Параметр

Описание

Значение по умолчанию

containerPorts

Явно задает список containerPorts для Vector и отключает их автоматическую генерацию

[]

resources - определить requests и limits для контейнеров Vector#

Параметр

Описание

Значение по умолчанию

resources

Requests и limits ресурсов для контейнеров Vector. Пример конфигурации:

requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 200m
memory: 256Mi

{}

lifecycle - определить lifecycle hooks контейнеров Vector#

Параметр

Описание

Значение по умолчанию

lifecycle

Lifecycle hooks для контейнеров Vector, например preStop или postStart. Пример конфигурации:

preStop:
exec:
command:
- /bin/sleep
- «10»

{}

minReadySeconds - определить минимальное время готовности нового Pod#

Параметр

Описание

Значение по умолчанию

minReadySeconds

Минимальное количество секунд, которое новый Pod должен успешно проходить проверки, прежде чем будет считаться доступным

0

updateStrategy - определить стратегию обновления Pod Vector#

Параметр

Описание

Значение по умолчанию

updateStrategy

Переопределяет стратегию обновления Pod Vector. Для DaemonSet используется DaemonSetUpdateStrategy, для StatefulSet — StatefulSetUpdateStrategy, для Deployment — DeploymentStrategy. Пример конфигурации:

type: RollingUpdate
rollingUpdate:
maxUnavailable: 1

{}

terminationGracePeriodSeconds - определить grace period при остановке контейнеров Vector#

Параметр

Описание

Значение по умолчанию

terminationGracePeriodSeconds

Время в секундах, отводимое контейнерам Vector на корректное завершение работы

60

nodeSelector - определить nodeSelector для Pod Vector#

Параметр

Описание

Значение по умолчанию

nodeSelector

Ограничивает размещение Pod Vector узлами с указанными labels

{}

tolerations - определить tolerations для Pod Vector#

Параметр

Описание

Значение по умолчанию

tolerations

Tolerations для размещения Pod Vector на tainted-узлах

[]

affinity - определить правила affinity для Pod Vector#

Параметр

Описание

Значение по умолчанию

affinity

Правила node affinity и pod affinity/anti-affinity для Pod Vector

{}

topologySpreadConstraints - определить topology spread constraints для Pod Vector#

Параметр

Описание

Значение по умолчанию

topologySpreadConstraints

Правила равномерного распределения Pod Vector по доменам топологии. Используется для ролей Aggregator и Stateless-Aggregator

[]

service - определить Service для Vector#

Параметр

Описание

Значение по умолчанию

service.enabled

Создает Service для Vector

true

service.type

Тип Service для Vector, например ClusterIP, NodePort, LoadBalancer

"ClusterIP"

service.annotations

Аннотации для Service Vector

{}

service.topologyKeys

Задает topologyKeys для Service Vector. Пример конфигурации:

- «kubernetes.io/hostname»
- «topology.kubernetes.io/zone»
- «topology.kubernetes.io/region»
- «*»

[]

service.ports

Явно задает список портов Service и отключает их автоматическую генерацию

[]

service.externalTrafficPolicy

Политика маршрутизации внешнего трафика для Service типа LoadBalancer или NodePort

""

service.internalTrafficPolicy

Политика маршрутизации внутреннего трафика для Service внутри кластера

""

service.loadBalancerIP

Статический IP-адрес для Service типа LoadBalancer

""

service.ipFamilyPolicy

Политика использования IPv4/IPv6 для Service

""

service.ipFamilies

Список IP family для Service в dual-stack конфигурации

[]

service.trafficDistribution

Параметр распределения трафика для Service с учетом topology-aware routing

""

serviceHeadless - определить headless Service для Vector#

Параметр

Описание

Значение по умолчанию

serviceHeadless.enabled

Создает headless Service для Vector

true

ingress - определить Ingress для Vector#

Параметр

Описание

Значение по умолчанию

ingress.enabled

Создает и использует Ingress для доступа к Vector

false

ingress.className

Задает ingressClassName для Ingress. Требует Kubernetes 1.18 и выше

"nginx"

ingress.annotations

Аннотации для Ingress. Пример конфигурации:

kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: «true»

{}

ingress.hosts

Список host и path для Ingress. Пример конфигурации:

- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
port:
name: «»
number: «»

[]

ingress.tls

Настройка TLS для Ingress. Пример конфигурации:

- secretName: chart-example-tls
hosts:
- chart-example.local

[]

existingConfigMaps - определить внешние ConfigMap с конфигурацией Vector#

Параметр

Описание

Значение по умолчанию

existingConfigMaps

Список существующих ConfigMap с конфигурацией Vector вместо создания новой. Требует заполнения dataDir. Также нужно явно задать containerPorts, service.ports и параметры headless Service в соответствии с собственной конфигурацией. Имеет приоритет над customConfig и встроенной конфигурацией чарта

[]

dataDir - определить путь для хранения данных Vector#

Параметр

Описание

Значение по умолчанию

dataDir

Путь к каталогу данных Vector при использовании существующих ConfigMap с конфигурацией

""

customConfig - определить пользовательскую конфигурацию Vector#

Параметр

Описание

Значение по умолчанию

customConfig.api.address

Адрес API Vector для healthcheck, introspection и playground

127.0.0.1:8686

customConfig.api.enabled

Включает встроенный API Vector

true

customConfig.api.playground

Включает playground для API Vector

false

customConfig.data_dir

Каталог хранения данных Vector

/vector-data-dir

customConfig.sources.datadog_agent.address

Адрес прослушивания входа Datadog Agent

0.0.0.0:8282

customConfig.sources.datadog_agent.type

Тип источника для приема данных Datadog Agent

datadog_agent

customConfig.sources.fluent.address

Адрес прослушивания входа Fluent

0.0.0.0:24224

customConfig.sources.fluent.type

Тип источника для приема событий Fluent

fluent

customConfig.sources.internal_metrics.type

Тип источника внутренних метрик Vector

internal_metrics

customConfig.sources.logstash.address

Адрес прослушивания входа Logstash

0.0.0.0:5044

customConfig.sources.logstash.type

Тип источника для приема событий Logstash

logstash

customConfig.sources.splunk_hec.address

Адрес прослушивания входа Splunk HEC

0.0.0.0:8080

customConfig.sources.splunk_hec.type

Тип источника для приема событий Splunk HEC

splunk_hec

customConfig.sources.statsd.address

Адрес прослушивания входа StatsD

0.0.0.0:8125

customConfig.sources.statsd.mode

Режим работы входа StatsD, например tcp или udp

tcp

customConfig.sources.statsd.type

Тип источника для приема метрик StatsD

statsd

customConfig.sources.syslog.address

Адрес прослушивания входа Syslog

0.0.0.0:9000

customConfig.sources.syslog.mode

Режим работы входа Syslog, например tcp или udp

tcp

customConfig.sources.syslog.type

Тип источника для приема сообщений Syslog

syslog

customConfig.sources.vector.address

Адрес прослушивания входа Vector

0.0.0.0:6000

customConfig.sources.vector.type

Тип источника для приема событий от других экземпляров Vector

vector

customConfig.sources.vector.version

Версия протокола источника Vector

"2"

customConfig.transforms.ensure_source_type.type

Тип transform для нормализации поля источника

remap

customConfig.transforms.ensure_source_type.inputs

Список входов для transform нормализации поля источника

- vector
- syslog
- logstash
- fluent
- datadog_agent
- splunk_hec
- statsd

customConfig.transforms.ensure_source_type.source

VRL-скрипт, который добавляет значение external в поле source_type, если оно отсутствует

if !exists(.source_type)

customConfig.transforms.add_cluster.type

Тип transform для добавления имени кластера в событие

remap

customConfig.transforms.add_cluster.inputs

Список входов для transform добавления имени кластера

- ensure_source_type

customConfig.transforms.add_cluster.source

VRL-скрипт, который заполняет поле cluster значением имени кластера из Helm values

.cluster = 

customConfig.transforms.add_unit_hint.type

Тип transform для добавления подсказки unit для логов узла и внешних источников

remap

customConfig.transforms.add_unit_hint.inputs

Список входов для transform добавления поля unit

- add_cluster

customConfig.transforms.add_unit_hint.source

VRL-скрипт, который пытается определить systemd unit из systemd.unit или SYSLOG_IDENTIFIER и сохраняет его в поле unit

if .source_type == «k8s_node»

customConfig.transforms.route_streams.type

Тип transform для маршрутизации потоков по категориям

route

customConfig.transforms.route_streams.inputs

Список входов для transform маршрутизации потоков

- add_unit_hint

customConfig.transforms.route_streams.route.audit

Условие маршрута для audit-событий Kubernetes

“.source_type == «k8s_audit»“

customConfig.transforms.route_streams.route.pods

Условие маршрута для логов Pod Kubernetes

“.source_type == «k8s_pods»“

customConfig.transforms.route_streams.route.node

Условие маршрута для логов узла и внешних источников

“.source_type == «k8s_node» || .source_type == «external»“

customConfig.transforms.normalize_pod_labels.type

Тип transform для нормализации pod labels перед отправкой в Loki

remap

customConfig.transforms.normalize_pod_labels.inputs

Список входов для transform нормализации pod labels

- route_streams.pods

customConfig.transforms.normalize_pod_labels.source

VRL-скрипт, который извлекает ключевые pod labels в отдельные поля и подставляет unknown, если label отсутствует

if exists(.kubernetes) && exists(.kubernetes.pod_labels) && exists(.kubernetes.pod_labels.app) {
.app = .kubernetes.pod_labels.app
} else {
.app = «unknown»
}

if exists(.kubernetes) && exists(.kubernetes.pod_labels) && exists(.kubernetes.pod_labels.»app.kubernetes.io/name») {
.app_kubernetes_io_name = .kubernetes.pod_labels.»app.kubernetes.io/name»
} else {
.app_kubernetes_io_name = «unknown»
}

if exists(.kubernetes) && exists(.kubernetes.pod_labels) && exists(.kubernetes.pod_labels.»app.kubernetes.io/instance») {
.app_kubernetes_io_instance = .kubernetes.pod_labels.»app.kubernetes.io/instance»
} else {
.app_kubernetes_io_instance = «unknown»
}

customConfig.sinks.loki_pods.type

Тип sink для отправки логов Pod в Loki

loki

customConfig.sinks.loki_pods.endpoint

HTTP endpoint Loki для записи логов Pod

http://loki.dapp-logging.svc.cluster.local:3100

customConfig.sinks.loki_pods.inputs

Список входов для sink логов Pod

- normalize_pod_labels

customConfig.sinks.loki_pods.encoding.codec

Кодек сериализации событий перед отправкой в Loki

json

customConfig.sinks.loki_pods.compression

Алгоритм сжатия запросов к Loki

snappy

customConfig.sinks.loki_pods.batch.max_bytes

Максимальный размер batch в байтах при отправке в Loki

1048576

customConfig.sinks.loki_pods.batch.max_events

Максимальное количество событий в batch при отправке в Loki

5000

customConfig.sinks.loki_pods.batch.timeout_secs

Таймаут batch перед принудительной отправкой в Loki

2

customConfig.sinks.loki_pods.request.concurrency

Количество параллельных запросов к Loki

2

customConfig.sinks.loki_pods.request.rate_limit_duration_secs

Интервал rate limit для запросов к Loki

1

customConfig.sinks.loki_pods.request.rate_limit_num

Максимальное количество запросов к Loki за один интервал rate limit

50

customConfig.sinks.loki_pods.request.retry_initial_backoff_secs

Начальный backoff при повторных попытках отправки в Loki

1

customConfig.sinks.loki_pods.request.retry_max_duration_secs

Максимальная длительность повторных попыток отправки в Loki

600

customConfig.sinks.loki_pods.request.timeout_secs

Таймаут HTTP-запроса к Loki

30

customConfig.sinks.loki_pods.buffer.type

Тип буфера для sink логов Pod

memory

customConfig.sinks.loki_pods.buffer.max_size

Максимальный размер буфера sink логов Pod в байтах

268435456

customConfig.sinks.loki_pods.buffer.when_full

Поведение при заполнении буфера sink логов Pod

block

customConfig.sinks.loki_pods.labels.job

Статическая label job для логов Pod в Loki

k8s-pods

customConfig.sinks.loki_pods.labels.cluster

Шаблон label cluster для логов Pod в Loki

“{{ cluster » }}“

customConfig.sinks.loki_pods.labels.source_type

Шаблон label source_type для логов Pod в Loki

“{{ source_type » }}“

customConfig.sinks.loki_pods.labels.host

Шаблон label host для логов Pod в Loki

“{{ host » }}“

customConfig.sinks.loki_pods.labels.namespace

Шаблон label namespace для логов Pod в Loki

“{{ kubernetes.pod_namespace » }}“

customConfig.sinks.loki_pods.labels.pod

Шаблон label pod для логов Pod в Loki

“{{ kubernetes.pod_name » }}“

customConfig.sinks.loki_pods.labels.container

Шаблон label container для логов Pod в Loki

“{{ kubernetes.container_name » }}“

customConfig.sinks.loki_pods.labels.app

Шаблон label app для логов Pod в Loki

“{{ app » }}“

customConfig.sinks.loki_pods.labels.app_kubernetes_io_name

Шаблон label app_kubernetes_io_name для логов Pod в Loki

“{{ app_kubernetes_io_name » }}“

customConfig.sinks.loki_pods.labels.app_kubernetes_io_instance

Шаблон label app_kubernetes_io_instance для логов Pod в Loki

“{{ app_kubernetes_io_instance » }}“

customConfig.sinks.loki_pods.out_of_order_action

Действие для событий, пришедших не по порядку времени

accept

customConfig.sinks.loki_node.type

Тип sink для отправки логов узлов в Loki

loki

customConfig.sinks.loki_node.endpoint

HTTP endpoint Loki для записи логов узлов

http://loki.dapp-logging.svc.cluster.local:3100

customConfig.sinks.loki_node.inputs

Список входов для sink логов узлов

- route_streams.node

customConfig.sinks.loki_node.encoding.codec

Кодек сериализации событий перед отправкой логов узлов в Loki

json

customConfig.sinks.loki_node.compression

Алгоритм сжатия запросов sink логов узлов

snappy

customConfig.sinks.loki_node.batch.max_bytes

Максимальный размер batch для логов узлов в байтах

1048576

customConfig.sinks.loki_node.batch.max_events

Максимальное количество событий в batch для логов узлов

5000

customConfig.sinks.loki_node.batch.timeout_secs

Таймаут batch перед отправкой логов узлов

2

customConfig.sinks.loki_node.request.concurrency

Количество параллельных запросов sink логов узлов

2

customConfig.sinks.loki_node.request.rate_limit_duration_secs

Интервал rate limit для запросов sink логов узлов

1

customConfig.sinks.loki_node.request.rate_limit_num

Максимальное количество запросов sink логов узлов за интервал

50

customConfig.sinks.loki_node.request.retry_initial_backoff_secs

Начальный backoff повторных попыток sink логов узлов

1

customConfig.sinks.loki_node.request.retry_max_duration_secs

Максимальная длительность повторных попыток sink логов узлов

600

customConfig.sinks.loki_node.request.timeout_secs

Таймаут HTTP-запроса sink логов узлов

30

customConfig.sinks.loki_node.buffer.type

Тип буфера sink логов узлов

memory

customConfig.sinks.loki_node.buffer.max_size

Максимальный размер буфера sink логов узлов в байтах

268435256

customConfig.sinks.loki_node.buffer.when_full

Поведение при заполнении буфера sink логов узлов

block

customConfig.sinks.loki_node.labels.job

Статическая label job для логов узлов в Loki

k8s-node

customConfig.sinks.loki_node.labels.cluster

Шаблон label cluster для логов узлов в Loki

“{{ cluster » }}“

customConfig.sinks.loki_node.labels.source_type

Шаблон label source_type для логов узлов в Loki

“{{ source_type » }}“

customConfig.sinks.loki_node.labels.host

Шаблон label host для логов узлов в Loki

“{{ host » }}“

customConfig.sinks.loki_node.labels.unit

Шаблон label unit для логов узлов в Loki

“{{ unit » }}“

customConfig.sinks.loki_node.out_of_order_action

Действие для событий логов узлов, пришедших не по порядку времени

accept

customConfig.sinks.loki_audit.type

Тип sink для отправки audit-логов Kubernetes в Loki

loki

customConfig.sinks.loki_audit.endpoint

HTTP endpoint Loki для записи audit-логов Kubernetes

http://loki.dapp-logging.svc.cluster.local:3100

customConfig.sinks.loki_audit.inputs

Список входов для sink audit-логов

- route_streams.audit

customConfig.sinks.loki_audit.encoding.codec

Кодек сериализации событий перед отправкой audit-логов в Loki

json

customConfig.sinks.loki_audit.compression

Алгоритм сжатия запросов sink audit-логов

snappy

customConfig.sinks.loki_audit.batch.max_bytes

Максимальный размер batch для audit-логов в байтах

1048576

customConfig.sinks.loki_audit.batch.max_events

Максимальное количество событий в batch для audit-логов

5000

customConfig.sinks.loki_audit.batch.timeout_secs

Таймаут batch перед отправкой audit-логов

2

customConfig.sinks.loki_audit.request.concurrency

Количество параллельных запросов sink audit-логов

2

customConfig.sinks.loki_audit.request.rate_limit_duration_secs

Интервал rate limit для запросов sink audit-логов

1

customConfig.sinks.loki_audit.request.rate_limit_num

Максимальное количество запросов sink audit-логов за интервал

50

customConfig.sinks.loki_audit.request.retry_initial_backoff_secs

Начальный backoff повторных попыток sink audit-логов

1

customConfig.sinks.loki_audit.request.retry_max_duration_secs

Максимальная длительность повторных попыток sink audit-логов

600

customConfig.sinks.loki_audit.request.timeout_secs

Таймаут HTTP-запроса sink audit-логов

30

customConfig.sinks.loki_audit.buffer.type

Тип буфера sink audit-логов

memory

customConfig.sinks.loki_audit.buffer.max_size

Максимальный размер буфера sink audit-логов в байтах

268435456

customConfig.sinks.loki_audit.buffer.when_full

Поведение при заполнении буфера sink audit-логов

block

customConfig.sinks.loki_audit.labels.job

Статическая label job для audit-логов Kubernetes в Loki

k8s-audit

customConfig.sinks.loki_audit.labels.cluster

Шаблон label cluster для audit-логов Kubernetes в Loki

“{{ cluster » }}“

customConfig.sinks.loki_audit.labels.source_type

Шаблон label source_type для audit-логов Kubernetes в Loki

“{{ source_type » }}“

customConfig.sinks.loki_audit.labels.host

Шаблон label host для audit-логов Kubernetes в Loki

“{{ host » }}“

customConfig.sinks.loki_audit.labels.verb

Шаблон label verb для audit-логов Kubernetes в Loki

“{{ verb » }}“

customConfig.sinks.loki_audit.labels.apiGroup

Шаблон label apiGroup для audit-логов Kubernetes в Loki

“{{ apiGroup » }}“

customConfig.sinks.loki_audit.labels.resource

Шаблон label resource для audit-логов Kubernetes в Loki

“{{ resource » }}“

customConfig.sinks.loki_audit.labels.subresource

Шаблон label subresource для audit-логов Kubernetes в Loki

“{{ subresource » }}“

customConfig.sinks.loki_audit.labels.namespace

Шаблон label namespace для audit-логов Kubernetes в Loki

“{{ ns » }}“

customConfig.sinks.loki_audit.labels.code

Шаблон label code для audit-логов Kubernetes в Loki

“{{ code » }}“

customConfig.sinks.loki_audit.out_of_order_action

Действие для audit-событий, пришедших не по порядку времени

accept

customConfig.sinks.prom_exporter.type

Тип sink для экспорта метрик в формате Prometheus

prometheus_exporter

customConfig.sinks.prom_exporter.address

Адрес и порт, на которых Prometheus exporter будет слушать соединения

0.0.0.0:9090

customConfig.sinks.prom_exporter.inputs

Список входов для Prometheus exporter

- internal_metrics

defaultVolumes - определить тома, монтируемые в Pod Vector по умолчанию#

Параметр

Описание

Значение по умолчанию

defaultVolumes

Набор томов, которые по умолчанию монтируются в Pod Vector. Обычно изменять не требуется. Для пользовательских томов лучше использовать extraVolumes и extraVolumeMounts

- name: var-log
hostPath:
path: «/var/log/»
- name: var-lib
hostPath:
path: «/var/lib/»
- name: procfs
hostPath:
path: «/proc»
- name: sysfs
hostPath:
path: «/sys»
- name: run-log-journal
hostPath:
path: /run/log/journal
type: Directory
- name: etc-machine-id
hostPath:
path: /etc/machine-id
type: File

defaultVolumeMounts - определить стандартные монтирования томов Vector#

Параметр

Описание

Значение по умолчанию

defaultVolumeMounts

Стандартные volumeMounts для Vector, соответствующие томам из defaultVolumes

- name: var-log
mountPath: «/var/log/»
readOnly: true
- name: var-lib
mountPath: «/var/lib»
readOnly: true
- name: procfs
mountPath: «/host/proc»
readOnly: true
- name: sysfs
mountPath: «/host/sys»
readOnly: true
- name: run-log-journal
mountPath: /run/log/journal
readOnly: true
- name: etc-machine-id
mountPath: /etc/machine-id
readOnly: true

extraVolumes - определить дополнительные тома для Pod Vector#

Параметр

Описание

Значение по умолчанию

extraVolumes

Дополнительные volumes для Pod Vector

[]

extraVolumeMounts - определить дополнительные монтирования томов для контейнеров Vector#

Параметр

Описание

Значение по умолчанию

extraVolumeMounts

Дополнительные volumeMounts для контейнеров Vector

[]

initContainers - определить initContainers для Pod Vector#

Параметр

Описание

Значение по умолчанию

initContainers

Дополнительные initContainers для Pod Vector. Поддерживает шаблоны Helm. Пример конфигурации:

- name: test
image: busybox:latest
command:
- cp
args:
- /bin/sleep
- /test/sleep
volumeMounts:
- name: test
mountPath: /test

[]

extraContainers - определить дополнительные контейнеры для Pod Vector#

Параметр

Описание

Значение по умолчанию

extraContainers

Дополнительные контейнеры для Pod Vector. Поддерживает шаблоны Helm. Пример конфигурации:

- name: test
command:
- cp
args:
- /bin/sleep
- /test/sleep
image: busybox:latest
volumeMounts:
- name: test
mountPath: /test

[]

persistence - определить параметры хранения данных Vector#

Параметр

Описание

Значение по умолчанию

persistence.enabled

Создает и использует PersistentVolumeClaim для хранения данных Vector

false

persistence.existingClaim

Имя существующего PersistentVolumeClaim для использования. Актуально для роли Aggregator

""

persistence.retentionPolicy

Политика сохранения PersistentVolumeClaim для StatefulSet Vector. Пример конфигурации:

whenDeleted: Retain
whenScaled: Retain

{}

persistence.accessModes

Список access modes для PersistentVolumeClaim. Актуально для роли Aggregator

- ReadWriteOnce

persistence.size

Размер PersistentVolumeClaim для хранения данных Vector. Актуально для роли Aggregator

10Gi

persistence.finalizers

Список finalizers для PersistentVolumeClaim. Актуально для роли Aggregator

- kubernetes.io/pvc-protection

persistence.selectors

Label selectors для выбора подходящего PersistentVolume. Актуально для роли Aggregator

{}

persistence.hostPath.enabled

Включает хранение данных через hostPath для роли Agent. Если выключено, для Agent используется emptyDir

true

persistence.hostPath.path

Путь hostPath для хранения данных роли Agent. Для Agent хранение всегда используется

"/var/lib/vector"

dnsPolicy - определить dnsPolicy для Pod Vector#

Параметр

Описание

Значение по умолчанию

dnsPolicy

Политика DNS для Pod Vector

ClusterFirst

dnsConfig - определить дополнительные параметры DNS для Pod Vector#

Параметр

Описание

Значение по умолчанию

dnsConfig

Дополнительная конфигурация DNS для Pod Vector. Пример конфигурации:

nameservers:
- 1.2.3.4
searches:
- ns1.svc.cluster-domain.example
- my.dns.search.suffix
options:
- name: ndots
value: «2»
- name: edns0

{}

shareProcessNamespace - определить общий process namespace для контейнеров Pod#

Параметр

Описание

Значение по умолчанию

shareProcessNamespace

Разрешает контейнерам внутри одного Pod Vector использовать общий namespace процессов

false

livenessProbe - определить livenessProbe для контейнеров Vector#

Параметр

Описание

Значение по умолчанию

livenessProbe

Переопределяет стандартную livenessProbe контейнеров Vector. При использовании customConfig требуется включить customConfig.api.enabled. Пример конфигурации:

httpGet:
path: /health
port: api

{}

readinessProbe - определить readinessProbe для контейнеров Vector#

Параметр

Описание

Значение по умолчанию

readinessProbe

Переопределяет стандартную readinessProbe контейнеров Vector. При использовании customConfig требуется включить customConfig.api.enabled. Пример конфигурации:

httpGet:
path: /health
port: api

{}

podMonitor - определить PodMonitor для сбора метрик Vector#

Параметр

Описание

Значение по умолчанию

podMonitor.enabled

Создает PodMonitor для Vector. Требует установленный CRD PodMonitor

false

podMonitor.jobLabel

Label, из которого Prometheus Operator будет брать имя job

app.kubernetes.io/name

podMonitor.port

Имя порта, который будет использоваться для scrape

prom-exporter

podMonitor.path

HTTP path для scrape метрик

/metrics

podMonitor.interval

Интервал опроса метрик Prometheus

null

podMonitor.scrapeTimeout

Таймаут выполнения scrape

null

podMonitor.relabelings

RelabelConfigs, применяемые к samples перед scrape

[]

podMonitor.metricRelabelings

MetricRelabelConfigs, применяемые к samples перед ingestion

[]

podMonitor.podTargetLabels

Список labels Pod, которые нужно перенести на target метрик

[]

podMonitor.additionalLabels

Дополнительные labels для ресурса PodMonitor

{}

podMonitor.honorLabels

Устанавливает honor_labels: true в scrape config

false

podMonitor.honorTimestamps

Устанавливает honor_timestamps: true в scrape config

true

logLevel - определить уровень логирования Vector#

Параметр

Описание

Значение по умолчанию

logLevel

Уровень логирования Vector, например trace, debug, info, warn, error

"info"

haproxy - определить встроенный балансировщик HAProxy#

Параметр

Описание

Значение по умолчанию

haproxy.enabled

Создает встроенный балансировщик HAProxy для Vector

false

haproxy.image.repository

Переопределяет registry и имя образа HAProxy

haproxytech/haproxy-alpine

haproxy.image.pullPolicy

Политика загрузки образа HAProxy

IfNotPresent

haproxy.image.pullSecrets

Список imagePullSecrets для Pod HAProxy

[]

haproxy.image.tag

Тег образа HAProxy

"2.6.12"

haproxy.rollWorkload

Добавляет контрольную сумму ConfigMap в Deployment HAProxy для автоматического rolling update

true

haproxy.replicas

Количество Pod HAProxy

1

haproxy.serviceAccount.create

Создает ServiceAccount для HAProxy

true

haproxy.serviceAccount.annotations

Аннотации для ServiceAccount HAProxy

{}

haproxy.serviceAccount.name

Имя ServiceAccount для HAProxy. Если не задано и создание включено, имя генерируется по шаблону fullname

null

haproxy.serviceAccount.automountToken

Автоматически монтирует API credentials в ServiceAccount HAProxy

true

haproxy.strategy

Стратегия обновления Pod HAProxy. Пример конфигурации:

rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate

{}

haproxy.terminationGracePeriodSeconds

Время в секундах, отводимое HAProxy на корректное завершение работы

60

haproxy.podAnnotations

Аннотации для Pod HAProxy

{}

haproxy.podLabels

Labels для Pod HAProxy

{}

haproxy.podPriorityClassName

Имя PriorityClass для Pod HAProxy

""

haproxy.podSecurityContext

PodSecurityContext для HAProxy. Пример конфигурации:

fsGroup: 2000

{}

haproxy.securityContext

SecurityContext контейнеров HAProxy. Пример конфигурации:

capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000

{}

haproxy.containerPorts

Явно задает containerPorts для HAProxy и отключает их автоматическую генерацию

[]

haproxy.service.type

Тип Service для HAProxy

ClusterIP

haproxy.service.annotations

Аннотации для Service HAProxy

{}

haproxy.service.topologyKeys

Задает topologyKeys для Service HAProxy. Пример конфигурации:

- «kubernetes.io/hostname»
- «topology.kubernetes.io/zone»
- «topology.kubernetes.io/region»
- «*»

[]

haproxy.service.ports

Явно задает список портов Service HAProxy и отключает их автоматическую генерацию

[]

haproxy.service.externalTrafficPolicy

Политика маршрутизации внешнего трафика для Service HAProxy

""

haproxy.service.loadBalancerIP

Статический IP-адрес для Service HAProxy типа LoadBalancer

""

haproxy.service.ipFamilyPolicy

Политика использования IPv4/IPv6 для Service HAProxy

""

haproxy.service.ipFamilies

Список IP family для Service HAProxy в dual-stack конфигурации

[]

haproxy.existingConfigMap

Имя существующего ConfigMap с конфигурацией HAProxy вместо создания новой. При использовании нужно явно задать haproxy.containerPorts и haproxy.service.ports. Имеет приоритет над haproxy.customConfig и встроенной конфигурацией чарта

""

haproxy.customConfig

Полностью переопределяет конфигурацию HAProxy. Поддерживает Helm templates для подстановки значений. По умолчанию конфигурация генерируется на основе customConfig Vector

""

haproxy.extraVolumes

Дополнительные volumes для Pod HAProxy

[]

haproxy.extraVolumeMounts

Дополнительные volumeMounts для контейнеров HAProxy

[]

haproxy.initContainers

Дополнительные initContainers для Pod HAProxy. Поддерживает шаблоны Helm

[]

haproxy.extraContainers

Дополнительные контейнеры для Pod HAProxy. Поддерживает шаблоны Helm

[]

haproxy.autoscaling.enabled

Создает HorizontalPodAutoscaler для HAProxy

false

haproxy.autoscaling.external

Указывает, что HAProxy масштабируется внешним HorizontalPodAutoscaler

false

haproxy.autoscaling.minReplicas

Минимальное количество реплик для HPA HAProxy

1

haproxy.autoscaling.maxReplicas

Максимальное количество реплик для HPA HAProxy

10

haproxy.autoscaling.targetCPUUtilizationPercentage

Целевой процент утилизации CPU для HPA HAProxy

80

haproxy.autoscaling.targetMemoryUtilizationPercentage

Целевой процент утилизации памяти для HPA HAProxy

null

haproxy.autoscaling.customMetric

Пользовательская метрика для автомасштабирования HAProxy. Пример конфигурации:

- type: Pods
pods:
metric:
name: utilization
target:
type: AverageValue
averageValue: 95

{}

haproxy.resources

Requests и limits ресурсов для HAProxy. Пример конфигурации:

limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi

{}

haproxy.livenessProbe.tcpSocket.port

TCP-порт для стандартной livenessProbe HAProxy

1024

haproxy.readinessProbe.tcpSocket.port

TCP-порт для стандартной readinessProbe HAProxy

1024

haproxy.nodeSelector

Node selector для Pod HAProxy

{}

haproxy.tolerations

Tolerations для Pod HAProxy

[]

haproxy.affinity

Правила affinity и anti-affinity для Pod HAProxy

{}

extraObjects - определить дополнительные Kubernetes-объекты через values#

Параметр

Описание

Значение по умолчанию

extraObjects

Список дополнительных manifest-объектов Kubernetes, которые создаются через values и обрабатываются функцией tpl для шаблонизации. Пример конфигурации:

- apiVersion: v1
kind: ConfigMap
metadata:
name: vector-dashboards
labels:
grafana_dashboard: «1»
data:
vector.json: |

[]