Compare languages | The log-shipper module: advanced usage

How to enable debugging logs?


Enable the debug parameter of the module.

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

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

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

Then in logs, you will find a lot of helpful information about HTTP requests, connects reusing, detailed traces, and so on.

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

How to get aware of logs pipelines?

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

To begin with, go to the command shell of the Pod on a desired node.

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

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

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

All following commands are assumed to be executed from the Pod’s shell.

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

See pipelines as a graph

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

  • Execute the vector graph command to get the output of logs pipelines topology in the DOT format.
  • Put the output to webgraphviz os similar service to render the graph.

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

Example of the graph output for a single pipeline in ASCII format:

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

text +————————————————+ | 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 graph, чтобы получить graph в формате DOT.
  • Выставьте его в webgraphviz или другой похожий сервис, чтобы получить изображение.

Investigate data processing

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

There is the vector top command to help you see how much data is going through all checkpoints of the pipeline.

text +————————————————+ | 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 | +————————————————+

Example of the output:

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

Vector TOP output

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

Get raw log samples

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

You may use the vector tap command to get input data for any channel components. The only argument to be set is the ID of the processing stage. Patterns in a glob format are also supported for selections (e.g., d8_cluster_source_*).

Vector TOP output

By using the following command, you can see the log’s before applying the transformation rules (d8_cluster_source_* is the first stage of processing according to the output of the vector graph command):

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

bash vector tap ‘cluster_logging_config/*’

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

Transformed logs that are received at the input of the next channel components in the chain:

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

bash vector tap ‘transform/*’

bash vector tap ‘cluster_logging_config/*’

You can then use the vector vrl interactive console to debug VRL message remap rules.

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

Example of a program on VRL:

bash vector tap ‘transform/*’

text . = {“test1”: “lynx”, “test2”: “fox”} del(.test2) .

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

How to add a new source/sink support for log-shipper?

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

Vector in the log-shipper module has been built with the limited number of enabled features (to improve building speed and decrease the size of the final binary).

text . = {“test1”: “lynx”, “test2”: “fox”} del(.test2) .

You can see a list of all supported features by executing the vector list command.

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

If supporting a new source/sink is required, you need to add the corresponding feature to the list of enabled features in the Dockerfile.

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

 

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

 

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