Как включить debug-логи?

Включите параметр debug модуля.

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

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: log-shipper
5spec:
6  version: 1
7  enabled: true
8  settings:
9    debug: true

После этого в логах вы найдете много полезной информации о HTTP-запросах, переиспользовании подключения, трассировку и т. д.

Как узнать больше о каналах передачи log’ов?

Для начала зайдите в под на желаемом узле.

1kubectl -n d8-log-shipper get pods -o wide | grep $node
2kubectl -n d8-log-shipper exec $pod -it -c vector -- bash

Все следующие команды предполагается запускать из командной оболочки пода.

Посмотреть каналы как graph

  • Выполните команду vector graph, чтобы получить graph в формате DOT.
  • Выставьте его в webgraphviz или другой похожий сервис, чтобы получить изображение.

Пример graph’а для одного канала передачи логов в формате ASCII:

1+------------------------------------------------+
2|  d8_cluster_source_flant-integration-d8-logs   |
3+------------------------------------------------+
4  |
5  |
6  v
7+------------------------------------------------+
8|       d8_tf_flant-integration-d8-logs_0        |
9+------------------------------------------------+
10  |
11  |
12  v
13+------------------------------------------------+
14|       d8_tf_flant-integration-d8-logs_1        |
15+------------------------------------------------+
16  |
17  |
18  v
19+------------------------------------------------+
20| d8_cluster_sink_flant-integration-loki-storage |
21+------------------------------------------------+

Отладка передачи данных

Существует команда vector top, которая поможет увидеть, как много трафика проходит через каждую стадию обработки логов.

Пример вывода команды:

Vector TOP output

Получить необработанные образцы log’ов

Вы можете использовать команды vector tap, чтобы получить входные данные для любых компонентов каналов. Единственный аргумент, который нужно задать, — ID стадии обработки (тажке поддерживаются выборки в формате glob, например cluster_logging_config/*).

С помощью следующей команды вы сможете увидеть логи до применения правил трансформации (cluster_logging_config/* является первой стадией обработки согласно выводу команды vector graph):

1vector tap 'cluster_logging_config/*'

Измененные логи, которые поступают на вход следующих в цепочке компонентов каналов:

1vector tap 'transform/*'

Вы также можете использовать интерактивную консоль vector vrl для отладки VRL правил для изменения логов.

Пример программы с использованием VRL:

1. = {"test1": "lynx", "test2": "fox"}
2del(.test2)
3.

Как добавить поддержку нового source/sink для log-shipper?

Vector для модуля log-shipper был собран с ограниченным набором функций (чтобы уменьшить время сборки и размер финального запускаемого файла).

Вы можете посмотреть весь список поддерживаемых функций, выполнив команду vector list.

Если необходимо добавить поддержку нового source/sink, сначала нужно добавить необходимую функцию в список поддерживаемых в Dockerfile.