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 создается DaemonSet, для Aggregator – StatefulSet, для Stateless-Aggregator – Deployment

Agent

daemonSet – переопределение версии API для DaemonSet#

Параметр

Описание

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

daemonSet.apiVersion

Переопределение версии API для DaemonSet (действует для роли Agent)

""

statefulSet – переопределение версии API для StatefulSet#

Параметр

Описание

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

statefulSet.apiVersion

Переопределение версии API для StatefulSet (действует для роли 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

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

{}

image – параметры контейнерного образа#

Параметр

Описание

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

image.repository

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

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

image.pullPolicy

Политика загрузки образа Vector.
Возможные значения: IfNotPresent, Always, Never

IfNotPresent

image.pullSecrets

Список ImagePullSecrets для доступа к приватным реестрам из pod Vector

[]

image.tag

Тег образа контейнера

v0.57.0

image.sha

SHA-хеш образа для проверки целостности

""

image.base

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

""

replicas – количество реплик#

Параметр

Описание

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

replicas

Количество реплик pod

2

hostAliases – псевдонимы хостов#

Параметр

Описание

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

hostAliases

Список псевдонимов хостов для добавления в /etc/hosts.
Пример конфигурации:

- ip: "127.0.0.1"
  hostnames:
  - "foo.local"
  - "bar.local"

[]

podManagementPolicy – политика управления pod#

Параметр

Описание

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

podManagementPolicy

Политика управления pod для StatefulSet (действует для роли Aggregator).
Возможные значения: OrderedReady или Parallel

OrderedReady

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

Параметр

Описание

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

secrets.generic

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

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

{}

autoscaling – настройки автомасштабирования#

Параметр

Описание

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

autoscaling.enabled

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

false

autoscaling.external

Активация масштабирования внешним механизмом, например KEDA

false

autoscaling.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

autoscaling.minReplicas

Минимальное количество реплик при автоматическом масштабировании

1

autoscaling.maxReplicas

Максимальное количество реплик при автоматическом масштабировании

10

autoscaling.targetCPUUtilizationPercentage

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

80

autoscaling.targetMemoryUtilizationPercentage

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

~

autoscaling.customMetric

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

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

{}

autoscaling.behavior

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

scaleDown:
  stabilizationWindowSeconds: 300

{}

podDisruptionBudget – ограничение одновременной недоступности pod#

Параметр

Описание

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

podDisruptionBudget.enabled

Включение PodDisruptionBudget

true

podDisruptionBudget.minAvailable

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

1

podDisruptionBudget.maxUnavailable

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

~

rbac – настройки RBAC (управление доступом на основе ролей)#

Параметр

Описание

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

rbac.create

Активация автоматического создания ресурсов RBAC

true

rbac.extraRules

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

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

[]

psp – создание PodSecurityPolicy#

Параметр

Описание

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

psp.create

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

false

serviceAccount – настройки сервисного аккаунта#

Параметр

Описание

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

serviceAccount.create

Включение создания ServiceAccount

true

serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

serviceAccount.name

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

~

serviceAccount.automountToken

Активация автоматического монтирования учетных данных API в ServiceAccount Vector

true

podAnnotations – аннотации pod Vector#

Параметр

Описание

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

podAnnotations

Аннотации, добавляемые на pod Vector

{}

podLabels – метки pod Vector#

Параметр

Описание

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

podLabels.vector.dev/exclude

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

"true"

podPriorityClassName – имя PriorityClass#

Параметр

Описание

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

podPriorityClassName

Имя PriorityClass, назначаемое pod Vector

""

podHostNetwork – использование hostNetwork#

Параметр

Описание

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

podHostNetwork

Активация запуска pod Vector в сетевом пространстве узла

false

podSecurityContext – параметры контекста безопасности pod#

Параметр

Описание

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

podSecurityContext

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

{}

workloadResourceAnnotations – аннотации workload-ресурса Vector#

Параметр

Описание

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

workloadResourceAnnotations

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

{}

securityContext – контекст безопасности контейнеров Vector#

Параметр

Описание

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

securityContext

Контекст безопасности для контейнеров Vector

{}

command – команда запуска контейнера#

Параметр

Описание

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

command

Команда запуска контейнера, переопределяющая стандартный entrypoint образа контейнера

[]

args – аргументы запуска контейнера#

Параметр

Описание

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

args

Аргументы, переопределяющие стандартные аргументы запуска контейнера

- --config-dir
- "/etc/vector/"

env – параметры переменных окружения контейнера#

Параметр

Описание

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

env

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

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

[]

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

Параметр

Описание

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

envFrom

Источники переменных окружения (Secret или ConfigMap) для pod.
Пример конфигурации:

- secretRef:
    name: vector

[]

containerPorts – порты контейнера Vector#

Параметр

Описание

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

containerPorts

Cписок портов контейнера с отключением автоматической генерации

[]

resources – запросы и ограничения ресурсов контейнера#

Параметр

Описание

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

resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

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

{}

lifecycle – хуки жизненного цикла контейнера#

Параметр

Описание

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

lifecycle

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

preStop:
  exec:
    command:
    - /bin/sleep
    - "10"

{}

minReadySeconds – минимальное время готовности pod#

Параметр

Описание

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

minReadySeconds

Время в состоянии Ready, после которого pod считается доступным

0

revisionHistoryLimit – количество сохраняемых ресурсов для отката#

Параметр

Описание

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

revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

10

updateStrategy – стратегия обновления ресурсов#

Параметр

Описание

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

updateStrategy

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

type: RollingUpdate
rollingUpdate:
  maxUnavailable: 1

{}

terminationGracePeriodSeconds – тайм-аут корректного завершения работы pod#

Параметр

Описание

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

terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

60

nodeSelector – селектор узлов для планирования pod#

Параметр

Описание

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

nodeSelector

Селектор узлов для планирования pod

{}

tolerations – параметры Toleration для pod#

Параметр

Описание

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

tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

affinity – правила привязки (affinity и anti-affinity) pod к узлам#

Параметр

Описание

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

affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

topologySpreadConstraints – ограничения распределения pod по топологии#

Параметр

Описание

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

topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам

[]

service – настройки Service#

Параметр

Описание

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

service.enabled

Активация создания Service

true

service.type

Тип Service.
Возможные значения: ClusterIP, NodePort, LoadBalancer

ClusterIP

service.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

service.topologyKeys

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

- "kubernetes.io/hostname"
- "topology.kubernetes.io/zone"
- "topology.kubernetes.io/region"
- "*"

[]

service.ports

Список портов Service Vector с отключением автоматической генерации

[]

service.externalTrafficPolicy

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

""

service.internalTrafficPolicy

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

""

service.loadBalancerIP

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

""

service.ipFamilyPolicy

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

""

service.ipFamilies

Список IP-семейств, поддерживаемых Service

[]

service.trafficDistribution

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

""

serviceHeadless – настройки headless-сервиса#

Параметр

Описание

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

serviceHeadless.enabled

Создание headless-сервиса

true

ingress – настройки Ingress для маршрутизации внешнего трафика#

Параметр

Описание

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

ingress.enabled

Включение Ingress для компонента сервера

false

ingress.className

Имя IngressClass для определения контроллера Ingress

nginx

ingress.annotations

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

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

{}

ingress.hosts

Массив хостов 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-сервиса. Параметр имеет приоритет над 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.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) || .source_type == null { .source_type = "external" }

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 = {{ .Values.global.clusterName | quote }}

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" || .source_type == "external" {
  if exists(.systemd) && exists(.systemd.unit) {
    .unit = .systemd.unit
  } else if exists(.SYSLOG_IDENTIFIER) {
    .unit = .SYSLOG_IDENTIFIER
  } else {
    .unit = "unknown"
  }
}

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 эндпоинт Loki для записи логов pod

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

