<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://178.140.10.58:8080/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://178.140.10.58:8080/feed.php">
        <title>Библиотека знаний - software:monitoring:fluent-bit</title>
        <description>Заметки IT программиста</description>
        <link>http://178.140.10.58:8080/</link>
        <image rdf:resource="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-17T13:37:21+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:docker-swarm"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:gitlab"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:multiline"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Библиотека знаний</title>
        <link>http://178.140.10.58:8080/</link>
        <url>http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:docker-swarm">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-25T23:19:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Настройка логов GitLab в Docker Swarm</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:docker-swarm</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;настройка_логов_gitlab_в_docker_swarm&quot;&gt;Настройка логов GitLab в Docker Swarm&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u043e\u0433\u043e\u0432 GitLab \u0432 Docker Swarm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u043b\u043e\u0433\u043e\u0432_gitlab_\u0432_docker_swarm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-68&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit2&quot; id=&quot;docker-composefluentbityml&quot;&gt;docker-compose.fluentbit.yml&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co3&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;3.8&#039;
&lt;span class=&quot;co4&quot;&gt;
services&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  fluent-bit&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;fluent/fluent-bit:latest&lt;span class=&quot;co3&quot;&gt;
    restart&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;always&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      TZ&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;Europe/Moscow&#039;&lt;span class=&quot;co4&quot;&gt;
    configs&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      - source&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;fluent-bit-conf&lt;span class=&quot;co3&quot;&gt;
        target&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/fluent-bit/etc/fluent-bit.conf&lt;span class=&quot;co3&quot;&gt;
      - source&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;parsers-conf&lt;span class=&quot;co3&quot;&gt;
        target&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/fluent-bit/etc/parsers.conf&lt;span class=&quot;co4&quot;&gt;
    volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      &lt;span class=&quot;co1&quot;&gt;# Монтируем директорию с контейнерами Docker&lt;/span&gt;
      - /var/lib/docker/containers:/var/lib/docker/containers:ro
      &lt;span class=&quot;co1&quot;&gt;# Монтируем Docker socket для получения метаданных&lt;/span&gt;
      - /var/run/docker.sock:/var/run/docker.sock:ro
      &lt;span class=&quot;co1&quot;&gt;# Для отслеживания позиции в файлах&lt;/span&gt;
      - fluent-bit-state:/tail-db&lt;span class=&quot;co4&quot;&gt;
    networks&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - localnetwork
    &lt;span class=&quot;co4&quot;&gt;
    deploy&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      mode&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;global  &lt;span class=&quot;co1&quot;&gt;# Запускаем на каждом узле Swarm&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
      resources&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
        limits&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
          memory&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;300M&lt;span class=&quot;co4&quot;&gt;
        reservations&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
          memory&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;100M
&lt;span class=&quot;co4&quot;&gt;
    logging&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;json-file&amp;quot;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
      options&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        max-size&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;10m&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        max-file&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;3&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
volumes&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  fluent-bit-state&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
configs&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  fluent-bit-conf&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    file&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;./fluent-bit.conf&lt;span class=&quot;co4&quot;&gt;
  parsers-conf&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    file&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;./parsers.conf
&lt;span class=&quot;co4&quot;&gt;
networks&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  localnetwork&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    external&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;docker-compose.fluentbit.yml&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker-composefluentbityml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;69-1342&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit3&quot; id=&quot;fluent-bitconf&quot;&gt;fluent-bit.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SERVICE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Flush         &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
    Log_Level     info
    Daemon        off
    Parsers_File  parsers.conf
    HTTP_Server   On
    HTTP_Listen   0.0.0.0
    HTTP_Port     &lt;span class=&quot;nu0&quot;&gt;2020&lt;/span&gt;
