Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-2 [2025/12/01 04:05] – [parsers_multiline.conf] mirocow | software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-2 [2025/12/06 03:35] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Обработка | + | ====== Обработка логов |
| === fluent-bit.conf === | === fluent-bit.conf === | ||
| Строка 22: | Строка 22: | ||
| Path / | Path / | ||
| Parser | Parser | ||
| - | Multiline | ||
| - | multiline.parser | ||
| Refresh_Interval | Refresh_Interval | ||
| - | Tag | + | |
| + | Docker_Mode | ||
| + | | ||
| Tag_Regex | Tag_Regex | ||
| Mem_Buf_Limit | Mem_Buf_Limit | ||
| Строка 32: | Строка 32: | ||
| DB.sync | DB.sync | ||
| Storage.Type | Storage.Type | ||
| - | Read_from_Head | + | Read_from_Head |
| - | # Метаданные Docker Swarm | + | # Только для отладки |
| + | # [INPUT] | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # Фильтруем пустые логи | ||
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | | + | |
| - | | + | |
| + | Exclude | ||
| - | # Основной JSON парсинг | + | # Извлекаем |
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | # Очищаем docker.* - оставляем ТОЛЬКО нужные поля | ||
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | Rename | ||
| - | Copy message raw_message | ||
| - | # Дополнительная многострочная обработка | + | whitelist_key |
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | |||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | |||
| + | # | ||
| + | # FILTERS | ||
| + | # | ||
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | | + | |
| - | | + | parser |
| + | reserve_data | ||
| - | # Копируем метаданные Docker Swarm | ||
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | + | | |
| - | | + | |
| - | | + | |
| - | copy container_started started | + | |
| - | copy container_name container_name | + | |
| - | copy container_id container_id | + | |
| - | copy state state | + | |
| - | copy stream stream | + | |
| - | + | ||
| - | # Docker Swarm метки | + | |
| - | copy label_com_docker_swarm_service_name service_name | + | |
| - | copy label_com_docker_swarm_task_name task_name | + | |
| - | copy label_com_docker_swarm_task_id task_id | + | |
| - | copy label_com_docker_swarm_node_id node_id | + | |
| - | copy label_com_docker_stack_namespace stack_name | + | |
| - | + | ||
| - | # Кастомные лейблы логирования | + | |
| - | copy label_logging_enabled logging_enabled | + | |
| - | copy label_logging_jobname logging_jobname | + | |
| - | + | ||
| - | # Дополнительные поля | + | |
| - | copy image_name image_name | + | |
| - | copy image_id image_id | + | |
| - | # Устанавливаем значения по умолчанию для переменных окружения | ||
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | Set | + | |
| - | # Специфичные парсеры для разных сервисов | ||
| [FILTER] | [FILTER] | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| Строка 111: | Строка 122: | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| Строка 118: | Строка 129: | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| Строка 125: | Строка 136: | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| Строка 132: | Строка 143: | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| Строка 139: | Строка 150: | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| + | Preserve_Key | ||
| [FILTER] | [FILTER] | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| Строка 153: | Строка 165: | ||
| name parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| - | # Структуризация распарсенных полей | + | [FILTER] |
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | # Структуризация распарсенных полей | ||
| [FILTER] | [FILTER] | ||
| name nest | name nest | ||
| match | match | ||
| - | operation | + | operation |
| - | | + | |
| - | | + | |
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | nest_under | ||
| + | # | ||
| + | # FILTERS | ||
| + | # | ||
| + | |||
| + | # Метаданные Docker | ||
| + | [FILTER] | ||
| + | name lua | ||
| + | match | ||
| + | script | ||
| + | call enrich_with_docker_metadata | ||
| + | |||
| + | # Копируем метаданные | ||
| [FILTER] | [FILTER] | ||
| name modify | name modify | ||
| match | match | ||
| - | | + | |
| + | copy docker.container_started started | ||
| + | copy docker.container_name container_name | ||
| + | copy docker.container_name service_name | ||
| + | copy docker.container_id container_id | ||
| + | copy docker.state state | ||
| + | copy docker.stream stream | ||
| + | copy docker.line_id line_id | ||
| + | |||
| + | copy log _raw | ||
| + | copy | ||
| + | # copy exception_class _class | ||
| + | # copy exception_message _message | ||
| + | # copy exception_backtrace _backtrace | ||
| + | |||
| + | copy docker.label_project project | ||
| + | copy docker.label_service service | ||
| + | copy docker.label_logging logging | ||
| + | copy docker.label_logging_jobname logging_jobname | ||
| + | # Структурируем через nest | ||
| [FILTER] | [FILTER] | ||
| name nest | name nest | ||
| match | match | ||
| operation | operation | ||
| - | wildcard | + | wildcard |
| - | nest_under | + | nest_under |
| + | remove_prefix | ||
| - | # Копируем | + | # Добавляем host metadata |
| [FILTER] | [FILTER] | ||
| name modify | name modify | ||
| match | match | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | Copy | + | |
| - | Copy | + | |
| - | Copy | + | |
| - | Copy | + | |
| - | Copy | + | |
| - | Copy | + | |
| - | Copy | + | |
| - | # Перетагиваем логи с включенным | + | # Перетагиваем |
| [FILTER] | [FILTER] | ||
| name rewrite_tag | name rewrite_tag | ||
| match | match | ||
| - | | + | |
| - | Emitter_Name | + | |
| - | # Очищаем данные для Loki | ||
| [FILTER] | [FILTER] | ||
| name record_modifier | name record_modifier | ||
| - | match logs.* | + | match data.* |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | | ||
| + | | ||
| + | | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| - | # Выход в Loki с нужными лейблами | ||
| [OUTPUT] | [OUTPUT] | ||
| name loki | name loki | ||
| - | match logs.* | + | match data.* |
| host loki | host loki | ||
| port 3100 | port 3100 | ||
| - | labels | + | labels |
| + | label_keys | ||
| line_format | line_format | ||
| auto_kubernetes_labels off | auto_kubernetes_labels off | ||
| - | drop_single_key | ||
| - | # Резервный вывод для отладки | + | # Только для отладки |
| - | #[OUTPUT] | + | # [OUTPUT] |
| - | # name stdout | + | # |
| - | # match logs.* | + | # |
| - | # format | + | # |
| </ | </ | ||
| - | === parsers_multiline.conf === | + | === parsers.conf === |
| <code ini> | <code ini> | ||