Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
| software:monitoring:fluent-bit:docker-swarm [2025/11/25 23:19] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | software:monitoring:fluent-bit:docker-swarm [2025/11/25 23:19] (текущий) – ↷ Страница перемещена из software:fluent-bit-loki-grafana:fluent-bit:docker-swarm в software:monitoring:fluent-bit:docker-swarm mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Настройка логов GitLab в Docker Swarm ====== | ||
| + | |||
| + | === docker-compose.fluentbit.yml === | ||
| + | |||
| + | <code yaml> | ||
| + | version: ' | ||
| + | |||
| + | services: | ||
| + | fluent-bit: | ||
| + | image: fluent/ | ||
| + | restart: always | ||
| + | environment: | ||
| + | TZ: ' | ||
| + | configs: | ||
| + | - source: fluent-bit-conf | ||
| + | target: / | ||
| + | - source: parsers-conf | ||
| + | target: / | ||
| + | volumes: | ||
| + | # Монтируем директорию с контейнерами Docker | ||
| + | - / | ||
| + | # Монтируем Docker socket для получения метаданных | ||
| + | - / | ||
| + | # Для отслеживания позиции в файлах | ||
| + | - fluent-bit-state:/ | ||
| + | networks: | ||
| + | - localnetwork | ||
| + | | ||
| + | deploy: | ||
| + | mode: global | ||
| + | resources: | ||
| + | limits: | ||
| + | memory: 300M | ||
| + | reservations: | ||
| + | memory: 100M | ||
| + | |||
| + | logging: | ||
| + | driver: " | ||
| + | options: | ||
| + | max-size: " | ||
| + | max-file: " | ||
| + | |||
| + | volumes: | ||
| + | fluent-bit-state: | ||
| + | |||
| + | configs: | ||
| + | fluent-bit-conf: | ||
| + | file: ./ | ||
| + | parsers-conf: | ||
| + | file: ./ | ||
| + | |||
| + | networks: | ||
| + | localnetwork: | ||
| + | external: true | ||
| + | </ | ||
| + | |||
| + | === fluent-bit.conf === | ||
| + | |||
| + | <code ini> | ||
| + | [SERVICE] | ||
| + | Flush 1 | ||
| + | Log_Level | ||
| + | Daemon | ||
| + | Parsers_File | ||
| + | HTTP_Server | ||
| + | HTTP_Listen | ||
| + | HTTP_Port | ||
| + | |||
| + | # Вход для Docker JSON логов | ||
| + | [INPUT] | ||
| + | Name tail | ||
| + | Path / | ||
| + | Tag | ||
| + | Parser | ||
| + | Docker_Mode | ||
| + | Docker_Mode_Flush 4 | ||
| + | Mem_Buf_Limit | ||
| + | Skip_Long_Lines | ||
| + | Refresh_Interval | ||
| + | DB / | ||
| + | DB.sync | ||
| + | |||
| + | # Парсинг JSON логов | ||
| + | [FILTER] | ||
| + | Name parser | ||
| + | Match | ||
| + | Key_Name | ||
| + | Parser | ||
| + | Reserve_Data | ||
| + | |||
| + | # Добавление Docker метаданных | ||
| + | [FILTER] | ||
| + | Name kubernetes | ||
| + | Match | ||
| + | Kube_Tag_Prefix docker.var.log.containers. | ||
| + | Merge_Log | ||
| + | Merge_Log_Key log_processed | ||
| + | K8S-Logging.Parser On | ||
| + | K8S-Logging.Exclude On | ||
| + | |||
| + | # Альтернативный фильтр для Docker метаданных (если kubernetes не работает) | ||
| + | [FILTER] | ||
| + | Name nest | ||
| + | Match | ||
| + | Operation | ||
| + | Nested_under | ||
| + | Add_prefix | ||
| + | |||
| + | # Обогащение логов | ||
| + | [FILTER] | ||
| + | Name modify | ||
| + | Match | ||
| + | Add | ||
| + | Add | ||
| + | Add | ||
| + | |||
| + | # Выход для отладки | ||
| + | [OUTPUT] | ||
| + | Name stdout | ||
| + | Match * | ||
| + | Format | ||
| + | |||
| + | # Пример выхода в Elasticsearch | ||
| + | # [OUTPUT] | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | === parsers.conf === | ||
| + | |||
| + | <code ini> | ||
| + | [PARSER] | ||
| + | Name docker | ||
| + | Format | ||
| + | Time_Key | ||
| + | Time_Format %Y-%m-%dT%H: | ||
| + | Time_Keep | ||
| + | |||
| + | [PARSER] | ||
| + | Name json_auto | ||
| + | Format | ||
| + | Time_Key | ||
| + | Time_Format %Y-%m-%dT%H: | ||
| + | Time_Keep | ||
| + | |||
| + | # Парсер для многострочных логов GitLab | ||
| + | [PARSER] | ||
| + | Name gitlab_multiline_firstline | ||
| + | Format | ||
| + | Regex | ||
| + | |||
| + | [MULTILINE_PARSER] | ||
| + | Name gitlab_multiline | ||
| + | Type regex | ||
| + | Flush_Timeout 1000 | ||
| + | Rule " | ||
| + | Rule " | ||
| + | </ | ||
| + | |||
| + | === Установка === | ||
| + | |||
| + | <code bash> | ||
| + | # Создайте директорию для конфигов | ||
| + | $ mkdir -p fluentbit-docker | ||
| + | $ cd fluentbit-docker | ||
| + | |||
| + | # Создайте файлы конфигурации | ||
| + | $ cat > docker-compose.fluentbit.yml << ' | ||
| + | # [вставьте содержимое docker-compose.fluentbit.yml выше] | ||
| + | EOF | ||
| + | |||
| + | $ cat > fluent-bit.conf << ' | ||
| + | # [вставьте содержимое fluent-bit.conf выше] | ||
| + | EOF | ||
| + | |||
| + | $ cat > parsers.conf << ' | ||
| + | # [вставьте содержимое parsers.conf выше] | ||
| + | EOF | ||
| + | |||
| + | # Разверните стек | ||
| + | $ docker stack deploy -c docker-compose.fluentbit.yml fluentbit | ||
| + | </ | ||
| + | |||
| + | === Проверка работы === | ||
| + | |||
| + | <code bash> | ||
| + | # Проверьте сервисы | ||
| + | docker service ls | ||
| + | |||
| + | # Посмотрите логи Fluent-Bit | ||
| + | docker service logs fluentbit_fluent-bit | ||
| + | |||
| + | # Проверьте, | ||
| + | docker exec -it $(docker ps -q -f name=fluentbit) ls -la / | ||
| + | </ | ||