ClusterLogDestination
Scope: Cluster
Version: v1alpha1
Описывает параметры хранилища логов, к которому можно подключить бесконечное количество источников.
metadata.name
задает имя upstream’а, который будет использоваться в custom resource ClusterLoggingConfig.
- строка или число
Максимальный размер буфера на диске. Должен быть не меньше ~256 МБ (268435488 байт).
Вы можете указать размер как простое целое число или как число с одним из следующих суффиксов:
E
,P
,T
,G
,M
,k
,Ei
,Pi
,Ti
,Gi
,Mi
,Ki
.Подробнее об указании ресурсов:
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Примеры:
1maxSize: 512Mi
1maxSize: 268435488
- строка
Использовать
doc_type
для индексов. Имеет смысл использовать только для Elasticsearch <= 6.X.- Для Elasticsearch >= 7.X вам не нужно использовать эту опцию, так как все работает по умолчанию.
- Для Elasticsearch >= 6.X рекомендуемое значение —
_doc
, так как его использование позволит легко обновиться до Elasticsearch версии 7.X. - Для Elasticsearch < 6.X вы можете использовать любое значение, которое не начинается с
_
. Например,logs
.
- объект
Дополнительные label’ы, которыми будут снабжаться записи логов.
Вы можете использовать простые шаблоны:
{{ app }}
.Некоторые ключи зарезервированы:
- parsed_data;
- pod;
- pod_labels_*;
- pod_ip;
- namespace;
- image;
- container;
- node;
- pod_owner.
Пример:
1extraLabels: 2 forwarder: vector 3 key: value 4 app_info: "{{ app }}" 5 array_member: "{{ array[0] }}" 6 symbol_escating_value: "{{ pay\\.day }}"
- массив строк
Обязательный параметр
Список пар адресов (хост:порт) Kafka-брокеров в кластере Kafka, к которым должны подключиться клиенты для получения метаданных (топиков и партиций).
По умолчанию:
[]
Пример:
1bootstrapServers: 2- 10.14.22.123:9092 3- 10.14.23.332:9092
- строка
Позволяет задать поле key_field.
Примеры:
1keyField: host
1keyField: node
1keyField: namespace
1keyField: parsed_data.app_info
- массив объектов
Список фильтров для keyField.
Только логи, НЕ подпадающие под правила, будут ограничены по количеству записей.
Примеры:
1excludes: 2 field: tier 3 operator: Exists
1excludes: 2 field: foo 3 operator: NotIn 4 values: 5 - dev 6 - 42 7 - 'true' 8 - '3.14'
1excludes: 2 field: bar 3 operator: Regex 4 values: 5 - "^abc" 6 - "^\\d.+$"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- массив
Массив значений или регулярных выражений для соответствующих операций. Не работает для операций
Exists
иDoesNotExist
.Можно использовать целые числа или строки. Поля с числами с плавающей запятой и поля логического типа будут преобразованы в строки при сравнении.
ClusterLoggingConfig
Scope: Cluster
Version: v1alpha1
Описывает источник логов в log-pipeline.
Каждый custom resource ClusterLoggingConfig
описывает правила сбора логов из кластера.
- объект
Задает фильтр по меткам пода.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
1matchExpressions: 2- key: tier 3 operator: In 4 values: 5 - production 6 - staging 7- key: tier 8 operator: NotIn 9 values: 10 - production
- объект
Задает фильтр по пространствам имен.
Фильтр может использовать какой-то один способ задания условия из трех доступных (параметры
matchNames
,excludeNames
,labelSelector
).- объект
Фильтр по меткам пространств имен, с которых нужно собирать логи.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.
Пример:
1matchExpressions: 2- key: tier 3 operator: In 4 values: 5 - production 6 - staging
- массив объектов
Список правил для фильтрации логов по их меткам метаданных.
Пример:
1labelFilter: 2- field: container 3 operator: In 4 values: 5 - nginx 6- field: pod_labels.tier 7 operator: Regex 8 values: 9 - prod-.+ 10 - stage-.+
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- массив объектов
Список фильтров для логов, которые применяются к полям сообщения в формате JSON.
Только логи, подпадающие под правила, будут сохранены в хранилище.
Пример:
1logFilter: 2- field: tier 3 operator: Exists 4- field: foo 5 operator: NotIn 6 values: 7 - dev 8 - 42 9 - 'true' 10 - '3.14' 11- field: bar 12 operator: Regex 13 values: 14 - "^abc" 15 - "^\\d.+$"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть.DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- объект
Условие, при котором находится последняя строчка многострокового лога.
- объект
Условие, при котором находится первая строчка многострокового лога.
- строка
Обязательный параметр
Типы парсеров:
None
— не парсить логи;General
— парсер, который пытается сливать логи, у которых в начале сообщения стоит пробел или табуляция;Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшем у строк одного сообщения;LogWithTime
— парсер, который ожидает, что любое новое сообщение начинается с временной метки;MultilineJSON
— простой парсер JSON-логов, который предполагает, что новое сообщение начинается с символа{
;Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom
PodLoggingConfig
Scope: Namespaced
Version: v1alpha1
Custom resource для описания источника логов в log-pipeline.
Каждый custom resource PodLoggingConfig
описывает правила сбора логов из указанного namespace.
- массив объектов
Список правил для фильтрации логов по их меткам метаданных](./#метаданные).
Пример:
1labelFilter: 2- field: container 3 operator: In 4 values: 5 - nginx 6- field: pod_labels.tier 7 operator: Regex 8 values: 9 - prod-.+ 10 - stage-.+
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- объект
Задает фильтр по меткам пода.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
1matchExpressions: 2- key: tier 3 operator: In 4 values: 5 - production 6 - staging
- массив объектов
Список фильтров для логов, которые применяются к полям сообщения в формате JSON.
Только логи, подпавшие под правила, будут сохранены в хранилище.
Пример:
1logFilter: 2- field: tier 3 operator: Exists 4- field: foo 5 operator: NotIn 6 values: 7 - dev 8 - 42 9 - 'true' 10 - '3.14' 11- field: bar 12 operator: Regex 13 values: 14 - "^abc" 15 - "^\\d.+$"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- объект
Условие, при котором находится последняя строчка многострокового лога.
- объект
Условие, при котором находится первая строчка многострокового лога.
- строка
Обязательный параметр
Типы парсеров:
None
— не парсить логи;General
— парсер, который пытается сливать логи, у которых в начале сообщения стоит пробел или табуляция;Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшем у строк одного сообщения;LogWithTime
— парсер, который ожидает, что любое новое сообщение начинается с временной метки;MultilineJSON
— простой парсер JSON-логов, который предполагает, что новое сообщение начинается с символа{
;Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom