Модуль локального сбора логов (Vector)
Модуль локального сбора логов на базе Vector собирает, агрегирует и передает логи.
Vector является инструментом для обработки и передачи данных с открытым исходным кодом, написанном на Rust. В основе архитектуры Vector три основных компонента:
- Sources (Источники) - компоненты, которые получают или собирают данные.
- Transforms (Преобразования) - компоненты, которые изменяют или фильтруют данные.
- Sinks (Получатели) - компоненты, которые отправляют данные во внешние системы.
Логи кластера доступны в графическом интерфейсе на вкладке Логи дашборда кластера, если выполнены условия:
- В кластере включен модуль локального сбора логов (Vector) (
shturval-log-collector). - В кластере управления работает компонент управления модуля мониторинга Victoria Metrics Agent (
shturval-metrics-collector).
Установка модуля и базовая конфигурация
По умолчанию модуль устанавливается в клиентские кластеры и кластер управления во включенном состоянии. Для настройки конфигурации перейдите на страницу Установленные сервисы раздела Сервисы и репозитории, найдите Модуль локального сбора логов и нажмите Управлять.
Если в кластере модуль отсутствует, перейдите на страницу Доступные чарты раздела Сервисы и репозитории. На вкладке shturval выберите чарт shturval-log-collector и нажмите Установить.
Выберите необходимую версию чарта, а также неймспейс logging. После выбора версии чарта в правой части экрана отобразятся Доступные параметры конфигурации для сервиса (values). Пропишите в блоке Спецификация сервиса необходимые параметры в качестве customvalues.
Обратите внимание! Для работы модуля должен быть включен CRD для модуля сбора логов (shturval-log-collector-crds).
Для настройки модуля локального сбора логов (Vector) используется Vector Operator.
Поддерживаемые Vector Operator кастомные ресурсы (Kubernetes Custom Resources)
| Kind | Group | Version |
|---|---|---|
| ClusterVectorAggregator | observability.kaasops.io | v1alpha1 |
| ClusterVectorPipeline | observability.kaasops.io | v1alpha1 |
| Vector | observability.kaasops.io | v1alpha1 |
| VectorAggregator | observability.kaasops.io | v1alpha1 |
| VectorPipeline | observability.kaasops.io | v1alpha1 |
Базовая настройка модуля включает кастомные ресурсы ClusterVectorPipeline и Vector, определяющие его конфигурацию. Просмотреть ClusterVectorPipeline и Vector вы можете в графическом интерфейсе платформы. В вашем кластере откройте страницу Кастомные ресурсы раздела Администрирование, найдите и раскройте API-группу observability.kaasops.io. Выберите CRD ClusterVectorPipeline или Vector, на странице со списком кастомных ресурсов перейдите к манифесту объекта.
Обратите внимание! Изменение базовой настройки может привести к ошибкам сбора, агрегации и анализа логов. При необходимости задайте конфигурацию с помощью создания нового ClusterVectorPipeline.
ClusterVectorPipeline в платформе Штурвал
Модуль локального сбора логов осуществляет сбор записей журналов из стандартного потока вывода stdout системных сервисов кластера.
Преднастроенные кастомные ресурсы ClusterVectorPipeline собирают и агрегируют логи кластера в соответствии с их типами.
Кастомные ресурсы ClusterVectorPipeline
| Наименование ClusterVectorPipeline | Описание |
|---|---|
| k8s-logs | Собирает логи контейнеров. При наличии лейбла у неймспейса shturval_tech/system-namespace логи агрегируются в k8s-logs, без указанного лейбла в k8s-user_logs |
| k8s-audit | Собирает логи из /var/log/kube-api-audit/audit.log |
| k8s-events | Собирает события из кластера Kubernetes |
| auditd | Собирает системные логи из журнала с _TRANSPORT = audit |
| journald | Собирает логи: containerd, kubelet, shturvald |
Источники сбора логов

