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

Установите опцию debug для модуля в true в configmap Deckhouse как в приведенном ниже куске конфигурации:

logShipper: |
  debug: true

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

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

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

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

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

Посмотреть каналы как 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).

Log’и до применения правил трансформации:

vector tap d8_cluster_source_*

Измененные логи:

vector tap d8_tf_*

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

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

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

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

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

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

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