Как включить 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
, которая поможет увидеть, как много трафика проходит через каждую стадию обработки логов.
Пример вывода команды:
Получить необработанные образцы 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.