Взаимодействие компонентов
| Наименование компонента | Системное название компонента | Описание |
|---|---|---|
| Модуль локального сбора логов | shturval-log-collector | Осуществляет сбор записей журналов из стандартного потока вывода stdout системных сервисов кластера. Вычитывает записи из пути /var/log/kube-api-audit/audit.log локального хранилища |
| Модуль оркестрации контейнеров | API-Server | Регистрирует запросы и записывает записи о зарегистрированных запросах в volume mount с типом hostpath /var/log/kube-api-audit/audit.log в локальное хранилище |
| Компонент хранения логов (кластер управления, клиентский кластер) | VLogs | Хранит записи журналов регистрации событий. Предоставляет API для получения записей журналов событий для Vector (shturval-log-collector) |
| Модуль программного управления Платформой (Компонент «Авторизация») | shturval-backend | Публикует события об авторизации запросов пользователей и системных учетных записей в стандартный поток вывода stdout |
| Модуль программного управления Платформой (Компонент «Права доступа») | shturval-backend | Осуществляет создание, изменение и удаление прав доступа пользователей и групп. Публикует записи о назначении, изменении и удалении прав доступа в стандартный поток вывода stdout |
| Модуль управления аутентификацией | shturval-auth | Осуществляет аутентификацию пользователей в платформу “Штурвал”. Публикует записи об аутентификации в стандартный поток вывода stdout |
| Среда исполнения контейнеров | Containerd | Регистрирует события запуска и остановки контейнеров. Публикует записи о запуске и остановке контейнеров в стандартный поток вывода stdout |
Сбор и обработка логов
Для конфигурации сбора и обработки логов вы можете настроить ClusterVectorPipeline. Спецификация (spec) ClusterVectorPipeline содержит блоки:
sources- определяет источники данных;transforms- определяет преобразования данных;sinks- определяет конечные точки для отправки данных.
Пример конфигурации для обработки логов Kubernetes
apiVersion: observability.kaasops.io/v1alpha1
kind: ClusterVectorPipeline
metadata:
name: k8s-logs
namespace: monitoring
spec:
# Источник данных - логи Kubernetes
sources:
kubernetes_logs:
type: kubernetes_logs
# Цепочка трансформаций
transforms:
# Преобразование временной метки
remap_timestamp:
type: remap
inputs: [kubernetes_logs]
source: |
parsed_time = parse_timestamp!(.timestamp, format: "%+")
if is_timestamp(parsed_time) {
."@timestamp" = parsed_time
del(.timestamp)
}
# Замена точек на подчеркивания в именах полях
dedot_fields:
type: remap
inputs: [remap_timestamp]
source: |
. = map_keys(., recursive: true) -> |key| { replace(key, ".", "_") }
# Фильтрация системных пространств имен
filter_system_namespaces:
type: filter
inputs: [dedot_fields]
condition: |
exists(.kubernetes.namespace_labels."shturval_tech/system-namespace")
# Фильтрация пользовательских пространств имен
filter_user_namespaces:
type: filter
inputs: [dedot_fields]
condition: |
!exists(.kubernetes.namespace_labels."shturval_tech/system-namespace")
Особенности обработки логов:
- Использует встроенный источник
kubernetes_logs; remap_timestamp: парсинг и преобразование временных меток;dedot_fields: замена точек на подчеркивания в именах полей;filter_system_namespacesиfilter_user_namespaces: разделение логов по типу пространств имен.
Обратите внимание! Для применения изменений конфигурации необходимо перевести Модуль локального сбора логов (shturval-log-collector) в ручной режим управления (Manual), при выборе управления в автоматическом режиме (Auto) применяется базовая конфигурация.
Рекомендации при конфигурации
- Используйте понятные имена для пайплайнов;
- Следуйте единому стилю именования компонентов;
- Выстраивайте логичную цепочку преобразований;
- Используйте входы (
inputs) для определения последовательности; - Фильтруйте ненужные данные как можно раньше;
- Используйте четкие условия фильтрации;
- Минимизируйте количество трансформаций;
- Избегайте дублирования обработки данных.
Интеграция с SIEM
Для интеграции с системой управления информационной безопасностью и событиями безопасности SIEM в кластере должен быть включен Модуль локального сбора логов (Vector).
- Чтобы настроить интеграцию, подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля локального сбора логов (
shturval-log-collector).
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-log-collector
customvalues:
shturval:
k8s_audit:
enable: true
sinks:
siem:
type: socket
inputs:
- dedot_specific_fields
address: "<ваше значение параметра>"
mode: <ваше значение параметра>
encoding:
codec: json
journald:
sinks:
siem:
type: socket
inputs:
- journald
address: "<ваше значение параметра>"
mode: <ваше значение параметра>
encoding:
codec: json
k8s_logs:
transforms:
filter_backend:
condition: |
.kubernetes.pod_namespace == "shturval-backend" &&
((.kubernetes.container_name == "opa" && starts_with(string!(.kubernetes.pod_name), "shturval-backend-")) || (.kubernetes.container_name == "authn" &starts_with (string!(.kubernetes.pod_name), "authn-")))
inputs:
- filter_system_namespaces
type: filter
sinks:
siem:
type: socket
inputs:
- filter_backend
address: "<ваше значение параметра>"
mode: <ваше значение параметра>
encoding:
codec: json
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name | Имя ShturvalServicePatch | string | shturval-log-collector-siem |
address | Сокет (IP-адрес и порт) SIEM | string | 10.11.12.13:514 |
mode | Протокол подключения | string | udp |
В приведенной спецификации в SIEM будут направлены логи: k8s_logs, journald и k8s_audit. Вы можете переопределить перечень направляемых логов. Для этого в блоке shturval удалите ненужный блок с логами.
- В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.
- Чтобы перейти к просмотру примененного ShturvalServicePatch:
- В кластере из раздела Сервисы и репозитории откройте страницу Установленные сервисы.
- Найдите Модуль локального сбора логов (shturval-log-collector) и перейдите к управлению.
- Когда ShturvalServicePatch будет применен, на вкладке Сервис статус обновится до Patched, а на вкладке Примененные PatchSSC в списке отобразится загруженный ShturvalServicePatch.
Скриншот


