Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
| software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-syslog-ng [2025/12/06 21:01] – mirocow | software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-syslog-ng [2025/12/07 00:56] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 64: | Строка 64: | ||
| # | # | ||
| - | # ==================== DOCKER | + | # ==================== DOCKER |
| - | [INPUT] | + | |
| - | Name docker_events | + | |
| - | Tag | + | |
| - | Interval_Sec | + | |
| - | Docker_Mode | + | |
| - | DB / | + | |
| - | # ==================== SYSTEM METRICS INPUT ==================== | + | # Фильтруем пустые логи |
| - | [INPUT] | + | [FILTER] |
| - | | + | name grep |
| - | | + | match |
| - | | + | Exclude |
| + | Exclude | ||
| + | Exclude | ||
| + | |||
| + | # Извлекаем сырой лог | ||
| + | [FILTER] | ||
| + | | ||
| + | | ||
| + | | ||
| + | copy exception.backtrace exception_backtrace | ||
| + | copy exception.class exception_class | ||
| + | copy exception.message exception_message | ||
| + | |||
| + | # Очищаем docker.* - оставляем ТОЛЬКО нужные поля | ||
| + | [FILTER] | ||
| + | name record_modifier | ||
| + | match | ||
| - | [INPUT] | + | whitelist_key |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | whitelist_key | ||
| - | [INPUT] | + | whitelist_key |
| - | | + | whitelist_key |
| - | | + | whitelist_key |
| - | | + | whitelist_key |
| - | | + | whitelist_key |
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | |||
| + | [FILTER] | ||
| + | | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | | ||
| + | | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | Preserve_Key | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | [FILTER] | ||
| + | name parser | ||
| + | match | ||
| + | key_name | ||
| + | parser | ||
| + | reserve_data | ||
| + | |||
| + | # Структуризация распарсенных полей В raw_log | ||
| + | [FILTER] | ||
| + | name nest | ||
| + | match | ||
| + | operation | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | wildcard | ||
| + | nest_under | ||
| + | |||
| + | # Метаданные Docker | ||
| + | [FILTER] | ||
| + | name lua | ||
| + | match | ||
| + | script | ||
| + | call enrich_with_docker_metadata | ||
| + | |||
| + | # Копируем метаданные | ||
| + | [FILTER] | ||
| + | name modify | ||
| + | match | ||
| + | copy docker.hostname hostname | ||
| + | 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 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_logging logging | ||
| + | copy docker.label_logging_jobname logging_jobname | ||
| + | |||
| + | # Структурируем через nest | ||
| + | [FILTER] | ||
| + | name nest | ||
| + | match | ||
| + | operation | ||
| + | wildcard | ||
| + | nest_under | ||
| + | remove_prefix | ||
| + | |||
| + | # Добавляем host metadata | ||
| + | [FILTER] | ||
| + | name modify | ||
| + | match | ||
| + | set | ||
| + | set | ||
| + | set | ||
| + | |||
| + | # Перетагиваем только логи с enabled logging | ||
| + | [FILTER] | ||
| + | name rewrite_tag | ||
| + | match | ||
| + | rule $logging ^enabled$ data.$container_id true | ||
| # ==================== ROUTER FILTERS ==================== | # ==================== ROUTER FILTERS ==================== | ||
| + | |||
| [FILTER] | [FILTER] | ||
| Name parser | Name parser | ||
| Строка 113: | Строка 291: | ||
| Set | Set | ||
| Set | Set | ||
| - | |||
| - | # ==================== DOCKER FILTERS ==================== | ||
| - | # Фильтруем пустые логи | ||
| - | [FILTER] | ||
| - | Name grep | ||
| - | Match | ||
| - | Exclude | ||
| - | Exclude | ||
| - | |||
| - | # Копируем сырой лог | ||
| - | [FILTER] | ||
| - | Name modify | ||
| - | Match | ||
| - | Copy log raw_log | ||
| - | |||
| - | # Docker metadata через Lua скрипт | ||
| - | [FILTER] | ||
| - | Name lua | ||
| - | Match | ||
| - | Script | ||
| - | Call enrich_with_docker_metadata | ||
| - | |||
| - | # Добавляем Swarm метаданные | ||
| - | [FILTER] | ||
| - | Name modify | ||
| - | Match | ||
| - | Copy docker.container_name container_name | ||
| - | Copy docker.container_id container_id | ||
| - | Copy docker.image_name image_name | ||
| - | Copy docker.image_id image_id | ||
| - | Copy docker.command command | ||
| - | Copy docker.created created | ||
| - | Copy docker.hostname hostname | ||
| - | Set | ||
| - | Set | ||
| - | |||
| - | # Парсим JSON логи приложений | ||
| - | [FILTER] | ||
| - | Name parser | ||
| - | Match | ||
| - | Key_Name | ||
| - | Parser | ||
| - | Reserve_Data | ||
| # Отфильтровываем служебные контейнеры | # Отфильтровываем служебные контейнеры | ||
| Строка 166: | Строка 301: | ||
| Exclude | Exclude | ||
| - | # Группируем логи по службам | ||
| [FILTER] | [FILTER] | ||
| - | | + | |
| - | | + | |
| - | | + | |
| + | | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| + | whitelist_key | ||
| - | # ==================== OUTPUTS ==================== | + | 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 в Loki | ||
| + | [OUTPUT] | ||
| + | name loki | ||
| + | match | ||
| + | host loki | ||
| + | port 3100 | ||
| + | labels | ||
| + | line_format | ||
| + | auto_kubernetes_labels off | ||
| # Логи роутера в Loki | # Логи роутера в Loki | ||
| Строка 181: | Строка 349: | ||
| Port 3100 | Port 3100 | ||
| Labels | Labels | ||
| - | Label_Keys | ||
| Line_Format | Line_Format | ||
| Auto_Kubernetes_Labels off | Auto_Kubernetes_Labels off | ||
| - | Drop_Single_Key | ||
| - | Tenant_ID | ||
| - | |||
| - | # Docker логи в Loki | ||
| - | [OUTPUT] | ||
| - | Name loki | ||
| - | Match | ||
| - | Host loki | ||
| - | Port 3100 | ||
| - | Labels | ||
| - | Label_Keys | ||
| - | Line_Format | ||
| - | Auto_Kubernetes_Labels off | ||
| - | Drop_Single_Key | ||
| - | Tenant_ID | ||
| - | |||
| - | # Системные метрики в Loki | ||
| - | [OUTPUT] | ||
| - | Name loki | ||
| - | Match | ||
| - | Host loki | ||
| - | Port 3100 | ||
| - | Labels | ||
| - | Line_Format | ||
| - | Auto_Kubernetes_Labels off | ||
| - | |||
| - | # Docker events в Loki | ||
| - | [OUTPUT] | ||
| - | Name loki | ||
| - | Match | ||
| - | Host loki | ||
| - | Port 3100 | ||
| - | Labels | ||
| - | Line_Format | ||
| - | Auto_Kubernetes_Labels off | ||
| - | |||
| - | # Отладочный вывод (можно отключить) | ||
| - | #[OUTPUT] | ||
| - | # Name stdout | ||
| - | # Match | ||
| - | # Format | ||
| - | |||
| - | #[OUTPUT] | ||
| - | # Name stdout | ||
| - | # Match | ||
| - | # Format | ||
| - | </ | ||
| - | |||
| - | === parsers.conf === | ||
| - | |||
| - | <code ini> | ||
| - | [PARSER] | ||
| - | Name router_logs | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %b %d %H:%M:%S | ||
| - | Time_Keep | ||
| - | Types | ||
| - | |||
| - | [PARSER] | ||
| - | Name syslog-rfc5424 | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | Types | ||
| - | |||
| - | # Базовый парсер для Docker JSON логов | ||
| - | [PARSER] | ||
| - | Name docker | ||
| - | Format | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # Nginx access логи | ||
| - | [PARSER] | ||
| - | Name nginx_access | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %d/ | ||
| - | |||
| - | # Gitlab JSON логи (application logs) | ||
| - | [PARSER] | ||
| - | Name gitlab_json | ||
| - | Format | ||
| - | # Time_Key | ||
| - | Time_Keep | ||
| - | |||
| - | # GitLab Registry логи | ||
| - | [PARSER] | ||
| - | Name gitlab_registry | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # Sidekiq JSON логи | ||
| - | [PARSER] | ||
| - | Name sidekiq_json | ||
| - | Format | ||
| - | # Time_Key | ||
| - | Time_Keep | ||
| - | |||
| - | # Nextcloud Apache-style логи | ||
| - | [PARSER] | ||
| - | Name nextcloud_access | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %d/ | ||
| - | Time_Keep | ||
| - | |||
| - | # Apache access логи | ||
| - | [PARSER] | ||
| - | Name apache_access | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %d/ | ||
| - | |||
| - | # MySQL error логи | ||
| - | [PARSER] | ||
| - | Name mysql_error | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # MySQL slow query логи | ||
| - | [PARSER] | ||
| - | Name mysql_slow | ||
| - | Format | ||
| - | Regex ^# Time: (?< | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | |||
| - | # PostgreSQL логи | ||
| - | [PARSER] | ||
| - | Name postgresql | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%d %H:%M:%S.%L %Z | ||
| - | Time_Keep | ||
| - | |||
| - | # PostgreSQL extended логи (с деталями запросов) | ||
| - | [PARSER] | ||
| - | Name postgresql_detailed | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%d %H:%M:%S.%L %Z | ||
| - | Time_Keep | ||
| - | |||
| - | # PHP-FPM логи | ||
| - | [PARSER] | ||
| - | Name php_fpm | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %d-%b-%Y %H:%M:%S | ||
| - | Time_Keep | ||
| - | |||
| - | # Стандартный syslog | ||
| - | [PARSER] | ||
| - | Name syslog_rfc3164 | ||
| - | Format | ||
| - | Regex | ||
| - | Time_Key | ||
| - | Time_Format %b %d %H:%M:%S | ||
| - | Time_Keep | ||
| - | |||
| - | # Grafana лог формата key=value | ||
| - | [PARSER] | ||
| - | Name grafana_logfmt | ||
| - | Format | ||
| - | Time_Key | ||
| - | Time_Format %Y-%m-%dT%H: | ||
| - | Time_Keep | ||
| - | [PARSER] | + | # Только для отладки |
| - | | + | # [OUTPUT] |
| - | Format | + | # |
| - | Regex | + | # |
| - | | + | # |
| - | | + | |
| - | | + | |
| </ | </ | ||