customConfig.sinks.loki_pods.dangerously_allow_unconfined_template_resolution

Разрешает неограниченное разрешение шаблонов для sink логов pod

true

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

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

k8s-pods

customConfig.sinks.loki_pods.labels.cluster

Шаблон метки cluster для логов pod в Loki

'{{ "{{" }} cluster {{ "}}" }}'

customConfig.sinks.loki_pods.labels.source_type

Шаблон метки source_type для логов pod в Loki

'{{ "{{" }} source_type {{ "}}" }}'

customConfig.sinks.loki_pods.labels.host

Шаблон метки host для логов pod в Loki

'{{ "{{" }} host {{ "}}" }}'

customConfig.sinks.loki_pods.labels.namespace

Шаблон метки namespace для логов pod в Loki

'{{ "{{" }} kubernetes.pod_namespace {{ "}}" }}'

customConfig.sinks.loki_pods.labels.pod

Шаблон метки pod для логов pod в Loki

'{{ "{{" }} kubernetes.pod_name {{ "}}" }}'

customConfig.sinks.loki_pods.labels.container

Шаблон метки container для логов pod в Loki

'{{ "{{" }} kubernetes.container_name {{ "}}" }}'

customConfig.sinks.loki_pods.labels.app

Шаблон метки app для логов pod в Loki