Vector имеет систему подтверждения доставки данных. При некорректной доставке данных выполняется повторная отправка, что позволяет нивелировать особенности UDP протокола.
Перенаправление логов
Чтобы перенаправить логи в Elasticsearch/OpenSearch в кластере, выполните:
- Создайте в кластере Secret с типом
Opaqueи именемexternal-es-caв неймспейсеlogging. Добавьте ключca.crtи укажите в значении данные CA-сертификата внешнего Elasticsearch/OpenSearch.
Пример создания командой:
kubectl create secret generic external-es-ca -n logging \
--from-file=ca.crt=/path/to/external-es-ca.crt
Пример манифеста
apiVersion: v1
kind: Secret
metadata:
name: external-es-ca
namespace: logging
type: Opaque
stringData:
ca.crt: |
-----BEGIN CERTIFICATE-----
<CA-сертификат внешнего Elasticsearch/OpenSearch>
-----END CERTIFICATE-----
- Создайте в кластере Secret с типом
Opaqueи именемexternal-es-credsв неймспейсеlogging. Добавьте ключиusernameиpassword: в значенииusernameукажите имя учётной записи внешнего Elasticsearch/OpenSearch, в значенииpassword— пароль этой учётной записи.
Пример создания командой:
kubectl create secret generic external-es-creds -n logging \
--from-literal=username='<username>' \
--from-literal=password='<password>'
Пример манифеста
apiVersion: v1
kind: Secret
metadata:
name: external-es-creds
namespace: logging
type: Opaque
stringData:
username: <username>
password: <password>
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля локального сбора логов (
shturval-log-collector), где в customvalues добавьте конфигурациюvector,aggregatorиshturval:
- типы логов для перенаправления:
auditd,journald,k8s_audit,k8s_events,k8s_logs. В блокеshturvalперечислите все нужные типы; - получателей логов в
sinksс именемelastic_bank, URL-адрес подключения, настройки TLS и буфера; - при необходимости преобразования логов перед отправкой настройте конфигурацию в параметре
transforms.
Учётные данные внешнего хранилища рекомендуется хранить в Secret и подставлять в sink через ${username} и ${password}. Если Secret не используете, не задавайте в SSP блоки vector и aggregator и укажите логин и пароль напрямую в auth.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-log-collector
customvalues:
vector:
agent:
envFrom: # Все ключи Secret — переменные окружения агента
- secretRef:
name: <secret-creds>
volumes: # Тома агента; список полностью заменяет values чарта
- name: var-log
hostPath:
path: /var/log/
type: ""
- name: journal
hostPath:
path: /var/log/journal/
type: ""
- name: var-lib
hostPath:
path: /var/lib/
type: ""
- name: <volume-ca>
secret:
secretName: <secret-ca>
items:
- key: ca.crt
path: ca.crt
volumeMounts: # Монтирование томов в контейнер агента
- name: var-log
mountPath: /var/log/
- name: journal
mountPath: /run/log/journal/
- name: var-lib
mountPath: /var/lib/
- name: <volume-ca>
mountPath: /etc/ssl/external-es
readOnly: true
aggregator:
env: # Переменные окружения агрегатора; список полностью заменяет values чарта
- name: PLATFORM_USERNAME
valueFrom:
secretKeyRef:
name: platform-creds
key: username
- name: PLATFORM_PASSWORD
valueFrom:
secretKeyRef:
name: platform-creds
key: password
- name: username
valueFrom:
secretKeyRef:
name: <secret-creds>
key: username
- name: password
valueFrom:
secretKeyRef:
name: <secret-creds>
key: password
volumes: # Тома агрегатора; список полностью заменяет values чарта
- name: data
emptyDir: {}
- name: <volume-ca>
secret:
secretName: <secret-ca>
items:
- key: ca.crt
path: ca.crt
volumeMounts: # Монтирование томов в контейнер агрегатора
- name: <volume-ca>
mountPath: /etc/ssl/external-es
readOnly: true
shturval:
<ваше значение>: # Тип логов для перенаправления
enable: true # Включает отправку логов elasticsearch
transforms: {} # Преобразование логов
sinks: # Конечные точки для отправки данных
elastic_bank: # Имя получателя данных
type: <ваше значение параметра>
auth: # Настройки аутентификации для подключения к elasticsearch
user: "${username}"
password: "${password}"
strategy: <ваше значение параметра>
endpoints: # URL-адрес для подключения
- <ваше значение параметра>
tls: # Настройки TLS-соединения
ca_file: /etc/ssl/external-es/ca.crt
verify_certificate: true
api_version: <ваше значение параметра>
buffer: # Настройка буфера для хранения логов перед отправкой
max_size: <ваше значение параметра>
type: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name | Имя ShturvalServicePatch | string | shturval-log-collector-logs |
vector.agent.envFrom | Источники переменных окружения контейнера агента: все пары ключ–значение из Secret становятся переменными окружения | array | secretRef.name: external-es-creds |
vector.agent.volumes | Тома пода агента. Список полностью заменяет values чарта: оставьте hostPath var-log, journal, var-lib и добавьте Secret с CA | array | var-log, journal, var-lib, external-es-ca |
vector.agent.volumeMounts | Монтирование томов в файловую систему контейнера агента | array | mountPath: /etc/ssl/external-es |
aggregator.env | Переменные окружения контейнера агрегатора. Список полностью заменяет values чарта: оставьте PLATFORM_USERNAME / PLATFORM_PASSWORD и добавьте креды внешнего Elasticsearch | array | PLATFORM_USERNAME, username |
aggregator.volumes | Тома пода агрегатора. Список полностью заменяет values чарта: оставьте emptyDir data и добавьте Secret с CA | array | data, external-es-ca |
aggregator.volumeMounts | Монтирование томов в файловую систему контейнера агрегатора | array | mountPath: /etc/ssl/external-es |
elastic_bank.type | Тип sink Vector; для Elasticsearch/OpenSearch — elasticsearch | string | elasticsearch |
elastic_bank.auth.user | Имя пользователя для HTTP Basic Authentication | string | ${username} |
elastic_bank.auth.password | Пароль для HTTP Basic Authentication | string | ${password} |
elastic_bank.auth.strategy | Стратегия аутентификации Vector: basic — HTTP Basic Authentication | string | basic |
elastic_bank.endpoints | Список URL Elasticsearch для отправки логов. Каждый URL должен содержать HTTP-схему, хост или IP и порт | array | https://external-opensearch.address:9200/insert/elasticsearch/ |
elastic_bank.tls.ca_file | Абсолютный путь к дополнительному CA-сертификату в формате DER или PEM (X.509) | string | /etc/ssl/external-es/ca.crt |
elastic_bank.tls.verify_certificate | Проверка сертификата вышестоящего сервера при TLS-подключении | boolean | true |
elastic_bank.api_version | Версия API Elasticsearch: v6, v7 (в том числе OpenSearch), v8 или auto | string | v8 |
elastic_bank.buffer.max_size | Максимальный объём буфера. Для type: disk — не меньше ~256 МБ (268435488 байт) | int | 268435488 |
elastic_bank.buffer.type | Тип буфера: disk — на диске, устойчивее к перезапуску; memory — в памяти, данные теряются при сбое | string | disk |
- Списки
volumes,volumeMountsиaggregator.envвShturvalServicePatchполностью заменяют соответствующие значения чарта. Если задаёте эти блоки, в agent оставьте hostPath-монтированияvar-log,journal,var-lib. В aggregator оставьтеemptyDirdataи переменныеPLATFORM_USERNAME/PLATFORM_PASSWORDизplatform-creds. Затем добавьте env и volumes для внешнего Elasticsearch. - Оставляйте проверку TLS включённой (
verify_certificate: true) и указывайтеca_file.
Объединённый ShturvalServicePatch для всех типов логов
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-log-collector-external-es
spec:
shturvalServiceConfigName: shturval-log-collector
customvalues:
vector:
agent:
envFrom:
- secretRef:
name: external-es-creds
volumes:
- name: var-log
hostPath:
path: /var/log/
type: ""
- name: journal
hostPath:
path: /var/log/journal/
type: ""
- name: var-lib
hostPath:
path: /var/lib/
type: ""
- name: external-es-ca
secret:
secretName: external-es-ca
items:
- key: ca.crt
path: ca.crt
volumeMounts:
- name: var-log
mountPath: /var/log/
- name: journal
mountPath: /run/log/journal/
- name: var-lib
mountPath: /var/lib/
- name: external-es-ca
mountPath: /etc/ssl/external-es
readOnly: true
aggregator:
env:
- name: PLATFORM_USERNAME
valueFrom:
secretKeyRef:
name: platform-creds
key: username
- name: PLATFORM_PASSWORD
valueFrom:
secretKeyRef:
name: platform-creds
key: password
- name: username
valueFrom:
secretKeyRef:
name: external-es-creds
key: username
- name: password
valueFrom:
secretKeyRef:
name: external-es-creds
key: password
volumes:
- name: data
emptyDir: {}
- name: external-es-ca
secret:
secretName: external-es-ca
items:
- key: ca.crt
path: ca.crt
volumeMounts:
- name: external-es-ca
mountPath: /etc/ssl/external-es
readOnly: true
shturval:
auditd:
sinks:
elastic_bank:
type: elasticsearch
inputs:
- auditd-fmt
bulk:
index: "{{ .Values.CLUSTER_NAME }}_auditd-%Y.%m.%d"
auth:
user: "${username}"
password: "${password}"
strategy: basic
endpoints:
- "https://external-opensearch.address:9200/insert/elasticsearch/"
tls:
ca_file: /etc/ssl/external-es/ca.crt
verify_certificate: true
api_version: "v8"
buffer:
max_size: 268435488
type: disk
journald:
sinks:
elastic_bank:
type: elasticsearch
inputs:
- journald
bulk:
index: "{{ .Values.CLUSTER_NAME }}_journald-%Y.%m.%d"
auth:
user: "${username}"
password: "${password}"
strategy: basic
endpoints:
- "https://external-opensearch.address:9200/insert/elasticsearch/"
tls:
ca_file: /etc/ssl/external-es/ca.crt
verify_certificate: true
api_version: "v8"
buffer:
max_size: 268435488
type: disk
k8s_audit:
sinks:
elastic_bank:
type: elasticsearch
inputs:
- dedot_specific_fields
bulk:
index: "{{ .Values.CLUSTER_NAME }}_kaudit-%Y.%m.%d"
auth:
user: "${username}"
password: "${password}"
strategy: basic
endpoints:
- "https://external-opensearch.address:9200/insert/elasticsearch/"
tls:
ca_file: /etc/ssl/external-es/ca.crt
verify_certificate: true
api_version: "v8"
buffer:
max_size: 268435488
type: disk
k8s_events:
sinks:
elastic_bank:
type: elasticsearch
inputs:
- delete_managed_fields
bulk:
index: "{{ .Values.CLUSTER_NAME }}_events-%Y.%m.%d"
auth:
user: "${username}"
password: "${password}"
strategy: basic
endpoints:
- "https://external-opensearch.address:9200/insert/elasticsearch/"
tls:
ca_file: /etc/ssl/external-es/ca.crt
verify_certificate: true
api_version: "v8"
buffer:
max_size: 268435488
type: disk
k8s_logs:
sinks:
elastic_bank:
type: elasticsearch
inputs:
- post_transforms_system_namespaces
bulk:
index: "{{ .Values.CLUSTER_NAME }}_logs-%Y.%m.%d"
auth:
user: "${username}"
password: "${password}"
strategy: basic
endpoints:
- "https://external-opensearch.address:9200/insert/elasticsearch/"
tls:
ca_file: /etc/ssl/external-es/ca.crt
verify_certificate: true
api_version: "v8"
buffer:
max_size: 268435488
type: disk
user-namespaces:
type: elasticsearch
inputs:
- post_transforms_user_namespaces
bulk:
index: "{{ .Values.CLUSTER_NAME }}_user-logs-%Y.%m.%d"
auth:
user: "${username}"
password: "${password}"
strategy: basic
endpoints:
- "https://external-opensearch.address:9200/insert/elasticsearch/"
tls:
ca_file: /etc/ssl/external-es/ca.crt
verify_certificate: true
api_version: "v8"
buffer:
max_size: 268435488
type: disk
Если какие-то типы логов не нужны, удалите соответствующие ключи под shturval в этом же манифесте.
Если поле message в k8s_logs приходит объектом (контейнер пишет JSON), добавьте remap с encode_json(.message) и укажите его в inputs sinks вместо post_transforms_*.
- В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Иллюстрация: импорт ShturvalServicePatch в кластер

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.
В Loki
Для перенаправления логов в Loki:
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля локального сбора логов (
shturval-log-collector), где в customvalues добавьтеshturvalс требуемыми параметрами.
Пример ShturvalServicePatch перенаправления в Loki
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-log-collector-logs-to-loki
spec:
shturvalServiceConfigName: shturval-log-collector
customvalues:
shturval:
platform_logs_enable: true
k8s_logs:
enable: true
sinks:
loki_external:
type: loki
inputs:
- post_transforms_system_namespaces
- post_transforms_user_namespaces
endpoint: <ваше значение параметра>
path: /loki/api/v1/push
compression: snappy
tenant_id: "<ваше значение параметра>"
encoding:
codec: json
tls:
verify_certificate: false
labels:
__tenant_id__: "<ваше значение параметра>"
resourceRealm: "<ваше значение параметра>"
log_type: "kubernetes"
k8s_audit:
enable: true
sinks:
loki_external:
type: loki
inputs:
- parse_kube_audit
endpoint: <ваше значение параметра>
path: /loki/api/v1/push
compression: snappy
tenant_id: "<ваше значение параметра>"
encoding:
codec: json
tls:
verify_certificate: false
labels:
__tenant_id__: "<ваше значение параметра>"
resourceRealm: "<ваше значение параметра>"
log_type: "k8s_audit"
k8s_events:
enable: true
sinks:
loki_external:
type: loki
inputs:
- delete_managed_fields
endpoint: <ваше значение параметра>
path: /loki/api/v1/push
compression: snappy
tenant_id: "<ваше значение параметра>"
encoding:
codec: json
tls:
verify_certificate: false
labels:
__tenant_id__: "<ваше значение параметра>"
resourceRealm: "<ваше значение параметра>"
log_type: "k8s_events"
journald:
enable: true
sinks:
loki_external:
type: loki
inputs:
- journald
endpoint: <ваше значение параметра>
path: /loki/api/v1/push
compression: snappy
tenant_id: "<ваше значение параметра>"
encoding:
codec: json
tls:
verify_certificate: false
labels:
__tenant_id__: "<ваше значение параметра>"
resourceRealm: "<ваше значение параметра>"
log_type: "journald"
auditd:
enable: true
sinks:
loki_external:
type: loki
inputs:
- auditd
endpoint: <ваше значение параметра>
path: /loki/api/v1/push
compression: snappy
tenant_id: "<ваше значение параметра>"
encoding:
codec: json
tls:
verify_certificate: false
labels:
__tenant_id__: "<ваше значение параметра>"
resourceRealm: "<ваше значение параметра>"
log_type: "auditd"
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name | Имя ShturvalServicePatch | string | shturval-log-collector-logs-to-loki |
platform_logs_enable | Включает отправку логов платформы | boolean | true |
<тип логов>.enable | Включает отправку выбранного типа логов: auditd, journald, k8s_audit, k8s_events, k8s_logs | boolean | true |
loki_external.type | Тип получателя данных | string | loki |
loki_external.inputs | Список источников или преобразований логов для отправки в Loki | array | post_transforms_system_namespaces |
loki_external.endpoint | URL-адрес Loki | string | https://loki.example.com |
loki_external.path | Путь API для отправки логов в Loki | string | /loki/api/v1/push |
loki_external.compression | Алгоритм сжатия данных перед отправкой | string | snappy |
loki_external.tenant_id | Идентификатор тенанта в Loki | string | tenant-example |
loki_external.encoding.codec | Формат кодирования логов | string | json |
loki_external.tls.verify_certificate | Проверка TLS-сертификата при подключении | boolean | false |
loki_external.labels.__tenant_id__ | Лейбл тенанта для записей логов | string | tenant-example |
loki_external.labels.resourceRealm | Лейбл окружения или кластера, из которого отправляются логи | string | cluster-example |
loki_external.labels.log_type | Лейбл типа логов | string | kubernetes |
В примере выше в Loki будут направлены логи: auditd, journald, k8s_audit, k8s_events и k8s_logs. Чтобы изменить перечень направляемых логов, удалите ненужный блок с типом логов из shturval.
- В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.
В syslog
Для перенаправления логов в syslog:
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля локального сбора логов (
shturval-log-collector), где в customvalues добавьтеshturvalс требуемыми параметрами.
Пример ShturvalServicePatch перенаправления в syslog
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-log-collector-syslog
spec:
shturvalServiceConfigName: shturval-log-collector
customvalues:
shturval:
k8s_audit:
sinks:
syslog:
type: socket
inputs:
- <ваше значение параметра>
address: <ваше значение параметра>
mode: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
k8s_audit.sinks.syslog.inputs | Преобразования (transforms) для логов k8s_audit. Перечень transforms определены в кастомном ресурсе ClusterVectorPipeline с именем k8s-audit | array | dedot_specific_fields |
k8s_audit.sinks.syslog.address | Адрес syslog-сервера | string | 11.12.13.14:5000 |
k8s_audit.sinks.syslog.mode | Тип протокола передачи | string | tcp |
В примере выше приведена настройка с использованием socket. С другими способами конфигурации параметров для перенаправления логов на syslog-сервер вы можете ознакомиться в официальной документации.
- В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.
Отключить отправку логов
Если необходимо отключить отправку всех логов:
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля локального сбора логов (
shturval-log-collector), где в customvalues добавьте конфигурациюshturvalи переопределите значение параметра platform_logs_enable вshturvalс true на false, как приведено ниже.
ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-log-collector-disable
spec:
shturvalServiceConfigName: shturval-log-collector
customvalues:
shturval:
platform_logs_enable: false
- В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.
Если необходимо отключить отправку одного типа логов в кластере
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля локального сбора логов (
shturval-log-collector), где в customvalues добавьте конфигурациюshturvalc типом лога и переопределите значение параметра enable с true на false, как приведено в примере.
Пример ShturvalServicePatch отключения логов journald
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-log-collector-disable-journald
spec:
shturvalServiceConfigName: shturval-log-collector
customvalues:
shturval:
journald:
enable: false
- В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.