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

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

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

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: log-shipper
spec:
  version: 1
  enabled: true
  settings:
    debug: true

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

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

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

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

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

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

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

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

+------------------------------------------------+
|  d8_cluster_source_flant-integration-d8-logs   |
+------------------------------------------------+
  |
  |
  v
+------------------------------------------------+
|       d8_tf_flant-integration-d8-logs_0        |
+------------------------------------------------+
  |
  |
  v
+------------------------------------------------+
|       d8_tf_flant-integration-d8-logs_1        |
+------------------------------------------------+
  |
  |
  v
+------------------------------------------------+
| d8_cluster_sink_flant-integration-loki-storage |
+------------------------------------------------+

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

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

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

Vector TOP output

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

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

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

vector tap 'cluster_logging_config/*'

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

vector tap 'transform/*'

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

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

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

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

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

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

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