&amp;nbsp;
# Вход для Docker JSON логов
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/lib/docker/containers/*/*.log
    Tag               docker.*
    Parser            docker
    Docker_Mode       On
    Docker_Mode_Flush &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
    Mem_Buf_Limit     50MB
    Skip_Long_Lines   On
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    DB                /tail-db/docker.db
    DB.sync           normal
&amp;nbsp;
# Парсинг JSON логов
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          parser
    Match         docker.*
    Key_Name      log
    Parser        json_auto
    Reserve_Data  On
&amp;nbsp;
# Добавление Docker метаданных
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          kubernetes
    Match         docker.*
    Kube_Tag_Prefix docker.var.log.containers.
    Merge_Log     On
    Merge_Log_Key log_processed
    K8S-Logging.Parser On
    K8S-Logging.Exclude On
&amp;nbsp;
# Альтернативный фильтр для Docker метаданных &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;если kubernetes не работает&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          nest
    Match         docker.*
    Operation     lift
    Nested_under  log_processed
    Add_prefix    log_
&amp;nbsp;
# Обогащение логов
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          modify
    Match         docker.*
    Add           environment production
    Add           cluster docker_swarm
    Add           log_source docker_json
&amp;nbsp;
# Выход для отладки
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;OUTPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name        stdout
    Match       *
    Format      json_lines
&amp;nbsp;
# Пример выхода в Elasticsearch
# &lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;OUTPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
#     Name        es
#     Match       *
#     Host        192.168.1.10
#     Port        &lt;span class=&quot;nu0&quot;&gt;9200&lt;/span&gt;
#     Index       docker-logs
#     Type        _doc&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;fluent-bit.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fluent-bitconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1343-3185&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit4&quot; id=&quot;parsersconf&quot;&gt;parsers.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name        docker
    Format      json
    Time_Key    time
    Time_Format %Y-%m-%dT%H:%M:%S.%LZ
    Time_Keep   On
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name        json_auto
    Format      json
    Time_Key    time
    Time_Format %Y-%m-%dT%H:%M:%S.%LZ
    Time_Keep   On
&amp;nbsp;
# Парсер для многострочных логов GitLab
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name        gitlab_multiline_firstline
    Format      regex
    Regex       ^&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;time&amp;quot;&lt;/span&gt;:&lt;span class=&quot;st0&quot;&gt;&amp;quot;\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MULTILINE_PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          gitlab_multiline
    Type          regex
    Flush_Timeout &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
    Rule          &lt;span class=&quot;st0&quot;&gt;&amp;quot;start_state&amp;quot;&lt;/span&gt;  &lt;span class=&quot;st0&quot;&gt;&amp;quot;^{&amp;quot;&lt;/span&gt;time&lt;span class=&quot;st0&quot;&gt;&amp;quot;:&amp;quot;&lt;/span&gt;\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;T\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;:\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;:\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\.\d+Z&lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;cont&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    Rule          &amp;quot;&lt;/span&gt;cont&lt;span class=&quot;st0&quot;&gt;&amp;quot;         &amp;quot;&lt;/span&gt;^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?!&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;time&amp;quot;&lt;/span&gt;:&lt;span class=&quot;st0&quot;&gt;&amp;quot;\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z).*&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cont&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;parsers.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;parsersconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3186-4000&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit5&quot; id=&quot;установка&quot;&gt;Установка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Создайте директорию для конфигов&lt;/span&gt;
$ &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; fluentbit-docker
$ &lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; fluentbit-docker
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Создайте файлы конфигурации&lt;/span&gt;
$ &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; docker-compose.fluentbit.yml &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt; &#039;EOF&#039;
# [вставьте содержимое docker-compose.fluentbit.yml выше]
EOF&lt;/span&gt;
&amp;nbsp;
$ &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; fluent-bit.conf &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt; &#039;EOF&#039;
# [вставьте содержимое fluent-bit.conf выше]
EOF&lt;/span&gt;
&amp;nbsp;
$ &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; parsers.conf &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt; &#039;EOF&#039;
# [вставьте содержимое parsers.conf выше]
EOF&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Разверните стек&lt;/span&gt;
$ docker stack deploy &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; docker-compose.fluentbit.yml fluentbit&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4001-4650&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit6&quot; id=&quot;проверка_работы&quot;&gt;Проверка работы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Проверьте сервисы&lt;/span&gt;
docker service &lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Посмотрите логи Fluent-Bit&lt;/span&gt;
docker service logs fluentbit_fluent-bit
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Проверьте, что Fluent-Bit видит файлы&lt;/span&gt;
docker &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-it&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;docker &lt;span class=&quot;kw2&quot;&gt;ps&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-q&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;name&lt;/span&gt;=fluentbit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;docker&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;containers&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0440\u0430\u0431\u043e\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4651-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:gitlab">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-25T23:19:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Fluent-Bit Gitlab</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:gitlab</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;fluent-bit_gitlab&quot;&gt;Fluent-Bit Gitlab&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
fluent-bit.conf
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SERVICE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Flush         &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
    Log_Level     info
    Daemon        off
    Parsers_File  parsers.conf
    HTTP_Server   On
    HTTP_Listen   0.0.0.0
    HTTP_Port     &lt;span class=&quot;nu0&quot;&gt;2020&lt;/span&gt;
&amp;nbsp;
# Вход для JSON логов GitLab
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/gitaly/current
    Tag               gitlab.gitaly
    Parser            json
    DB                /tail-db/gitaly.db
    Mem_Buf_Limit     50MB
    Skip_Long_Lines   On
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/sidekiq/current
    Tag               gitlab.sidekiq
    Parser            json
    DB                /tail-db/sidekiq.db
    Mem_Buf_Limit     50MB
    Skip_Long_Lines   On
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/gitlab-rails/production_json.log
    Tag               gitlab.rails.json
    Parser            json
    DB                /tail-db/rails_json.db
    Mem_Buf_Limit     50MB
    Skip_Long_Lines   On
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/gitlab-rails/sidekiq_client.log
    Tag               gitlab.sidekiq_client
    Parser            json
    DB                /tail-db/sidekiq_client.db
    Mem_Buf_Limit     50MB
    Skip_Long_Lines   On
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/gitlab-workhorse/current
    Tag               gitlab.workhorse
    Parser            json
    DB                /tail-db/workhorse.db
    Mem_Buf_Limit     50MB
    Skip_Long_Lines   On
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
# Вход для многострочных текстовых логов &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;исключения&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/gitlab-rails/production.log
    Tag               gitlab.rails.text
    Parser            gitlab_multiline
    DB                /tail-db/rails_text.db
    Mem_Buf_Limit     50MB
    Multiline         On
    Parser_Firstline  gitlab_multiline_firstline
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
# Вход для логов nginx
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/nginx/gitlab_access.log
    Tag               gitlab.nginx
    Parser            nginx
    DB                /tail-db/nginx.db
    Mem_Buf_Limit     50MB
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
# Вход для логов gitlab-exporter
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name              tail
    Path              /var/log/gitlab/gitlab-exporter/current
    Tag               gitlab.exporter
    Parser            gitlab_exporter
    DB                /tail-db/exporter.db
    Mem_Buf_Limit     50MB
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
# Обработка и обогащение логов
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          parser
    Match         gitlab.*
    Key_Name      log
    Parser        json
    Reserve_Data  On
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          nest
    Match         gitlab.*
    Operation     lift
    Nested_under  log
    Add_prefix    log_
&amp;nbsp;
# Добавление метаданных Docker Swarm
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name          modify
    Match         gitlab.*
    Add           environment production
    Add           service gitlab
    Add           cluster docker_swarm
&amp;nbsp;
# Выход в stdout для отладки
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;OUTPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name        stdout
    Match       *
    Format      json_lines
&amp;nbsp;
# Пример выхода в Elasticsearch &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;раскомментировать при необходимости&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
# &lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;OUTPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
#     Name        es
#     Match       gitlab.*
#     Host        192.168.1.10  # Ваш Elasticsearch
#     Port        &lt;span class=&quot;nu0&quot;&gt;9200&lt;/span&gt;
#     Index       gitlab-logs
#     Type        _doc
#     Retry_Limit False&lt;/pre&gt;

&lt;p&gt;
parsers.conf
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name        json
    Format      json
    Time_Key    time
    Time_Format %Y-%m-%dT%H:%M:%S.%LZ
    Time_Keep   On
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name        nginx
    Format      regex
    Regex       ^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;remote&amp;gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^ &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;host&amp;gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^ &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;user&amp;gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^ &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;time&amp;gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^\&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;\&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;(?&amp;lt;method&amp;gt;\S+)(?: +(?&amp;lt;path&amp;gt;[^\&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;*?&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?: +\S*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;?&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;?&lt;span class=&quot;st0&quot;&gt;&amp;quot; (?&amp;lt;code&amp;gt;[^ ]*) (?&amp;lt;size&amp;gt;[^ ]*)(?: &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;referer&amp;gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^\&lt;span class=&quot;st0&quot;&gt;&amp;quot;]*)&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;(?&amp;lt;agent&amp;gt;[^\&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;)?$
    Time_Key    time
    Time_Format %d/%b/%Y:%H:%M:%S %z
    Time_Keep   On
&amp;nbsp;
[PARSER]
    Name        gitlab_exporter
    Format      regex
    Regex       ^(?&amp;lt;time&amp;gt;\d{4}-\d{2}-\d{2}_\d{2}:\d{2}:\d{2}\.\d+)\s+(?&amp;lt;message&amp;gt;.*)$
    Time_Key    time
    Time_Format %Y-%m-%d_%H:%M:%S.%L
    Time_Keep   On
&amp;nbsp;
[PARSER]
    Name        gitlab_multiline_firstline
    Format      regex
    Regex       ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z\s+\S+\s+\[[^\]]+\]\s+#.*$|^[A-Z][a-z]+::[A-Z][a-zA-Z]+.*$
&amp;nbsp;
[MULTILINE_PARSER]
    Name          gitlab_multiline
    Type          regex
    Flush_Timeout 1000
    Rule          &amp;quot;&lt;/span&gt;start_state&lt;span class=&quot;st0&quot;&gt;&amp;quot;  &amp;quot;&lt;/span&gt;^\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;T\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;:\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;:\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\.\d+Z\s+\S+\s+\&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^\&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;+\&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;\s+#.*$|^&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;A-Z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;a-z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;+::&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;A-Z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;a-zA-Z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;+.*$&lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;cont&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    Rule          &amp;quot;&lt;/span&gt;cont&lt;span class=&quot;st0&quot;&gt;&amp;quot;         &amp;quot;&lt;/span&gt;^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?!\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;T\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;:\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;:\d&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\.\d+Z\s+\S+\s+\&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^\&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;+\&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;\s+#.*$|^&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;A-Z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;a-z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;+::&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;A-Z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;a-zA-Z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;+.*$&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.*&lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;cont&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:multiline">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-25T23:19:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Обработка многострочных логов</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:multiline</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;обработка_многострочных_логов&quot;&gt;Обработка многострочных логов&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0445 \u043b\u043e\u0433\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0445_\u043b\u043e\u0433\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-72&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit2&quot; id=&quot;fluent-bitconf&quot;&gt;fluent-bit.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SERVICE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    flush        &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
    log_level    info
    parsers_file parsers_multiline.conf
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    name             tail
    path             test.log
    read_from_head   true
    multiline.parser multiline-regex-test
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    name             parser
    match            *
    key_name         log
    parser           named-capture-test
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;OUTPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    name             stdout
    match            *&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;fluent-bit.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fluent-bitconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;73-528&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit3&quot; id=&quot;parsers_multilineconf&quot;&gt;parsers_multiline.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MULTILINE_PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    name          multiline-regex-test
    type          regex
    flush_timeout &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
    #
    # Regex rules for multiline parsing
    # ---------------------------------
    #
    # configuration hints:
    #
    #  - first state always has the name: start_state
    #  - every field in the rule must be inside double quotes
    #
    # rules |   state name  | regex pattern                  | next state
    # ------|---------------|--------------------------------------------
    rule      &lt;span class=&quot;st0&quot;&gt;&amp;quot;start_state&amp;quot;&lt;/span&gt;   &lt;span class=&quot;st0&quot;&gt;&amp;quot;/([a-zA-Z]+ \d+ \d+\:\d+\:\d+)(.*)/&amp;quot;&lt;/span&gt;  &lt;span class=&quot;st0&quot;&gt;&amp;quot;cont&amp;quot;&lt;/span&gt;
    rule      &lt;span class=&quot;st0&quot;&gt;&amp;quot;cont&amp;quot;&lt;/span&gt;          &lt;span class=&quot;st0&quot;&gt;&amp;quot;/^\s+at.*/&amp;quot;&lt;/span&gt;                     &lt;span class=&quot;st0&quot;&gt;&amp;quot;cont&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;PARSER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name named-capture-test
    Format regex
    Regex /^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;date&amp;gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;a-zA-Z&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;+ \d+ \d+\:\d+\:\d+&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;message&amp;gt;.*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;/m&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;parsers_multiline.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;parsers_multilineconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;529-1347&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit4&quot; id=&quot;testlog&quot;&gt;test.log&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;single line...