'{{ "{{" }} app {{ "}}" }}'

customConfig.sinks.loki_pods.labels.app_kubernetes_io_name

Шаблон метки app_kubernetes_io_name для логов pod в Loki

'{{ "{{" }} app_kubernetes_io_name {{ "}}" }}'

customConfig.sinks.loki_pods.labels.app_kubernetes_io_instance

Шаблон метки 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 эндпоинт Loki для записи логов узлов

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

customConfig.sinks.loki_node.dangerously_allow_unconfined_template_resolution

Разрешает неограниченное разрешение шаблонов для sink логов узлов

true

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

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

k8s-node

customConfig.sinks.loki_node.labels.cluster

Шаблон метки cluster для логов узлов в Loki

'{{ "{{" }} cluster {{ "}}" }}'

customConfig.sinks.loki_node.labels.source_type

Шаблон метки source_type для логов узлов в Loki

'{{ "{{" }} source_type {{ "}}" }}'

customConfig.sinks.loki_node.labels.host

Шаблон метки host для логов узлов в Loki

'{{ "{{" }} host {{ "}}" }}'

customConfig.sinks.loki_node.labels.unit

Шаблон метки 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 эндпоинт Loki для записи audit-логов Kubernetes

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

customConfig.sinks.loki_audit.dangerously_allow_unconfined_template_resolution

Разрешает неограниченное разрешение шаблонов для sink audit-логов

true

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

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

k8s-audit

customConfig.sinks.loki_audit.labels.cluster

Шаблон метки cluster для audit-логов Kubernetes в Loki

'{{ "{{" }} cluster {{ "}}" }}'

customConfig.sinks.loki_audit.labels.source_type

Шаблон метки source_type для audit-логов Kubernetes в Loki

'{{ "{{" }} source_type {{ "}}" }}'

customConfig.sinks.loki_audit.labels.host

Шаблон метки host для audit-логов Kubernetes в Loki

'{{ "{{" }} host {{ "}}" }}'

customConfig.sinks.loki_audit.labels.verb

Шаблон метки verb для audit-логов Kubernetes в Loki

'{{ "{{" }} verb {{ "}}" }}'

customConfig.sinks.loki_audit.labels.apiGroup

Шаблон метки apiGroup для audit-логов Kubernetes в Loki

'{{ "{{" }} apiGroup {{ "}}" }}'

customConfig.sinks.loki_audit.labels.resource

Шаблон метки resource для audit-логов Kubernetes в Loki

'{{ "{{" }} resource {{ "}}" }}'

customConfig.sinks.loki_audit.labels.subresource

Шаблон метки subresource для audit-логов Kubernetes в Loki

'{{ "{{" }} subresource {{ "}}" }}'

customConfig.sinks.loki_audit.labels.namespace

Шаблон метки namespace для audit-логов Kubernetes в Loki

'{{ "{{" }} ns {{ "}}" }}'

customConfig.sinks.loki_audit.labels.code

Шаблон метки 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 по умолчанию#

Параметр

Описание

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

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, соответствующие томам из 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 – дополнительные тома#

Параметр

Описание

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

extraVolumes

Дополнительные тома Volume для pod Vector

[]

extraVolumeMounts – дополнительные точки монтирования томов#

Параметр

Описание

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

extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

initContainers – init-контейнеры для pod#

Параметр

Описание

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

initContainers

Список init-контейнеров, запускаемых перед основными.
Пример конфигурации:

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

[]

extraContainers – дополнительные контейнеры#

Параметр

Описание

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

extraContainers

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

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

[]

persistence – параметры постоянного хранилища (PersistentVolumeClaim)#

Параметр

Описание

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

persistence.enabled

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

false

persistence.existingClaim

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

""

persistence.storageClassName

Указывает storageClassName для PersistentVolumeClaim. Актуально для роли Aggregator

~

persistence.retentionPolicy

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

whenDeleted: Retain
whenScaled: Retain

{}

persistence.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

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 – политика DNS для pod#

Параметр

Описание

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

dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

dnsConfig – пользовательская конфигурация DNS для pod#

Параметр

Описание

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

dnsConfig

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

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

{}

shareProcessNamespace – совместное использование пространства имен процессов контейнерами#

Параметр

Описание

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

shareProcessNamespace

