Конфигурация модуля fluent-bit
После установки для корректной работы модуля fluent-bit выполните следующие настройки:
-
Отредактируйте юнит-файл systemd
/lib/systemd/system/fluent-bit.serviceдля службыfluent-bit: в полеExecStart, где указывается команда для запуска службы, замените.confна.yaml:Пример файла:
[Unit] Description=Fluent Bit Documentation=https://docs.fluentbit.io/manual/ Requires=network.target After=network.target [Service] Type=simple EnvironmentFile=-/etc/sysconfig/fluent-bit EnvironmentFile=-/etc/default/fluent-bit ExecStart=/opt/fluent-bit/bin/fluent-bit -c //etc/fluent-bit/fluent-bit.yaml Restart=always [Install] WantedBy=multi-user.target
-
Создайте конфигурационные файлы службы fluent-bit:
-
/etc/fluent-bit/fluent-bit.yaml— главный файл конфигурации службы fluent-bit, который определяет параметры и настройки для сбора и передачи данных.Пример файла:
--- service: flush: 1 daemon: Off log_level: info parsers_file: parsers-audit-osmax-core.conf plugins_file: plugins.conf http_server: Off http_listen: 0.0.0.0 http_port: 2020 includes: - pipeline-inputs.yaml - pipeline-filters.yaml - pipeline-outputs.yamlГде:
-
service— служебный раздел, определяющий настройки службы fluent-bit:-
flush— интервал сброса; -
daemon— режим демона; -
log_level— уровень журналирования; -
parsers_file— файл с парсером; -
plugins_file— файл с плагинам; -
http_server— настройки HTTP-сервера; -
http_listen— адрес прослушивания; -
http_port— порт.
-
-
includes— файлы конфигурации, включенные в основной файл конфигурации:-
pipeline-inputs.yaml— файл, описывающий источники входных данных; -
pipeline-filters.yaml— файл, содержащий фильтры, применяющиеся к входящим данным для их обработки и преобразования; -
pipeline-outputs.yaml— файл, в котором указываются конечные точки, куда должны быть отправлены обработанные данные после прохождения через фильтры.
-
-
-
/etc/fluent-bit/parsers-audit-osmax-core.conf— файл для настройки парсеров, которые выполняют разбор (парсинг) логов аудита.Пример файла:
[PARSER] Name audit-osmax-core Format json Time_Key timestamp Time_Format %Y-%m-%dT%H:%M:%S.%L%zГде:
-
[PARSER]— секция, в которой задаются настройки используемых парсеров:-
Name— имя парсера, который используется для анализа соответствующих записей при обработке данных журнала; -
Format— формат входных данных для парсера; -
Time_Key— ключ во входных данных, который содержит информацию о времени; -
Time_Format— формат времени, используемый для разбора временных меток.
-
-
-
/etc/fluent-bit/pipeline-inputs.yaml— файл, описывающий источники входных данных.Пример файла:
--- pipeline: inputs: - name: tail path: /app/inno-osmax/audit/osmax/core/audit-osmax-core.log db: /app/inno-osmax/audit/osmax/core/audit-osmax-core-fluent-bit.db parser: audit-osmax-coreГде:
-
inputs— список источников данных, из которых Fluent Bit читает информацию;-
name— тип входного источника данных; -
path— путь к файлу журнала, из которого Fluent Bit считывает данные; -
db— путь к базе данных, используемой Fluent Bit для хранения состояния чтения файла журнала; -
parser— парсер, который используется для обработки данных из указанного файла журнала.
-
-
-
/etc/fluent-bit/pipeline-filters.yaml— файл, содержащий фильтры, которые применяются к входящим данным для их обработки и преобразования.Пример файла:
--- pipeline: filters: - name: record_modifier match: '*' Allowlist_key: - correlationId - type - code - object.id - object.name - class - message - initiator.sub - ipAddress - context.sessionId - context.url - context.method - context.traceId - context.spanId - additionalParams.action - additionalParams.сomponentName - additionalParams.collectionId - additionalParams.collectionName - additionalParams.configurationId - additionalParams.configurationName - additionalParams.configurationPackageName - additionalParams.configurationVersionId - additionalParams.configurationVersionName - additionalParams.datasourceName - additionalParams.roleName - additionalParams.userName - additionalParams.trigger - additionalParams.installation - additionalParams.minion - additionalParams.store - additionalParams.formula - additionalParams.fileName - additionalParams.turn - additionalParams.object - additionalParams.format - additionalParams.relativeConfigurationId - additionalParams.reportName - additionalParams.user - additionalParams.fqdn - additionalParams.hostName - additionalParams.mac - additionalParams.salt_file_name - additionalParams.salt_file_status - additionalParams.import_result - additionalParams.protocol - additionalParams.softName - scmCategory - name: modify match: '*' condition: Key_Does_Not_Exist object.name add: object.name "" - name: modify match: '*' condition: Key_Does_Not_Exist scmCategory add: scmCategory "" - name: modify match: '*' add: initiator.channel <customer-channel> add: deploymentContext.namespace <customer-namespace> add: deploymentContext.podName <customer-podName> - name: nest match: '*' operation: nest wildcard: object.* nest_under: object remove_prefix: object. - name: nest match: '*' operation: nest wildcard: initiator.* nest_under: initiator remove_prefix: initiator. - name: nest match: '*' operation: nest wildcard: context.* nest_under: context remove_prefix: context. - name: nest match: '*' operation: nest wildcard: deploymentContext.* nest_under: deploymentContext remove_prefix: deploymentContext. - name: nest match: '*' operation: nest wildcard: additionalParams.* nest_under: additionalParams remove_prefix: additionalParams. - name: modify match: '*' copy: message operation copy: message title add: infoSystemCode 2158 add: infoSystemId SCMM add: version 1.0 add: mandatory true add: ipNearbyNode <customer-ipNearbyNode> add: ipRecepient <customer-ipRecepient> - name: modify match: '*' condition: Key_Exists exception hard_copy: exception messageГде:
-
record_modifier— фильтр, который используется для изменения или модификации записей журналов, например, для добавления, изменения или удаление полей в записях журналов; -
modify— фильтр, который также используется для изменения или модификации записей журналов, например, для изменения значений полей, удаления или переименования полей и выполнения других подобных операций; -
nest— фильтр, который используется для вложения полей журнальных записей в другие поля.
-
-
/etc/fluent-bit/pipeline-outputs.yaml— файл, в котором указываются конечные точки, куда должны быть отправлены обработанные данные после прохождения через фильтры.Пример файла:
--- pipeline: outputs: - name: kafka match: '*' brokers: 10.31.1.9:9092 topics: audit message_key_field: correlationId timestamp_key: timestamp timestamp_format: iso8601Где:
-
outputs— список выходных потоков данных;-
name— тип выходного потока данных; -
match— параметр, который определяет, какие данные отправляются в указанный выходной поток; -
brokers— переменная, содержащая адреса брокеров Kafka, к которым подключается Fluent Bit для отправки данных; -
topics— переменная, определяющая имя темы Kafka, в которую отправляются данные; -
message_key_field— поле в сообщении, которое используется в качестве ключа (key) для Kafka-сообщения; -
timestamp_key— поле в сообщении, которое используется для временной метки (timestamp) Kafka-сообщения; -
timestamp_format— формат временной метки сообщения.
-
-