Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-2 [2025/11/26 03:00] – 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 === | ||
| Строка 23: | Строка 23: | ||
| Parser | Parser | ||
| Refresh_Interval | Refresh_Interval | ||
| - | | + | Ignore_Older |
| Docker_Mode | Docker_Mode | ||
| - | Docker_Mode_Flush 4 | ||
| Tag | Tag | ||
| Tag_Regex | Tag_Regex | ||
| Строка 33: | Строка 32: | ||
| DB.sync | DB.sync | ||
| Storage.Type | Storage.Type | ||
| - | Read_from_Head | + | Read_from_Head |
| - | # Метаданные Docker | + | # Только для отладки |
| + | # [INPUT] | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # Фильтруем пустые логи | ||
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | | + | |
| - | | + | |
| + | Exclude | ||
| # Извлекаем сырой лог | # Извлекаем сырой лог | ||
| Строка 47: | Строка 63: | ||
| match | match | ||
| copy log raw_log | copy log raw_log | ||
| + | copy exception.backtrace exception_backtrace | ||
| + | copy exception.class exception_class | ||
| + | copy exception.message exception_message | ||
| - | # Фильтруем пустые | + | # Очищаем docker.* - оставляем ТОЛЬКО нужные поля |
| [FILTER] | [FILTER] | ||
| - | name | + | name |
| match | match | ||
| - | Exclude | ||
| - | Exclude | ||
| - | Exclude | ||
| - | Exclude | ||
| - | # Основной JSON парсинг для Docker логов | + | 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 parser | name parser | ||
| match | match | ||
| - | key_name | + | key_name |
| - | parser | + | parser |
| reserve_data | reserve_data | ||
| - | preserve_key | ||
| [FILTER] | [FILTER] | ||
| Строка 122: | Строка 154: | ||
| reserve_data | reserve_data | ||
| Preserve_Key | Preserve_Key | ||
| - | |||
| - | [FILTER] | ||
| - | name parser | ||
| - | match | ||
| - | key_name | ||
| - | parser | ||
| - | reserve_data | ||
| [FILTER] | [FILTER] | ||
| Строка 151: | Строка 176: | ||
| reserve_data | reserve_data | ||
| - | # Структуризация распарсенных полей | + | # Структуризация распарсенных полей |
| [FILTER] | [FILTER] | ||
| name nest | name nest | ||
| Строка 173: | Строка 198: | ||
| wildcard | wildcard | ||
| wildcard | wildcard | ||
| - | wildcard | + | wildcard |
| - | wildcard | + | |
| - | wildcard | + | |
| - | wildcard | + | |
| nest_under | nest_under | ||
| - | # Копируем метаданные | + | # |
| + | # FILTERS | ||
| + | # | ||
| + | |||
| + | # Метаданные Docker | ||
| + | [FILTER] | ||
| + | name lua | ||
| + | match | ||
| + | script | ||
| + | call enrich_with_docker_metadata | ||
| + | |||
| + | # Копируем метаданные | ||
| [FILTER] | [FILTER] | ||
| name modify | name modify | ||
| Строка 186: | Строка 219: | ||
| copy docker.container_started started | copy docker.container_started started | ||
| copy docker.container_name container_name | copy docker.container_name container_name | ||
| + | copy docker.container_name service_name | ||
| copy docker.container_id container_id | copy docker.container_id container_id | ||
| copy docker.state state | copy docker.state state | ||
| copy docker.stream stream | copy docker.stream stream | ||
| + | copy docker.line_id line_id | ||
| + | |||
| copy log _raw | copy log _raw | ||
| copy parsed_data _parsed | copy parsed_data _parsed | ||
| + | # 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_compose_service compose_service | + | copy docker.label_logging |
| - | + | copy docker.label_logging_jobname | |
| - | # docker swarm | + | |
| - | copy docker.Label_stack_name stack_name | + | |
| - | copy docker.Label_service_name service_name | + | |
| - | copy docker.Label_service_id service_id | + | |
| - | copy docker.Label_task_name task_name | + | |
| - | copy docker.Label_task_id task_id | + | |
| - | copy docker.Label_node_id node_id | + | |
| - | + | ||
| - | # Labels | + | |
| - | copy docker.Label_logging | + | |
| - | copy docker.Label_logging_jobname | + | |
| # Структурируем через nest | # Структурируем через nest | ||
| Строка 231: | Строка 259: | ||
| rule $logging ^enabled$ data.$container_id true | rule $logging ^enabled$ data.$container_id true | ||
| - | # Очищаем data.* - расширенный whitelist | ||
| [FILTER] | [FILTER] | ||
| name record_modifier | name record_modifier | ||
| match | match | ||
| + | |||
| + | 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 | ||
| + | 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 | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| whitelist_key | whitelist_key | ||
| whitelist_key | whitelist_key | ||
| - | whitelist_key | ||
| whitelist_key | whitelist_key | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| - | |||
| - | # docker compose | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| - | |||
| - | # docker swarm | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| - | whitelist_key | ||
| [OUTPUT] | [OUTPUT] | ||
| Строка 267: | Строка 295: | ||
| host loki | host loki | ||
| port 3100 | port 3100 | ||
| - | labels | + | labels |
| - | label_keys | + | label_keys |
| line_format | line_format | ||
| auto_kubernetes_labels off | auto_kubernetes_labels off | ||
| - | drop_single_key | ||
| - | remove_keys | ||
| - | # OUTPUT | + | # Только |
| # [OUTPUT] | # [OUTPUT] | ||
| # | # | ||
| Строка 281: | Строка 307: | ||
| </ | </ | ||
| - | === parsers_multiline.conf === | + | === parsers.conf === |
| <code ini> | <code ini> | ||
| Строка 287: | Строка 313: | ||
| [PARSER] | [PARSER] | ||
| Name docker | Name docker | ||
| - | Format | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # Автоматический JSON парсер | ||
| - | [PARSER] | ||
| - | Name json_auto | ||
| Format | Format | ||
| Time_Key | Time_Key | ||
| Строка 307: | Строка 325: | ||
| Time_Key | Time_Key | ||
| Time_Format %d/ | Time_Format %d/ | ||
| - | Time_Keep | ||
| # Gitlab JSON логи (application logs) | # Gitlab JSON логи (application logs) | ||
| Строка 313: | Строка 330: | ||
| Name gitlab_json | Name gitlab_json | ||
| Format | Format | ||
| + | # Time_Key | ||
| Time_Keep | Time_Keep | ||
| Строка 328: | Строка 346: | ||
| Name sidekiq_json | Name sidekiq_json | ||
| Format | Format | ||
| + | # Time_Key | ||
| Time_Keep | Time_Keep | ||
| Строка 336: | Строка 355: | ||
| Regex | Regex | ||
| Time_Key | Time_Key | ||
| - | Time_Format %d/ | + | Time_Format %d/ |
| Time_Keep | Time_Keep | ||
| Строка 346: | Строка 365: | ||
| Time_Key | Time_Key | ||
| Time_Format %d/ | Time_Format %d/ | ||
| - | Time_Keep | ||
| # MySQL error логи | # MySQL error логи | ||
| Строка 415: | Строка 433: | ||
| Regex | Regex | ||
| Time_Key | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # Ruby/Rails логи (GitLab) | ||
| - | [PARSER] | ||
| - | Name ruby_multiline | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # GitLab Rails логи (JSON multiline) | ||
| - | [PARSER] | ||
| - | Name gitlab_rails_multiline | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # Sidekiq multiline логи | ||
| - | [PARSER] | ||
| - | Name sidekiq_multiline | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # Multiline Java/Spring логи | ||
| - | [PARSER] | ||
| - | Name java_multiline | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%d %H:%M:%S.%L | ||
| - | Time_Keep | ||
| - | |||
| - | # Multiline Python логи | ||
| - | [PARSER] | ||
| - | Name python_multiline | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%d %H:%M:%S,%L | ||
| - | Time_Keep | ||
| - | |||
| - | # Multiline стектрейсы | ||
| - | [PARSER] | ||
| - | Name stacktrace_multiline | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%d %H:%M:%S.%L | ||
| - | Time_Keep | ||
| - | |||
| - | # Дополнительный парсер для Go логов | ||
| - | [PARSER] | ||
| - | Name go_multiline | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| Time_Format %Y-%m-%dT%H: | Time_Format %Y-%m-%dT%H: | ||
| Time_Keep | Time_Keep | ||
| Строка 491: | Строка 446: | ||
| <code yaml> | <code yaml> | ||
| + | auth_enabled: | ||
| + | |||
| + | server: | ||
| + | http_listen_port: | ||
| + | |||
| + | common: | ||
| + | instance_addr: | ||
| + | path_prefix: | ||
| + | storage: | ||
| + | filesystem: | ||
| + | chunks_directory: | ||
| + | rules_directory: | ||
| + | replication_factor: | ||
| + | ring: | ||
| + | kvstore: | ||
| + | store: inmemory | ||
| + | |||
| + | schema_config: | ||
| + | configs: | ||
| + | - from: 2020-10-24 | ||
| + | store: tsdb | ||
| + | object_store: | ||
| + | schema: v13 | ||
| + | index: | ||
| + | prefix: index_ | ||
| + | period: 24h | ||
| + | |||
| + | ruler: | ||
| + | alertmanager_url: | ||
| + | |||
| + | limits_config: | ||
| + | retention_period: | ||
| + | reject_old_samples: | ||
| + | reject_old_samples_max_age: | ||
| + | allow_structured_metadata: | ||
| + | max_query_length: | ||
| + | | ||
| + | ingester: | ||
| + | lifecycler: | ||
| + | ring: | ||
| + | kvstore: | ||
| + | store: inmemory | ||
| + | replication_factor: | ||
| + | final_sleep: | ||
| + | chunk_idle_period: | ||
| + | max_chunk_age: | ||
| + | chunk_target_size: | ||
| + | chunk_retain_period: | ||
| + | table_manager: | ||
| + | retention_deletes_enabled: | ||
| + | retention_period: | ||
| </ | </ | ||