Dec 14 06:41:08 Exception in thread &amp;quot;main&amp;quot; java.lang.RuntimeException: Something has gone wrong, aborting!
    at com.myproject.module.MyProject.badMethod(MyProject.java:22)
    at com.myproject.module.MyProject.oneMoreMethod(MyProject.java:18)
    at com.myproject.module.MyProject.anotherMethod(MyProject.java:14)
    at com.myproject.module.MyProject.someMethod(MyProject.java:10)
    at com.myproject.module.MyProject.main(MyProject.java:6)
another line...&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;$ fluent-bit -c fluent-bit.conf

[0] tail.0: [1669160706.737650473, {&amp;quot;log&amp;quot;=&amp;gt;&amp;quot;single line...
&amp;quot;}]
[1] tail.0: [1669160706.737657687, {&amp;quot;date&amp;quot;=&amp;gt;&amp;quot;Dec 14 06:41:08&amp;quot;, &amp;quot;message&amp;quot;=&amp;gt;&amp;quot;Exception in thread &amp;quot;main&amp;quot; java.lang.RuntimeException: Something has gone wrong, aborting!
    at com.myproject.module.MyProject.badMethod(MyProject.java:22)
    at com.myproject.module.MyProject.oneMoreMethod(MyProject.java:18)
    at com.myproject.module.MyProject.anotherMethod(MyProject.java:14)
    at com.myproject.module.MyProject.someMethod(MyProject.java:10)
    at com.myproject.module.MyProject.main(MyProject.java:6)
&amp;quot;}]
[2] tail.0: [1669160706.737657687, {&amp;quot;log&amp;quot;=&amp;gt;&amp;quot;another line...
&amp;quot;}]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;test.log&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;testlog&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1348-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