Включение общего пространства имен процессов между контейнерами pod. Позволяет контейнерам видеть процессы друг друга и взаимодействовать через сигналы (например, с sidecar-контейнерами)

false

livenessProbe – параметры проверки работоспособности#

Параметр

Описание

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

livenessProbe

Настройка параметров проверки работоспособности контейнера.
Пример конфигурации:

grpc:
  port: 8686

{}

readinessProbe – параметры проверки готовности#

Параметр

Описание

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

readinessProbe

Настройка параметров проверки готовности контейнера.
Пример конфигурации:

grpc:
  port: 8686

{}

startupProbe – параметры проверки успешного запуска#

Параметр

Описание

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

startupProbe

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

grpc:
  port: 8686

{}

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

Параметр

Описание

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

podMonitor.enabled

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

false

podMonitor.jobLabel

Метка, из которой Prometheus Operator будет брать имя Job

app.kubernetes.io/name

podMonitor.port

Имя порта, используемого для scrape

prom-exporter

podMonitor.path

Путь для сбора метрик

/metrics

podMonitor.interval

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

~

podMonitor.scrapeTimeout

Тайм-аут сбора метрик

~

podMonitor.relabelings

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

[]

podMonitor.metricRelabelings

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

[]

podMonitor.podTargetLabels

Список меток pod, переносимых на target метрик

[]

podMonitor.additionalLabels

Дополнительные метки для ресурса 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

false

haproxy.image.repository

Переопределение реестра и имени образа HAProxy

haproxytech/haproxy-alpine

haproxy.image.pullPolicy

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

IfNotPresent

haproxy.image.pullSecrets

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

[]

haproxy.image.tag

Тег образа контейнера

2.6.12

haproxy.rollWorkload

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

true

haproxy.replicas

Количество реплик pod

1

haproxy.serviceAccount.create

Создание ServiceAccount для HAProxy

true

haproxy.serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

haproxy.serviceAccount.name

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

~

haproxy.serviceAccount.automountToken

Автоматический монтаж учетных данных API в ServiceAccount HAProxy

true

haproxy.strategy

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

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

{}

haproxy.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

60

haproxy.podAnnotations

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

{}

haproxy.podLabels

Метки для pod HAProxy

{}

haproxy.podPriorityClassName

Имя PriorityClass для pod HAProxy

""

haproxy.podSecurityContext

Параметры контекста безопасности pod.
Пример конфигурации:

fsGroup: 2000

{}

haproxy.securityContext

Контекст безопасности контейнеров HAProxy.
Пример конфигурации:

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

{}

haproxy.containerPorts

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

[]

haproxy.service.type

Тип Service

ClusterIP

haproxy.service.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

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-семейств, поддерживаемых Service

[]

haproxy.existingConfigMap

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

""

haproxy.customConfig

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

""

haproxy.extraVolumes

Дополнительные тома Volume для pod HAProxy

[]

haproxy.extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

haproxy.initContainers

Список init-контейнеров, запускаемых перед основными

[]

haproxy.extraContainers

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

[]

haproxy.autoscaling.enabled

Создание HorizontalPodAutoscaler для HAProxy

false

haproxy.autoscaling.external

Масштабирование HAProxy внешним HorizontalPodAutoscaler

false

haproxy.autoscaling.minReplicas

Минимальное количество реплик при автоматическом масштабировании

1

haproxy.autoscaling.maxReplicas

Максимальное количество реплик при автоматическом масштабировании

10

haproxy.autoscaling.targetCPUUtilizationPercentage

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

80

haproxy.autoscaling.targetMemoryUtilizationPercentage

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

~

haproxy.autoscaling.customMetric

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

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

{}

haproxy.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

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

{}

haproxy.livenessProbe.tcpSocket.port

TCP-порт для стандартной проверки работоспособности контейнера HAProxy

1024

haproxy.readinessProbe.tcpSocket.port

TCP-порт для стандартной проверки готовности контейнера HAProxy

1024

haproxy.nodeSelector

Селектор узлов для планирования pod

{}

haproxy.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

haproxy.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

extraObjects – дополнительные объекты Helm-чарта#

Параметр

Описание

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

extraObjects

Добавление дополнительных динамических объектов в Helm-чарте.
Пример конфигурации:

- apiVersion: v1
  kind: ConfigMap
  metadata:
    name: vector-dashboards
    labels:
      grafana_dashboard: "1"
  data:
    vector.json: |
      {{ .Files.Get "dashboards/vector.json" | fromJson | toJson }}

[]