<?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</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-16T23:30:28+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit-fluentd-loki-grafana"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit-loki-grafana"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:prometheus"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:promtail-loki-grafana"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:monitoring:promtail"/>
            </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-fluentd-loki-grafana">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-24T23:50:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Docker Swarm + Loki + Fluent Bit + Fluentd + Grafana</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit-fluentd-loki-grafana</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:loki&amp;amp;do=showtag&amp;amp;tag=%5Bloki&quot; class=&quot;wikilink1&quot; title=&quot;tag:loki&quot; rel=&quot;tag&quot;&gt;[loki&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:docker&amp;amp;do=showtag&amp;amp;tag=docker&quot; class=&quot;wikilink1&quot; title=&quot;tag:docker&quot; rel=&quot;tag&quot;&gt;docker&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:swarm&amp;amp;do=showtag&amp;amp;tag=swarm&quot; class=&quot;wikilink1&quot; title=&quot;tag:swarm&quot; rel=&quot;tag&quot;&gt;swarm&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:fluent-bit&amp;amp;do=showtag&amp;amp;tag=fluent-bit&quot; class=&quot;wikilink1&quot; title=&quot;tag:fluent-bit&quot; rel=&quot;tag&quot;&gt;fluent-bit&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:fluentd&amp;amp;do=showtag&amp;amp;tag=fluentd&quot; class=&quot;wikilink1&quot; title=&quot;tag:fluentd&quot; rel=&quot;tag&quot;&gt;fluentd&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:grafana&amp;amp;do=showtag&amp;amp;tag=grafana%5D&quot; class=&quot;wikilink1&quot; title=&quot;tag:grafana&quot; rel=&quot;tag&quot;&gt;grafana]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;docker_swarm_loki_fluent_bit_fluentd_grafana&quot;&gt;Docker Swarm + Loki + Fluent Bit + Fluentd + Grafana&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://178.140.10.58:8080/lib/exe/detail.php?id=software%3Amonitoring%3Afluent-bit-fluentd-loki-grafana&amp;amp;media=software:0_wgvd0jg6oc2wp4rx.webp&quot; class=&quot;media&quot; title=&quot;software:0_wgvd0jg6oc2wp4rx.webp&quot;&gt;&lt;img src=&quot;http://178.140.10.58:8080/lib/exe/fetch.php?w=600&amp;amp;tok=9ca66d&amp;amp;media=software:0_wgvd0jg6oc2wp4rx.webp&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Docker Swarm + Loki + Fluent Bit + Fluentd + Grafana&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker_swarm_loki_fluent_bit_fluentd_grafana&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;57-171&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;версии&quot;&gt;Версии:&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:fluent-bit-loki-grafana:loki&quot; class=&quot;wikilink1&quot; title=&quot;software:fluent-bit-loki-grafana:loki&quot; data-wiki-id=&quot;software:fluent-bit-loki-grafana:loki&quot;&gt;grafana/loki:3.5.8&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; grafana/grafana:10.2.2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; fluent/fluent-bit:1.6.6&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; fluentd/fluentd:v1.19-1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0435\u0440\u0441\u0438\u0438:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0435\u0440\u0441\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;172-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit-loki-grafana">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-25T22:48:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Docker Swarm + Fluent Bit + Loki + Grafana</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit-loki-grafana</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:loki&amp;amp;do=showtag&amp;amp;tag=%5Bloki&quot; class=&quot;wikilink1&quot; title=&quot;tag:loki&quot; rel=&quot;tag&quot;&gt;[loki&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:docker&amp;amp;do=showtag&amp;amp;tag=docker&quot; class=&quot;wikilink1&quot; title=&quot;tag:docker&quot; rel=&quot;tag&quot;&gt;docker&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:swarm&amp;amp;do=showtag&amp;amp;tag=swarm&quot; class=&quot;wikilink1&quot; title=&quot;tag:swarm&quot; rel=&quot;tag&quot;&gt;swarm&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:fluent-bit&amp;amp;do=showtag&amp;amp;tag=fluent-bit&quot; class=&quot;wikilink1&quot; title=&quot;tag:fluent-bit&quot; rel=&quot;tag&quot;&gt;fluent-bit&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:grafana&amp;amp;do=showtag&amp;amp;tag=grafana%5D&quot; class=&quot;wikilink1&quot; title=&quot;tag:grafana&quot; rel=&quot;tag&quot;&gt;grafana]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;docker_swarm_fluent_bit_loki_grafana&quot;&gt;Docker Swarm + Fluent Bit + Loki + Grafana&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;Docker Swarm + Fluent Bit + Loki + Grafana&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker_swarm_fluent_bit_loki_grafana&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;49-106&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;версии&quot;&gt;Версии:&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:fluent-bit-loki-grafana:loki&quot; class=&quot;wikilink1&quot; title=&quot;software:fluent-bit-loki-grafana:loki&quot; data-wiki-id=&quot;software:fluent-bit-loki-grafana:loki&quot;&gt;grafana/loki:3.5.8&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; grafana/grafana:12.1.4&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit&quot; class=&quot;wikilink1&quot; title=&quot;software:monitoring:fluent-bit&quot; data-wiki-id=&quot;software:monitoring:fluent-bit&quot;&gt;fluent/fluent-bit:4.2.0&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0435\u0440\u0441\u0438\u0438:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0435\u0440\u0441\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;107-291&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;настройки&quot;&gt;Настройки&lt;/h2&gt;
&lt;div class=&quot;level2&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\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;292-323&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;loki_config&quot;&gt;[[ loki_config ]]&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co3&quot;&gt;auth_enabled&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;false
&lt;span class=&quot;co4&quot;&gt;
server&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  http_listen_port&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;3100
&lt;span class=&quot;co4&quot;&gt;
common&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  instance_addr&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;127.0.0.1&lt;span class=&quot;co3&quot;&gt;
  path_prefix&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/loki&lt;span class=&quot;co4&quot;&gt;
  storage&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
    filesystem&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      chunks_directory&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/loki/chunks&lt;span class=&quot;co3&quot;&gt;
      rules_directory&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/loki/rules&lt;span class=&quot;co3&quot;&gt;
  replication_factor&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1&lt;span class=&quot;co4&quot;&gt;
  ring&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
    kvstore&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;inmemory
&lt;span class=&quot;co4&quot;&gt;
schema_config&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  configs&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    - from&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;2020-10-24&lt;span class=&quot;co3&quot;&gt;
      store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;tsdb&lt;span class=&quot;co3&quot;&gt;
      object_store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;filesystem&lt;span class=&quot;co3&quot;&gt;
      schema&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;v13&lt;span class=&quot;co4&quot;&gt;
      index&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        prefix&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;index_&lt;span class=&quot;co3&quot;&gt;
        period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;24h
&lt;span class=&quot;co4&quot;&gt;
ruler&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  alertmanager_url&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;http://localhost:9093
&lt;span class=&quot;co4&quot;&gt;
limits_config&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  retention_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;720h&lt;span class=&quot;co3&quot;&gt;
  reject_old_samples&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true&lt;span class=&quot;co3&quot;&gt;
  reject_old_samples_max_age&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;720h&lt;span class=&quot;co3&quot;&gt;
  allow_structured_metadata&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true&lt;span class=&quot;co3&quot;&gt;
  max_query_length&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;721h
  &lt;span class=&quot;co4&quot;&gt;
ingester&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  lifecycler&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
    ring&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
      kvstore&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;inmemory&lt;span class=&quot;co3&quot;&gt;
      replication_factor&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1&lt;span class=&quot;co3&quot;&gt;
    final_sleep&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;0s&lt;span class=&quot;co3&quot;&gt;
  chunk_idle_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1h&lt;span class=&quot;co3&quot;&gt;
  max_chunk_age&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1h&lt;span class=&quot;co3&quot;&gt;
  chunk_target_size&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1048576&lt;span class=&quot;co3&quot;&gt;
  chunk_retain_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;30s
&lt;span class=&quot;co4&quot;&gt;
table_manager&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  retention_deletes_enabled&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true&lt;span class=&quot;co3&quot;&gt;
  retention_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;720h&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;[[ loki_config ]]&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;loki_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;324-1334&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;fluent_bit_config&quot;&gt;[[ fluent_bit_config ]]&lt;/h3&gt;
&lt;div class=&quot;level3&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
    storage.path              /var/log/flb-storage/
    storage.sync              normal
    storage.checksum          off
    storage.max_chunks_up     &lt;span class=&quot;nu0&quot;&gt;128&lt;/span&gt;
    storage.backlog.mem_limit 10M
    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;
&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
    Parser            docker
    Refresh_Interval  &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    #Ignore_Older      1h
    Docker_Mode       On
    Tag               docker.&amp;lt;file_name&amp;gt;
    Tag_Regex         &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;file_name&amp;gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;a-z0-9&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;-json.log
    Mem_Buf_Limit     50MB
    Skip_Long_Lines   On
    DB                /var/log/flb-storage/flb_db.db
    DB.sync           normal
    Storage.Type      filesystem
    Read_from_Head    true
&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              systemd
    Tag               host.*
    Systemd_Filter    _SYSTEMD_UNIT&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;docker.service&lt;/span&gt;
    DB                /var/log/flb-storage/flb_systemd.db
    Read_From_Tail    true
&amp;nbsp;
# Получаем метаданные контейнера через Lua
&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                lua
    match               docker.*
    script              /fluent-bit/bin/docker-metadata.lua
    call                enrich_with_docker_metadata
&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               docker.*
#     format              json
&amp;nbsp;
# Копируем нужные поля в docker.* ДО создания data.*
&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.*
    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.label_project project
    copy                docker.label_service service
    copy                docker.label_logging logging
    copy                docker.label_logging_jobname logging_jobname
&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              grep
    match             docker.*
    Exclude           docker.log ^$
    Exclude           docker.log ^\s\s+
    Exclude           docker.log ^\s*$
    Exclude           docker.log ^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;\r?\n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;?$
    Exclude           docker.log &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;.*fluent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.+
    Exclude           container_name &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;.*fluent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.+
&amp;nbsp;
# Создаем data.* ТОЛЬКО если logging &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; enabled&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                rewrite_tag
    match               docker.*
    rule                $logging ^enabled$ data.$container_id true
&amp;nbsp;
# Очищаем data.* - оставляем ТОЛЬКО нужные поля
&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                record_modifier
    match               data.*
    whitelist_key       log
    whitelist_key       started
    whitelist_key       hostname
    whitelist_key       state
    whitelist_key       labels
    whitelist_key       container_id
    whitelist_key       container_name
    whitelist_key       service_name
    whitelist_key       project
    whitelist_key       service
    whitelist_key       logging
    whitelist_key       logging_jobname
    whitelist_key       stream
&amp;nbsp;
# Добавляем метаданные 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               data.*
    set                 node_id $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;NODE_ID&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    set                 node_name $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;NODE_NAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    set                 host_name $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;NODE_NAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&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                loki
#     match               data.*
#     host                loki
#     port                &lt;span class=&quot;nu0&quot;&gt;3100&lt;/span&gt;
#     labels              job&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;docker_swarm, node_name=$node_name, container_id=$container_id, container_name=$container_name, service_name=$service_name, project=$project, service=$service&lt;/span&gt;
#     label_keys          $node_name,$container_id,$container_name,$service_name,$project,$service
#     line_format         json
#     auto_kubernetes_labels off
&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               data.*
    format              json&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 storage.path: определяет путь в контейнере, где будут храниться буферные файлы. Должен совпадать с точкой монтирования volume.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 storage.type filesystem: включает файловую буферизацию для input-плагина, обеспечивая сохранность данных при перезапусках .
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 storage.max_chunks_up: ограничивает количество чанков (блоков данных) в памяти, контролируя потребление RAM (по умолчанию ~256 МБ).
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 storage.backlog.mem_limit: задает лимит памяти для обработки неотправленных данных (backlog) после перезапуска.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 parser=PARSER
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 multiline.parser=MULTILINE_PARSER
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&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_config ]]&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fluent_bit_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1335-6556&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;fluent_bit_parser&quot;&gt;[[ fluent_bit_parser ]]&lt;/h3&gt;
&lt;div class=&quot;level3&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
    Time_Keep   On&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_parser ]]&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fluent_bit_parser&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;6557-6738&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;plugins&quot;&gt;Plugins&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Plugins&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;plugins&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;6739-6757&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit8&quot; id=&quot;docker_metadata&quot;&gt;docker_metadata&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
docker-metadata.lua
&lt;/p&gt;
&lt;pre class=&quot;code lua&quot;&gt;&lt;span class=&quot;co1&quot;&gt;-- https://github.com/fluent/fluent-bit/issues/1499 (@konstantin-kornienko)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;-- A few little tweak was made to parse Docker Swarm metadata with fluent-bit (@ziwon)&lt;/span&gt;
DOCKER_VAR_DIR &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;/var/lib/docker/containers/&#039;&lt;/span&gt;
DOCKER_CONTAINER_CONFIG_FILE &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;/config.v2.json&#039;&lt;/span&gt;
CACHE_TTL_SEC &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;-- Key-value pairs to get metadata.&lt;/span&gt;
DOCKER_CONTAINER_METADATA &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.container_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;Name&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.container_image&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;Image&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.container_started&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;StartedAt&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.hostname&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;Hostname&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.environment&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;Env&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:%[/?(.-)%]&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.labels&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;Labels&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:%{/?(.-)%}&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.state&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;State&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:%{/?(.-)%}&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;-- Additional metadata for Swarm&lt;/span&gt;
DOCKER_CONTAINER_CHILD_METADATA &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.environment&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)=/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;,&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.labels&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;,&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.state&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;:&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;?/?(.-)&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;?,&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
cache &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;-- Print table in a recursive way&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;-- https://gist.github.com/hashmal/874792&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; tprint &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tbl&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; indent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;not&lt;/span&gt; indent &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt; indent &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; k&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; v &lt;span class=&quot;kw2&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pairs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tbl&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
    formatting &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;string.rep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;  &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; indent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;..&lt;/span&gt; k &lt;span class=&quot;sy0&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;table&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
      &lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;formatting&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
      tprint&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; indent&lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
      &lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;formatting &lt;span class=&quot;sy0&quot;&gt;..&lt;/span&gt; v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;-- Apply regular expression map to the given string&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; apply_regex_map&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data_tbl&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; reg_tbl&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; func&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; str&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; str &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; key&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; regex &lt;span class=&quot;kw2&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pairs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;reg_tbl&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
        data_tbl&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; func&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;str&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; regex&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; key&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; regex &lt;span class=&quot;kw2&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pairs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;reg_tbl&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; tbl &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; k&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; v &lt;span class=&quot;kw2&quot;&gt;in&lt;/span&gt; func&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data_tbl&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; regex&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
        tbl&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;k&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; v
      &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
      data_tbl&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tbl
    &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; data_tbl
&lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;-- Get container id from tag&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; get_container_id_from_tag&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tag&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; tag&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;match&lt;span class=&quot;st0&quot;&gt;&#039;^[^%.]+%.([a-f0-9]+)$&#039;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;-- Gets metadata from config.v2.json file for container&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; get_container_metadata_from_disk&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;container_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; docker_config_file &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; DOCKER_VAR_DIR &lt;span class=&quot;sy0&quot;&gt;..&lt;/span&gt; container_id &lt;span class=&quot;sy0&quot;&gt;..&lt;/span&gt; DOCKER_CONTAINER_CONFIG_FILE
  fl &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;io.open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;docker_config_file&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;r&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; fl &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;nil&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;nil&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- parse json file and create record for cache&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;os.time&lt;/span&gt;&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;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; reg_match &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;match
  &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; reg_gmatch &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;gmatch
  &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; line &lt;span class=&quot;kw2&quot;&gt;in&lt;/span&gt; fl&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;lines&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;kw1&quot;&gt;do&lt;/span&gt;
    data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; apply_regex_map&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
      data&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
      DOCKER_CONTAINER_METADATA&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
      reg_match&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
      line
    &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; apply_regex_map&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
      data&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
      DOCKER_CONTAINER_CHILD_METADATA&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
      reg_gmatch
    &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
  fl&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;next&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;nil&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;nil&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; data
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; set_log_level&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;record&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; log_msg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;log&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; lower_msg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; log_msg&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;lower&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; lower_msg&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;find&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;level=error&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt; record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;stream&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;error&#039;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;elseif&lt;/span&gt; lower_msg&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;find&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;level=warn&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt; record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;stream&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;warning&#039;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;elseif&lt;/span&gt; lower_msg&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;find&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;level=info&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt; record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;stream&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;info&#039;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;elseif&lt;/span&gt; lower_msg&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;find&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;level=debug&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt; record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;stream&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;debug&#039;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;stream&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;info&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; enrich_with_docker_metadata&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tag&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timestamp&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; record&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;-- print(&amp;quot;LUA SCRIPT CALLED! Tag: &amp;quot; .. (tag or &amp;quot;nil&amp;quot;))&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- Get container id from tag&lt;/span&gt;
  container_id &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_container_id_from_tag&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tag&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;not&lt;/span&gt; container_id &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;-- print(&amp;quot;No container_id - skipping&amp;quot;)&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- Add container_id to record&lt;/span&gt;
  new_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; record
  new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.container_id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; container_id
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- Check if we have fresh cache record for container&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;local&lt;/span&gt; cached_data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cache&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;container_id&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; cached_data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;nil&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;os.time&lt;/span&gt;&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;sy0&quot;&gt;-&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;time&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; CACHE_TTL_SEC&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    cached_data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_container_metadata_from_disk&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;container_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    cache&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;container_id&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cached_data
    new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;source&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;disk&#039;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
    new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;source&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;cache&#039;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- Metadata found in cache or got from disk, enrich record&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; cached_data &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; key&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; regex &lt;span class=&quot;kw2&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pairs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DOCKER_CONTAINER_METADATA&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
      new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; key&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; regex &lt;span class=&quot;kw2&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pairs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DOCKER_CONTAINER_CHILD_METADATA&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
      new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- Extracted labels&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; cached_data &lt;span class=&quot;kw2&quot;&gt;and&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.labels&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.label_project&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.labels&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;com.docker.compose.project&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.label_service&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.labels&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;com.docker.compose.service&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.label_logging&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.labels&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;logging&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    new_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.label_logging_jobname&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cached_data&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;docker.labels&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;logging_jobname&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;end&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- Set log level based on log content&lt;/span&gt;
  set_log_level&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;new_record&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;-- print(&amp;quot;Returning enriched record&amp;quot;)&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timestamp&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; new_record
&lt;span class=&quot;kw1&quot;&gt;end&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;docker_metadata&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker_metadata&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6758-11546&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;docker_compose&quot;&gt;Docker Compose&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
monitoring
&lt;/p&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;&lt;span class=&quot;st0&quot;&gt;&amp;quot;3.8&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co3&quot;&gt;
x-logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co6&quot;&gt;&amp;amp;default-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;co3&quot;&gt;
    tag&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;{{.Name}}/{{.ImageName}}&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co3&quot;&gt;
x-labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co6&quot;&gt;&amp;amp;default-labels&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;enabled&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  logging_jobname&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;docker_swarm&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  monitoring&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
services&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  loki&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;grafana/loki:3.5.8&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;3100:3100&amp;quot;&lt;/span&gt;&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;loki_config&lt;span class=&quot;co3&quot;&gt;
        target&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/etc/loki/local-config.yaml&lt;span class=&quot;co4&quot;&gt;
    volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - loki_data:/loki&lt;span class=&quot;co3&quot;&gt;
    command&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;-config.file=/etc/loki/local-config.yaml&lt;span class=&quot;co4&quot;&gt;
    networks&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - monitoring&lt;span class=&quot;co4&quot;&gt;
    deploy&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
      placement&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
        constraints&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;          - node.role == manager&lt;span class=&quot;co3&quot;&gt;
    logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-logging&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    labels&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-labels&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      service&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;loki&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      component&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;logging&amp;quot;&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:4.2.0&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_config&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;fluent_bit_parser&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;co3&quot;&gt;
      - source&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;docker_metadata&lt;span class=&quot;co3&quot;&gt;
        target&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/fluent-bit/bin/docker-metadata.lua&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - NODE_ID=&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;.Node.ID&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
      - NODE_NAME=&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;.Node.Hostname&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    networks&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - monitoring&lt;span class=&quot;co4&quot;&gt;
    volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - flb_storage:/var/log/flb-storage/
      - /var/lib/docker/containers:/var/lib/docker/containers:ro&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;co3&quot;&gt;
    logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-logging&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    labels&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-labels&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      service&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;fluent-bit&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      component&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;logging&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
  grafana&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;grafana/grafana:12.1.4&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;3000:3000&amp;quot;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_SECURITY_ADMIN_USER=admin&lt;span class=&quot;co4&quot;&gt;
    volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - grafana_data:/var/lib/grafana&lt;span class=&quot;co4&quot;&gt;
    networks&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - monitoring&lt;span class=&quot;co4&quot;&gt;
    deploy&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
      placement&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
        constraints&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;          - node.role == manager&lt;span class=&quot;co3&quot;&gt;
    logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-logging&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    labels&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-labels&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      service&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;grafana&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      component&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;monitoring&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
configs&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  loki_config&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;span class=&quot;co4&quot;&gt;
  fluent_bit_config&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;span class=&quot;co4&quot;&gt;
  fluent_bit_parser&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;span class=&quot;co4&quot;&gt;
  docker_metadata&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;span class=&quot;co4&quot;&gt;
networks&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  monitoring&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;overlay
&lt;span class=&quot;co4&quot;&gt;
volumes&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  flb_storage&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;local&lt;span class=&quot;co4&quot;&gt;
  loki_data&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;local&lt;span class=&quot;co4&quot;&gt;
  grafana_data&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;local&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&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker_compose&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;11547-13825&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;встраивание_в_docker-compose&quot;&gt;Встраивание в docker-compose&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co3&quot;&gt;x-logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co6&quot;&gt;&amp;amp;default-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;co3&quot;&gt;
    tag&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;{{.Name}}/{{.ImageName}}&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co3&quot;&gt;
x-labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co6&quot;&gt;&amp;amp;default-labels&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;enabled&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  logging_jobname&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;docker_swarm&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  monitoring&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
services&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
  loki&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-logging&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    labels&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-labels&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      service&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;grafana&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      component&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;monitoring&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;\u0412\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 docker-compose&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435_\u0432_docker-compose&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;13826-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-06T21:00:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Fluent-Bit</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;fluent-bit&quot;&gt;Fluent-Bit&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://178.140.10.58:8080/lib/exe/detail.php?id=software%3Amonitoring%3Afluent-bit&amp;amp;media=software:monitoring:1696269380-fluent_bit_data_pipeline-2048x1247.webp&quot; class=&quot;media&quot; title=&quot;software:monitoring:1696269380-fluent_bit_data_pipeline-2048x1247.webp&quot;&gt;&lt;img src=&quot;http://178.140.10.58:8080/lib/exe/fetch.php?w=800&amp;amp;tok=f0d43f&amp;amp;media=software:monitoring:1696269380-fluent_bit_data_pipeline-2048x1247.webp&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
FluentBit собирает, парсит и фильтрует сообщения из контейнеров, сохраняя их в хранилище Loki. Конфигурационные файлы fluent-bit.conf и parsers.conf расположены в папке /var/log/flb-storage/.
&lt;/p&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&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fluent-bit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-408&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;встроенные_парсеры&quot;&gt;Встроенные парсеры&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 docker — поддерживает объединение больших записей логов, разделённых движком контейнера Docker.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 cri — обрабатывает запись лога, генерированную движком контейнера CRI-O, поддерживает объединение записей логов.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 go — обрабатывает записи логов, генерируемые приложением на языке Go, и выполняет объединение, если обнаружены мультистроковые сообщения.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 python — обрабатывает записи логов, генерируемые приложением на языке Python, и выполняет объединение, если обнаружены мультистроковые сообщения.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0441\u0435\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435_\u043f\u0430\u0440\u0441\u0435\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;409-1357&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;service&quot;&gt;Service&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Flush 5 — интервал (в секундах), через который Fluent Bit будет отправлять собранные данные (логи) в Loki;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Daemon Off — указывает, что Fluent Bit не будет работать в фоновом режиме (демоне);
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Parsers_File parsers.conf — задает файл, в котором находятся определения парсеров (форматов логов).
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Service&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;service&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1358-1858&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;input&quot;&gt;Input&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Name forward — тип входного плагина, используемого Fluent Bit для приема данных. В данном случае используется плагин forward, который позволяет принимать данные через сеть (протокол Fluentd Forward);
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Listen 0.0.0.0 — указывает на то, что Fluent Bit будет слушать на всех доступных сетевых интерфейсах;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Port 24224 — порт, на котором Fluent Bit принимает входящие данные.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&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;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name                tail
    Tag                 tenant.*
    Path                /var/log/containers/*_tenant2_webapp-*.log
    Docker_Mode         On
    Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Docker_Mode_Parser  container_firstline
    Parser              docker
    DB                  /var/log/flb-storage/flb_container.db
    Mem_Buf_Limit       50MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Rotate_Wait         &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
    storage.type        filesystem
    Read_from_Head      $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;READ_FROM_HEAD&lt;span class=&quot;br0&quot;&gt;&amp;#125;&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
     Tag                kube.*
     Path               /var/log/containers/*.log
     Parser             docker
     DB                 /var/log/flb_graylog.db
     DB.Sync            Normal
     Docker_Mode        On
     Buffer_Chunk_Size  512KB
     Buffer_Max_Size    5M
     Rotate_Wait        &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
     Mem_Buf_Limit      30MB
     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;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
     Name kubernetes
     Match kube.*
     Merge_Log On
     Merge_Log_Key log
     Keep_Log Off
     K8S-Logging.Parser On
     K8S-Logging.Exclude Off
     Annotations Off
     Labels On&lt;/pre&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;INPUT&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&gt;
    Name              tail
    Tag               kube.*
    Path              /var/log/containers/*.log
    DB                /var/log/flb_kubernetes.db
    Parser            docker
    Docker_Mode       On
    Mem_Buf_Limit     64MB
    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
    Tag                 application.*
    Exclude_Path        /var/log/containers/cloudwatch-agent*, /var/log/containers/fluent-bit*, /var/log/containers/aws-node*, /var/log/containers/kube-proxy*
    Path                /var/log/containers/*.log
    Docker_Mode         On
    Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Docker_Mode_Parser  container_firstline
    Parser              docker
    DB                  /var/fluent-bit/state/flb_container.db
    Mem_Buf_Limit       50MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Rotate_Wait         &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
    storage.type        filesystem
&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
    Tag                 user-api.*
    Path                /var/log/containers/user-api*.log
    Docker_Mode         On
    Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Docker_Mode_Parser  container_firstline_user
    Parser              docker
    DB                  /var/fluent-bit/state/flb_user_api.db
    Mem_Buf_Limit       50MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Rotate_Wait         &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
    storage.type        filesystem
    Read_from_Head      $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;READ_FROM_HEAD&lt;span class=&quot;br0&quot;&gt;&amp;#125;&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
  Tag                 application.*
  Exclude_Path        /var/log/containers/cloudwatch-agent*, /var/log/containers/fluent-bit*, /var/log/containers/aws-node*, /var/log/containers/kube-proxy*
  Path                /var/log/containers/*.log
  Docker_Mode         On
  Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
  Docker_Mode_Parser  container_firstline
  Parser              docker
  DB                  /var/fluent-bit/state/flb_container.db
  Mem_Buf_Limit       50MB
  Skip_Long_Lines     On
  Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  Rotate_Wait         &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
  Read_from_Head      Off
&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
  Tag                 application.*
  Path                /var/log/containers/fluent-bit*
  Parser              docker
  DB                  /var/fluent-bit/state/flb_log.db
  Mem_Buf_Limit       5MB
  Skip_Long_Lines     On
  Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  Read_from_Head      Off
&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
  Tag                 application.*
  Path                /var/log/containers/cloudwatch-agent*
  Multiline.parser    docker,cri
  # Docker_Mode         On
  # Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
  # Docker_Mode_Parser  cwagent_firstline
  #Parser              docker
  DB                  /var/fluent-bit/state/flb_cwagent.db
  rotate_wait         &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
  Mem_Buf_Limit       5MB
  Skip_Long_Lines     On
  Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  #Read_from_Head      true  
&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/containers/abc-*.log, /var/log/containers/def-*.log, /var/log/containers/ghi-*.log, /var/log/containers/jkl-*.log, /var/log/containers/mno-*.log
    Exclude_Path     /var/log/containers/aggregator-fluent-bit-*_logging_fluent-bit-*.log, /var/log/containers/aws-node*.log, /var/log/containers/collector-fluent-bit-*_logging_fluent-bit-*.log, /var/log/containers/kube-proxy*.log
    DB               /var/fluent-bit/state/flb_container.db
    multiline.parser docker, cri
    Tag              kube.*
    threaded         on
    Mem_Buf_Limit    32MB
    Skip_Long_Lines  On
    Skip_Empty_Lines On
    Refresh_Interval &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Rotate_Wait      &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&amp;nbsp;
    # Buffering &amp;amp; Storage &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;https://docs.fluentbit.io/manual/administration/buffering-and-storage#input-section-configuration&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    storage.type     filesystem&lt;/pre&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;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name tail
    Path /var/log/containers/*.log
    Docker_Mode On
    Docker_Mode_Parser python-multiline&lt;/pre&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;INPUT&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    Name             tail
    Path             /var/log/containers/*.log
    Parser           docker
    Tag              kube.*
    Refresh_Interval &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Mem_Buf_Limit    5MB
    Skip_Long_Lines  On
    DB               /tail-db/tail-containers-state.db
    DB.Sync          Normal
    Ignore_Older 2d
    Multiline On
    Multiline_Flush &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Parser_Firstline first_line&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;Input&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;input&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1859-7892&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;filter&quot;&gt;Filter&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Name parser — тип фильтра. Фильтр parser, который применяет парсеры для обработки данных;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Parser docker — задает парсер для Docker-логов;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Match _ — задает шаблон для сопоставления входящих данных с фильтром. Символ _ означает, что фильтр применяется ко всем входным данным;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Key_Name log — указывает, какое поле данных необходимо парсить. В данном случае поле с именем log;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Reserve_Data true — сохранение оригинальных данных после их обработки фильтром;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Preserve_Key false — после парсинга исходное поле (в данном случае log) будет удалено.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&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-docker-python
        type            regex
        flush_timeout &lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;
        # fluent-bit is not looking at the log field to run the regex below 
        key_content log
&amp;nbsp;
        # 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;/(\d+-\d+-\d+ \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;^((?!\d+-\d+-\d+ \d+:\d+:\d+,\d+).*)&amp;quot;&lt;/span&gt;    &lt;span class=&quot;st0&quot;&gt;&amp;quot;cont&amp;quot;&lt;/span&gt;&lt;/pre&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 python-multiline
    Format regex
    Regex /&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;time&amp;gt;\d+-\d+-\d+ \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;/
    Time_Key  time
    Time_Format %F %H:%M:%S,%L
    Input:&lt;/pre&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        springboot
    Format      regex
    Regex       &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;time&amp;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;1&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;1&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;1&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;1&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;1&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;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&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;level&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;number&amp;gt;\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;thread&amp;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;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;logger&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;message&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&gt;.*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;$
    Time_Key    time
    Time_Format %Y-%m-%d %H:%M:%S.%L
&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         docker
    Format       json
    Time_Key     time
    Time_Format  %Y-%m-%dT%H:%M:%S.%L
    Time_Keep    On
    # Command      |  Decoder | Field | Optional Action
    # &lt;span class=&quot;sy0&quot;&gt;=============&lt;/span&gt;|&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&lt;span class=&quot;re2&quot;&gt;=================|=================&lt;/span&gt;&lt;/span&gt;
    Decode_Field_As   escaped    log&lt;/pre&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;FILTER&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
        Name                parser
        Match               kube.*
        Key_Name            log
        Parser              parser_json
        Parser              parser_logs
&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   parser_logs
        Format regex
        Regex  ^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?&amp;lt;time_stamp&amp;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; \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;&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;environment&amp;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;hostname&amp;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;module&amp;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;line&amp;gt;\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;log_level&amp;gt;&lt;span class=&quot;re0&quot;&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&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;message&amp;gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;a-zA-Z0-&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt; _.,:&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;st0&quot;&gt;&#039;&amp;quot;!¡]*)$
        Time_Key time
        Time_Format %d/%b/%Y:%H:%M:%S %z
    [PARSER]
        Name   parser_json
        Format regex
        Regex  ^(?&amp;lt;time_stamp&amp;gt;\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}): (?&amp;lt;environment&amp;gt;.*?): (?&amp;lt;hostname&amp;gt;.*?): (?&amp;lt;module&amp;gt;.*?)::(?&amp;lt;line&amp;gt;\d+) (?&amp;lt;log_level&amp;gt;[A-Z]+): (?&amp;lt;message&amp;gt;[^{]*)(?&amp;lt;message_additional&amp;gt;{.*)$
        Time_Key time
        Time_Format %d/%b/%Y:%H:%M:%S %z
        Decode_Field_As   escaped_utf8       message_additional    do_next
        Decode_Field_As   escaped            message_additional    do_next
        Decode_Field_As   json               message_additional
    [PARSER]
        Name        container_firstline
        Format      regex
        Regex       (?&amp;lt;log&amp;gt;(?&amp;lt;=&amp;quot;log&amp;quot;:&amp;quot;)\S(?!\.).*?)(?&amp;lt;!\\)&amp;quot;.*(?&amp;lt;stream&amp;gt;(?&amp;lt;=&amp;quot;stream&amp;quot;:&amp;quot;).*?)&amp;quot;.*(?&amp;lt;time&amp;gt;\d{4}-\d{1,2}-\d{1,2}T\d{2}:\d{2}:\d{2}\.\w*).*(?=})
        Time_Key    time
        Time_Format %Y-%m-%dT%H:%M:%S.%LZ
    [PARSER]
        Name        docker
        Format      json
        Time_Key    @timestamp
        Time_Format %Y-%m-%dT%H:%M:%S.%L
        Time_Keep   Off&lt;/span&gt;&lt;/pre&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
    type          regex
    flush_timeout &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    # 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;/(Dec \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;&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;Filter&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;filter&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;7893-12175&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;output&quot;&gt;Output&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Name grafana-loki — плагин для отправки данных в систему Grafana Loki, которая занимается сбором и хранением логов;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Match * — отправляет все данные (все потоки логов);
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Url ${LOKI_&lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;} — &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;, куда отправляются данные, задан в файле docker-compose.yml. LOKI_&lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;=&lt;a href=&quot;http://loki:3100/loki/api/v1/push&quot; class=&quot;urlextern&quot; title=&quot;http://loki:3100/loki/api/v1/push&quot; rel=&quot;ugc nofollow&quot;&gt;http://loki:3100/loki/api/v1/push&lt;/a&gt;;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 RemoveKeys container_id — удаляет ключи container_id из отправляемых данных, чтобы не отправлять ненужные поля в Loki;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Labels {service_name=&amp;quot;planr&amp;quot;} — добавляет статическую метку (label) service_name=&amp;quot;planr&amp;quot; к каждому потоку логов. Эти метки используются в Loki для облегчения поиска и фильтрации логов;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 LabelKeys level, source — указывает, какие ключи из логов использовать для динамических меток. В данном случае метки будут добавляться на основе полей level (уровень логов) и source (источник данных);
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 BatchWait 1s — Fluent Bit ждет 1 секунду перед отправкой данных в батче;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 BatchSize 1001024 — максимальный размер батча для отправки данных — 1 МБ (1001024 байта);
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 LineFormat json — отправляет данные в формате JSON.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Name file - Плагин вывода file позволяет записывать данные, полученные через плагин ввода в файл;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Match * — отправляет все данные (все потоки логов);
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Path - путь к каталогу для хранения файлов.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&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;
  Daemon                    Off
  Log_Level                 info
  Parsers_File              parsers.conf
  Parsers_File              custom_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;
&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/containers/*.log
  Parser                    docker
  Tag                       kube.*
  Mem_Buf_Limit             4MB
  Skip_Long_Lines           On
  Skip_Empty_Lines          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                      kubernetes
  Match                     kube.*
  Merge_Log                 On
  Keep_Log                  On
  K8S-Logging.Parser        On
  K8S-Logging.Exclude       On
&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                      loki
  Match                     kube.*
  Host                      loki.logging.svc.cluster.local
  Port                      &lt;span class=&quot;nu0&quot;&gt;3100&lt;/span&gt;
  Labels                    job&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;fluent, namespace=$kubernetes&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;namespace_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;, pod&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;$kubernetes&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;pod_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;, container&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;$kubernetes&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;container_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
  Auto_kubernetes_labels    off
  Line_format               json&lt;/pre&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;2&lt;/span&gt;
    Log_Level     info
    Daemon        Off
    Parsers_File  parsers.conf
    Parsers_File  custom_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;
&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
    Tag                 application.*
    Exclude_Path        /var/log/containers/cloudwatch-agent*, /var/log/containers/fluent-bit*, /var/log/containers/aws-node*, /var/log/containers/kube-proxy*
    Path                /var/log/containers/*.log
    Docker_Mode         On
    Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Docker_Mode_Parser  container_firstline
    Parser              docker
    DB                  /var/fluent-bit/state/flb_container.db
    Mem_Buf_Limit       50MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Rotate_Wait         &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
    Read_from_Head      Off
&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
    Tag                 application.*
    Path                /var/log/containers/fluent-bit*
    Parser              docker
    DB                  /var/fluent-bit/state/flb_log.db
    Mem_Buf_Limit       5MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Read_from_Head      Off
&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
    Tag                 application.*
    Path                /var/log/containers/cloudwatch-agent*
    #Parser              multiline
    Docker_Mode         On
    Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Docker_Mode_Parser  cwagent_firstline
    Parser              docker
    DB                  /var/fluent-bit/state/flb_cwagent.db
    rotate_wait         &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
    Mem_Buf_Limit       5MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    #Read_from_Head      true   
&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                kubernetes
    Match               application.*
    Kube_URL            https://kubernetes.default.svc:&lt;span class=&quot;nu0&quot;&gt;443&lt;/span&gt;
    Kube_CA_File        /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    Kube_Token_File     /var/run/secrets/kubernetes.io/serviceaccount/token
    Kube_Tag_Prefix     application.var.log.containers.
    Merge_Log           On
    Merge_Log_Key       pod_name
    K8S-Logging.Parser  On
    K8S-Logging.Exclude Off
    Labels              Off
    Annotations         Off
&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                multiline
    Match               application.*
    multiline.key_content log
    multiline.parser      go, multiline-regex-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                cloudwatch_logs
    Match               application.*
    region              $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;REGION&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    log_group_name      /aws/containerinsights/$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;CLUSTER_NAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;/application
    log_stream_prefix   $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;APP_POD_NAMESPACE&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-
    auto_create_group   true
    extra_user_agent    container-insights
&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                systemd
    Tag                 dataplane.systemd.*
    Systemd_Filter      _SYSTEMD_UNIT&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;docker.service&lt;/span&gt;
    Systemd_Filter      _SYSTEMD_UNIT&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;kubelet.service&lt;/span&gt;
    DB                  /var/fluent-bit/state/systemd.db
    Path                /var/log/journal
    Read_From_Tail      Off
&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
    Tag                 dataplane.tail.*
    Path                /var/log/containers/aws-node*, /var/log/containers/kube-proxy*
    Docker_Mode         On
    Docker_Mode_Flush   &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
    Docker_Mode_Parser  container_firstline
    Parser              docker
    DB                  /var/fluent-bit/state/flb_dataplane_tail.db
    Mem_Buf_Limit       50MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Rotate_Wait         &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
    Read_from_Head      Off
&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               dataplane.systemd.*
    Rename              _HOSTNAME                   hostname
    Rename              _SYSTEMD_UNIT               systemd_unit
    Rename              MESSAGE                     message
    Remove_regex        ^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;?!hostname|systemd_unit|message&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;br0&quot;&gt;&amp;#41;&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                aws
    Match               dataplane.*
    imds_version        v1
&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                cloudwatch_logs
    Match               dataplane.*
    region              $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;REGION&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    log_group_name      /aws/containerinsights/$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;CLUSTER_NAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;/dataplane
    log_stream_prefix   $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;APP_POD_NAMESPACE&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;APP_POD_NAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;-
    auto_create_group   true
    extra_user_agent    container-insights
&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
    Tag                 host.dmesg
    Path                /var/log/dmesg
    Parser              syslog
    DB                  /var/fluent-bit/state/flb_dmesg.db
    Mem_Buf_Limit       5MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Read_from_Head      Off
&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
    Tag                 host.messages
    Path                /var/log/messages
    Parser              syslog
    DB                  /var/fluent-bit/state/flb_messages.db
    Mem_Buf_Limit       5MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Read_from_Head      Off
&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
    Tag                 host.secure
    Path                /var/log/secure
    Parser              syslog
    DB                  /var/fluent-bit/state/flb_secure.db
    Mem_Buf_Limit       5MB
    Skip_Long_Lines     On
    Refresh_Interval    &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    Read_from_Head      Off
&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                aws
    Match               host.*
    imds_version        v1
&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                cloudwatch_logs
    Match               host.*
    region              $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;REGION&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    log_group_name      /aws/containerinsights/$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;CLUSTER_NAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;/host
    log_stream_prefix   $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;APP_NODE_NAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;.
    auto_create_group   true
    extra_user_agent    container-insights&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;Output&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;output&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;12176-20912&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;примеры&quot;&gt;Примеры&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-2&quot; class=&quot;wikilink1&quot; title=&quot;software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-2&quot; data-wiki-id=&quot;software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-2&quot;&gt;Обработка логов Docker&lt;/a&gt; - Установлено
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-syslog-ng&quot; class=&quot;wikilink1&quot; title=&quot;software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-syslog-ng&quot; data-wiki-id=&quot;software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-syslog-ng&quot;&gt;Обработка логов syslog + Docker&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:gitlab&quot; class=&quot;wikilink1&quot; title=&quot;software:monitoring:fluent-bit:gitlab&quot; data-wiki-id=&quot;software:monitoring:fluent-bit:gitlab&quot;&gt;Fluent-Bit Gitlab&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:docker-swarm&quot; class=&quot;wikilink1&quot; title=&quot;software:monitoring:fluent-bit:docker-swarm&quot; data-wiki-id=&quot;software:monitoring:fluent-bit:docker-swarm&quot;&gt;Настройка логов GitLab в Docker Swarm&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:monitoring:fluent-bit:multiline&quot; class=&quot;wikilink1&quot; title=&quot;software:monitoring:fluent-bit:multiline&quot; data-wiki-id=&quot;software:monitoring:fluent-bit:multiline&quot;&gt;Обработка многострочных логов&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-1&quot; class=&quot;wikilink1&quot; title=&quot;software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-1&quot; data-wiki-id=&quot;software:fluent-bit-loki-grafana:fluent-bit:docker-swarm-1&quot;&gt;Обработка многострочных логов&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&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\u0438\u043c\u0435\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043c\u0435\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;20913-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:prometheus">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-25T00:26:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Prometheus - Система мониторинга и оповещения с открытым исходным кодом.</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:prometheus</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:loki&amp;amp;do=showtag&amp;amp;tag=%5Bloki&quot; class=&quot;wikilink1&quot; title=&quot;tag:loki&quot; rel=&quot;tag&quot;&gt;[loki&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:docker&amp;amp;do=showtag&amp;amp;tag=docker&quot; class=&quot;wikilink1&quot; title=&quot;tag:docker&quot; rel=&quot;tag&quot;&gt;docker&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:swarm&amp;amp;do=showtag&amp;amp;tag=swarm&quot; class=&quot;wikilink1&quot; title=&quot;tag:swarm&quot; rel=&quot;tag&quot;&gt;swarm&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:promtail&amp;amp;do=showtag&amp;amp;tag=promtail&quot; class=&quot;wikilink1&quot; title=&quot;tag:promtail&quot; rel=&quot;tag&quot;&gt;promtail&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:grafana&amp;amp;do=showtag&amp;amp;tag=grafana&quot; class=&quot;wikilink1&quot; title=&quot;tag:grafana&quot; rel=&quot;tag&quot;&gt;grafana&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:monitoring&amp;amp;do=showtag&amp;amp;tag=monitoring&quot; class=&quot;wikilink1&quot; title=&quot;tag:monitoring&quot; rel=&quot;tag&quot;&gt;monitoring&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:fluentd&amp;amp;do=showtag&amp;amp;tag=fluentd&quot; class=&quot;wikilink1&quot; title=&quot;tag:fluentd&quot; rel=&quot;tag&quot;&gt;fluentd&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:fluent-bit&amp;amp;do=showtag&amp;amp;tag=fluent-bit&quot; class=&quot;wikilink1&quot; title=&quot;tag:fluent-bit&quot; rel=&quot;tag&quot;&gt;fluent-bit&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:prometheus&amp;amp;do=showtag&amp;amp;tag=prometheus&quot; class=&quot;wikilink1&quot; title=&quot;tag:prometheus&quot; rel=&quot;tag&quot;&gt;prometheus&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;prometheus_-_система_мониторинга_и_оповещения_с_открытым_исходным_кодом&quot;&gt;Prometheus - Система мониторинга и оповещения с открытым исходным кодом.&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;Prometheus - \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;prometheus_-_\u0441\u0438\u0441\u0442\u0435\u043c\u0430_\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430_\u0438_\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f_\u0441_\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c_\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c_\u043a\u043e\u0434\u043e\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;87-225&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;docker_compose&quot;&gt;Docker Compose&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co4&quot;&gt;services&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  prometheus&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;prom/prometheus:latest&lt;span class=&quot;co3&quot;&gt;
      container_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;monitoring_prometheus&lt;span class=&quot;co3&quot;&gt;
      restart&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;unless-stopped&lt;span class=&quot;co4&quot;&gt;
      volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - ./data/prometheus/config:/etc/prometheus/
        - ./data/prometheus/data:/prometheus&lt;span class=&quot;co4&quot;&gt;
      command&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - &#039;-config.file=/etc/prometheus/prometheus.yml&#039;
        - &#039;-storage.local.path=/prometheus&#039;
        - &#039;-alertmanager.url=http://alertmanager:9093&#039;&lt;span class=&quot;co4&quot;&gt;
      expose&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - 9090&lt;span class=&quot;co4&quot;&gt;
      ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - 9090:9090&lt;span class=&quot;co4&quot;&gt;
      links&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - cadvisor:cadvisor
        - node-exporter:node-exporter
&lt;span class=&quot;co4&quot;&gt;
    node-exporter&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;prom/node-exporter:latest&lt;span class=&quot;co3&quot;&gt;
      container_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;monitoring_node_exporter&lt;span class=&quot;co3&quot;&gt;
      restart&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;unless-stopped&lt;span class=&quot;co4&quot;&gt;
      expose&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - 9100&lt;/pre&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co4&quot;&gt;services&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  grafana&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;grafana/grafana:latest&lt;span class=&quot;co3&quot;&gt;
      container_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;monitoring_grafana&lt;span class=&quot;co3&quot;&gt;
      restart&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;unless-stopped&lt;span class=&quot;co4&quot;&gt;
      links&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - prometheus:prometheus&lt;span class=&quot;co4&quot;&gt;
      volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - ./data/grafana:/var/lib/grafana&lt;span class=&quot;co4&quot;&gt;
      environment&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;        - GF_SECURITY_ADMIN_PASSWORD=MYPASSWORT
        - GF_USERS_ALLOW_SIGN_UP=false
        - GF_SERVER_DOMAIN=myrul.com
        - GF_SMTP_ENABLED=true
        - GF_SMTP_HOST=smtp.gmail.com:587
        - GF_SMTP_USER=myadrress@gmail.com
        - GF_SMTP_PASSWORD=mypassword
        - GF_SMTP_FROM_ADDRESS=myaddress@gmail.com&lt;/pre&gt;

&lt;p&gt;
prometheus.yml
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# my global config
global:
  scrape_interval:     120s # By default, scrape targets every 15 seconds.
  evaluation_interval: 120s # By default, scrape targets every 15 seconds.
  # scrape_timeout is set to the global default (10s).

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
      monitor: &amp;#039;my-project&amp;#039;

# Load and evaluate rules in this file every &amp;#039;evaluation_interval&amp;#039; seconds.
rule_files:
  # - &amp;quot;alert.rules&amp;quot;
  # - &amp;quot;first.rules&amp;quot;
  # - &amp;quot;second.rules&amp;quot;

# A scrape configuration containing exactly one endpoint to scrape:
# Here it&amp;#039;s Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=&amp;lt;job_name&amp;gt;` to any timeseries scraped from this config.
  - job_name: &amp;#039;prometheus&amp;#039;

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 120s

    # metrics_path defaults to &amp;#039;/metrics&amp;#039;
    # scheme defaults to &amp;#039;http&amp;#039;.

    static_configs:
         - targets: [&amp;#039;localhost:9090&amp;#039;,&amp;#039;cadvisor:8080&amp;#039;,&amp;#039;node-exporter:9100&amp;#039;, &amp;#039;nginx-exporter:9113&amp;#039;]&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&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker_compose&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;226-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:promtail-loki-grafana">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-06T23:53:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Docker Swarm + Promtail + Loki + Grafana</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:promtail-loki-grafana</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:loki&amp;amp;do=showtag&amp;amp;tag=%5Bloki&quot; class=&quot;wikilink1&quot; title=&quot;tag:loki&quot; rel=&quot;tag&quot;&gt;[loki&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:docker&amp;amp;do=showtag&amp;amp;tag=docker&quot; class=&quot;wikilink1&quot; title=&quot;tag:docker&quot; rel=&quot;tag&quot;&gt;docker&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:swarm&amp;amp;do=showtag&amp;amp;tag=swarm&quot; class=&quot;wikilink1&quot; title=&quot;tag:swarm&quot; rel=&quot;tag&quot;&gt;swarm&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:promtail&amp;amp;do=showtag&amp;amp;tag=promtail&quot; class=&quot;wikilink1&quot; title=&quot;tag:promtail&quot; rel=&quot;tag&quot;&gt;promtail&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:grafana&amp;amp;do=showtag&amp;amp;tag=grafana%5D&quot; class=&quot;wikilink1&quot; title=&quot;tag:grafana&quot; rel=&quot;tag&quot;&gt;grafana]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;docker_swarm_promtail_loki_grafana&quot;&gt;Docker Swarm + Promtail + Loki + Grafana&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://178.140.10.58:8080/lib/exe/detail.php?id=software%3Amonitoring%3Apromtail-loki-grafana&amp;amp;media=software:https_dev-to-uploads.s3.amazonaws.com_uploads_articles_ezpdcwsweednvtyqtbi0.webp&quot; class=&quot;media&quot; title=&quot;software:https_dev-to-uploads.s3.amazonaws.com_uploads_articles_ezpdcwsweednvtyqtbi0.webp&quot;&gt;&lt;img src=&quot;http://178.140.10.58:8080/lib/exe/fetch.php?media=software:https_dev-to-uploads.s3.amazonaws.com_uploads_articles_ezpdcwsweednvtyqtbi0.webp&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Fluentd, Fluentd Bit, Logstash и &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:monitoring:promtail&quot; class=&quot;wikilink1&quot; title=&quot;software:monitoring:promtail&quot; data-wiki-id=&quot;software:monitoring:promtail&quot;&gt;Promtail&lt;/a&gt; являются клиентами Loki, а Distributor и Ingester — компонентами Loki.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Docker Swarm + Promtail + Loki + Grafana&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker_swarm_promtail_loki_grafana&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-382&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;версии&quot;&gt;Версии:&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=software:fluent-bit-loki-grafana:loki&quot; class=&quot;wikilink1&quot; title=&quot;software:fluent-bit-loki-grafana:loki&quot; data-wiki-id=&quot;software:fluent-bit-loki-grafana:loki&quot;&gt;grafana/loki:3.5.8&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; grafana/promtail:3.5.8&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; grafana/grafana:12.1.4&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0435\u0440\u0441\u0438\u0438:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0435\u0440\u0441\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;383-531&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;настройки&quot;&gt;Настройки&lt;/h2&gt;
&lt;div class=&quot;level2&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\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;532-563&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;loki_config&quot;&gt;[[ loki_config ]]&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co3&quot;&gt;auth_enabled&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;false
&lt;span class=&quot;co4&quot;&gt;
server&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  http_listen_port&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;3100
&lt;span class=&quot;co4&quot;&gt;
common&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  instance_addr&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;127.0.0.1&lt;span class=&quot;co3&quot;&gt;
  path_prefix&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/loki&lt;span class=&quot;co4&quot;&gt;
  storage&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
    filesystem&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      chunks_directory&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/loki/chunks&lt;span class=&quot;co3&quot;&gt;
      rules_directory&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/loki/rules&lt;span class=&quot;co3&quot;&gt;
  replication_factor&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1&lt;span class=&quot;co4&quot;&gt;
  ring&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
    kvstore&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;inmemory
&lt;span class=&quot;co4&quot;&gt;
schema_config&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  configs&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    - from&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;2020-10-24&lt;span class=&quot;co3&quot;&gt;
      store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;tsdb&lt;span class=&quot;co3&quot;&gt;
      object_store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;filesystem&lt;span class=&quot;co3&quot;&gt;
      schema&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;v13&lt;span class=&quot;co4&quot;&gt;
      index&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        prefix&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;index_&lt;span class=&quot;co3&quot;&gt;
        period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;24h
&lt;span class=&quot;co4&quot;&gt;
ruler&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  alertmanager_url&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;http://localhost:9093
&lt;span class=&quot;co4&quot;&gt;
limits_config&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  retention_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;720h&lt;span class=&quot;co3&quot;&gt;
  reject_old_samples&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true&lt;span class=&quot;co3&quot;&gt;
  reject_old_samples_max_age&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;720h&lt;span class=&quot;co3&quot;&gt;
  allow_structured_metadata&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true&lt;span class=&quot;co3&quot;&gt;
  max_query_length&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;721h
  &lt;span class=&quot;co4&quot;&gt;
ingester&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  lifecycler&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
    ring&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
      kvstore&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        store&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;inmemory&lt;span class=&quot;co3&quot;&gt;
      replication_factor&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1&lt;span class=&quot;co3&quot;&gt;
    final_sleep&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;0s&lt;span class=&quot;co3&quot;&gt;
  chunk_idle_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1h&lt;span class=&quot;co3&quot;&gt;
  max_chunk_age&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1h&lt;span class=&quot;co3&quot;&gt;
  chunk_target_size&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1048576&lt;span class=&quot;co3&quot;&gt;
  chunk_retain_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;30s
&lt;span class=&quot;co4&quot;&gt;
table_manager&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  retention_deletes_enabled&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true&lt;span class=&quot;co3&quot;&gt;
  retention_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;720h&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;[[ loki_config ]]&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;loki_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;564-1574&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;promtail_config&quot;&gt;[[ promtail_config ]]&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co4&quot;&gt;server&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  http_listen_port&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;9080&lt;span class=&quot;co3&quot;&gt;
  http_listen_address&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;0.0.0.0
&lt;span class=&quot;co4&quot;&gt;
positions&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  filename&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/tmp/positions.yaml
  &lt;span class=&quot;co1&quot;&gt;# Запись позиций каждые 15 секунд&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  sync_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;15s
&lt;span class=&quot;co4&quot;&gt;
clients&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  - url&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;http://loki:3100/loki/api/v1/push&lt;span class=&quot;co4&quot;&gt;
    backoff_config&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      min_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;5s&lt;span class=&quot;co3&quot;&gt;
      max_period&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1m&lt;span class=&quot;co3&quot;&gt;
      max_retries&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;10&lt;span class=&quot;co3&quot;&gt;
    batchwait&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;10s&lt;span class=&quot;co3&quot;&gt;
    batchsize&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1048576&lt;span class=&quot;co3&quot;&gt;
    timeout&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;30s
&lt;span class=&quot;co4&quot;&gt;
scrape_configs&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
  - job_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;docker_containers&lt;span class=&quot;co4&quot;&gt;
    docker_sd_configs&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;    &lt;span class=&quot;co3&quot;&gt;
      - host&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;unix:///var/run/docker.sock&lt;span class=&quot;co3&quot;&gt;
        refresh_interval&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;15s&lt;span class=&quot;co4&quot;&gt;
        filters&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
          - name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;label&lt;span class=&quot;co3&quot;&gt;
            values&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;logging=promtail&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
    relabel_configs&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      - target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;job&lt;span class=&quot;co3&quot;&gt;
        replacement&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;docker_containers&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_name&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        regex&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;/&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;.*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&#039;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;container&#039;&lt;span class=&quot;co3&quot;&gt;
        action&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;replace&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_id&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;container_id&#039;&lt;span class=&quot;co3&quot;&gt;
        action&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;replace
&amp;nbsp;
      &lt;span class=&quot;co1&quot;&gt;# Основной источник логов - stdout/stderr контейнеров&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_name&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        regex&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;/&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;.*&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&#039;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;container_name&#039;&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_log_stream&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;log_stream&#039;&lt;span class=&quot;co3&quot;&gt;
        action&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;replace
&amp;nbsp;
      &lt;span class=&quot;co1&quot;&gt;# Метаданные Docker Swarm&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_label_com_docker_swarm_service_name&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;service_name&#039;&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_label_com_docker_swarm_task_name&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;task_name&#039;&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_label_com_docker_swarm_node_id&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;node_id&#039;&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_label_com_docker_swarm_stack_namespace&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;stack&#039;
&amp;nbsp;
      &lt;span class=&quot;co1&quot;&gt;# Добавляем hostname ноды&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      - target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;node_host&#039;&lt;span class=&quot;co3&quot;&gt;
        replacement&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;HOSTNAME&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&#039;
&amp;nbsp;
      &lt;span class=&quot;co1&quot;&gt;# Путь к логам контейнера&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      - source_labels&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&#039;__meta_docker_container_id&#039;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;__path__&#039;&lt;span class=&quot;co3&quot;&gt;
        replacement&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;/var/lib/docker/containers/*-json.log&#039;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# Пайплайн для обработки логов&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    pipeline_stages&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      - docker&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
      - timestamp&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
          source&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;current_time&lt;span class=&quot;co3&quot;&gt;
          format&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;RFC3339&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;[[ promtail_config ]]&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;promtail_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1575-3928&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;docker_compose&quot;&gt;Docker Compose&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
monitoring
&lt;/p&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;&lt;span class=&quot;st0&quot;&gt;&amp;quot;3.8&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
x-logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;  &amp;amp;default-logging&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;1m&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;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
    tag&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;{{.Name}}&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
services&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
  loki&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;grafana/loki:3.5.8&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;3100:3100&amp;quot;&lt;/span&gt;&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;loki_config&lt;span class=&quot;co3&quot;&gt;
        target&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/etc/loki/local-config.yaml&lt;span class=&quot;co4&quot;&gt;
    volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - loki_data:/loki
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro&lt;span class=&quot;co3&quot;&gt;
    command&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;
      - -config.file=/etc/loki/local-config.yaml
      - -config.expand-env=true
      - -target=&lt;span class=&quot;kw1&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - TZ=$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;SYSTEM_TIMEZONE:-Europe/Moscow&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    networks&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - monitoring&lt;span class=&quot;co4&quot;&gt;
    deploy&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
      placement&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
        constraints&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;          - node.role == manager&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;2G  &lt;span class=&quot;co1&quot;&gt;# Уменьшаем память&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
          cpus&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;1.0&#039;&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;1G&lt;span class=&quot;co3&quot;&gt;
          cpus&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;0.5&#039;&lt;span class=&quot;co4&quot;&gt;
      restart_policy&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        condition&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;on-failure&lt;span class=&quot;co3&quot;&gt;
        delay&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;10s&lt;span class=&quot;co3&quot;&gt;
        max_attempts&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;3&lt;span class=&quot;co3&quot;&gt;
    logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-logging&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    labels&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;promtail&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      logging_jobname&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;docker_containers&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co4&quot;&gt;
  promtail&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;grafana/promtail:3.5.8&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;promtail_config&lt;span class=&quot;co3&quot;&gt;
        target&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;/etc/promtail/config.yaml&lt;span class=&quot;co4&quot;&gt;
    volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /var/lib/docker/containers:/var/lib/docker/containers:ro
      - /var/log:/var/log:ro
      - promtail_positions:/tmp
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro&lt;span class=&quot;co3&quot;&gt;
    command&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;
      - -config.file=/etc/promtail/config.yaml
      - -config.expand-env=true&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - TZ=$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;SYSTEM_TIMEZONE:-Europe/Moscow&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
      - HOSTNAME=&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;.Node.Hostname&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    networks&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - monitoring&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;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;512M&lt;span class=&quot;co3&quot;&gt;
          cpus&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;0.5&#039;&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;256M&lt;span class=&quot;co3&quot;&gt;
          cpus&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;0.25&#039;&lt;span class=&quot;co4&quot;&gt;
      restart_policy&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        condition&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
        delay&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;30s&lt;span class=&quot;co3&quot;&gt;
        max_attempts&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;10
&amp;nbsp;
&lt;span class=&quot;co4&quot;&gt;
  grafana&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;grafana/grafana:12.1.4&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;3000:3000&amp;quot;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - TZ=$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;SYSTEM_TIMEZONE:-Europe/Moscow&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span class=&quot;co1&quot;&gt;# GF&lt;/span&gt;
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_SECURITY_ADMIN_USER=admin
      - GF_USERS_ALLOW_SIGN_UP=false
      - GF_AUTH_ANONYMOUS_ENABLED=true
      - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
      &lt;span class=&quot;co1&quot;&gt;# Настройки для решения проблемы блокировки БД&lt;/span&gt;
      - GF_DATABASE_TYPE=sqlite3
      - GF_DATABASE_PATH=grafana.db
      &lt;span class=&quot;co1&quot;&gt;# - GF_DATABASE_MAX_IDLE_CONN=1&lt;/span&gt;
      &lt;span class=&quot;co1&quot;&gt;# - GF_DATABASE_MAX_OPEN_CONN=1&lt;/span&gt;
      - GF_DATABASE_CONN_MAX_LIFETIME=14400
      &lt;span class=&quot;co1&quot;&gt;# Отключаем функции, которые могут блокировать БД&lt;/span&gt;
      - GF_ALERTING_ENABLED=false
      - GF_REPORTING_ENABLED=false
      - GF_LIVE_ENABLED=false&lt;span class=&quot;co4&quot;&gt;
    volumes&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - grafana_data:/var/lib/grafana
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro&lt;span class=&quot;co4&quot;&gt;
    networks&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - monitoring&lt;span class=&quot;co4&quot;&gt;
    deploy&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
      placement&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
        constraints&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;          - node.role == manager&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;1G&lt;span class=&quot;co3&quot;&gt;
          cpus&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;0.5&#039;&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;512M&lt;span class=&quot;co3&quot;&gt;
          cpus&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&#039;0.25&#039;&lt;span class=&quot;co4&quot;&gt;
      restart_policy&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
        condition&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;on-failure&lt;span class=&quot;co3&quot;&gt;
        delay&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;10s&lt;span class=&quot;co3&quot;&gt;
        max_attempts&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;5
&amp;nbsp;
&lt;span class=&quot;co4&quot;&gt;
configs&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  loki_config&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;span class=&quot;co4&quot;&gt;
  promtail_config&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;span class=&quot;co4&quot;&gt;
networks&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  monitoring&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;overlay&lt;span class=&quot;co3&quot;&gt;
    attachable&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;true
&lt;span class=&quot;co4&quot;&gt;
volumes&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  promtail_positions&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;local&lt;span class=&quot;co4&quot;&gt;
  loki_data&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;local&lt;span class=&quot;co4&quot;&gt;
  grafana_data&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    driver&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;local&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&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker_compose&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3929-7555&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;встраивание_в_docker-compose&quot;&gt;Встраивание в docker-compose&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co4&quot;&gt;x-logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;  &amp;amp;default-logging&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;1m&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;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
    tag&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;{{.Name}}&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;
services&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
  loki&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co7&quot;&gt;*default-logging&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    labels&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      logging&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;promtail&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      logging_jobname&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;docker_containers&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;\u0412\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 docker-compose&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435_\u0432_docker-compose&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7556-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:monitoring:promtail">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-17T01:28:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Promtail</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:monitoring:promtail</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;promtail&quot;&gt;Promtail&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Отладка агеннта
&lt;/p&gt;

&lt;p&gt;
promtail-windows-amd64 –dry-run –inspect –config.file=promtail-local-config.yaml
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Promtail&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;promtail&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-140&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;конфигурации_парсинга_scrape_configs&quot;&gt;Конфигурации парсинга scrape_configs:&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В разделе scrape_config указывается набор целей и параметров, описывающих, как их парсить. В общем случае одна конфигурация парсинга соответствует одному заданию. В расширенных конфигурациях это может измениться.
&lt;/p&gt;

&lt;p&gt;
Цели могут быть заданы статически с помощью параметра static_configs или обнаружены динамически с помощью одного из поддерживаемых механизмов обнаружения сервисов.
Кроме того, relabel_configs позволяет вносить дополнительные изменения в любую цель и её метки перед парсингом.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 scrape_configs:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438_\u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430_scrape_configs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;141-1081&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;конфигурация_static_configs&quot;&gt;Конфигурация static_configs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Пример:
job logs метка для имени конфигурации (конфигураций может быть несколько)
&lt;/p&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co4&quot;&gt;scrape_configs&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
- job_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;system&lt;span class=&quot;co4&quot;&gt;
  static_configs&lt;/span&gt;:&lt;span class=&quot;co4&quot;&gt;
  - targets&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - localhost&lt;span class=&quot;co4&quot;&gt;
    labels&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      job&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;logs&lt;span class=&quot;co3&quot;&gt;
      __path__&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;\var\log\*.log&lt;/pre&gt;

&lt;p&gt;
Если включена ротация логов, то в лог попадут как дневные логи, так и ротационные
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f static_configs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_static_configs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1082-1591&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;конфигурация_docker_sd_config&quot;&gt;Конфигурация docker_sd_config&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co4&quot;&gt;scrape_configs&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  - job_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;docker_containers&lt;span class=&quot;co4&quot;&gt;
    docker_sd_configs&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      - host&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;unix:///var/run/docker.sock&lt;span class=&quot;co3&quot;&gt;
        refresh_interval&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;60s&lt;span class=&quot;co4&quot;&gt;
        filters&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
          - name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;status&lt;span class=&quot;co3&quot;&gt;
            values&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;running&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    relabel_configs&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      - target_label&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;job&lt;span class=&quot;co3&quot;&gt;
        replacement&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;docker_containers&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;\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f docker_sd_config&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_docker_sd_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1592-1970&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;доступные_мета-метки_relabel_configs&quot;&gt;Доступные мета-метки relabel_configs:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Эти метки можно использовать при переименовании.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;__meta_docker_container_id: идентификатор контейнера
__meta_docker_container_name: имя контейнера
__meta_docker_container_network_mode: сетевой режим контейнера
__meta_docker_container_label_&amp;lt;labelname&amp;gt;: каждая метка контейнера
__meta_docker_container_log_stream: тип потока журнала stdout или stderr
__meta_docker_network_id: идентификатор сети
__meta_docker_network_name: имя сети
__meta_docker_network_ingress: является ли сеть входящей
__meta_docker_network_internal: является ли сеть внутренней
__meta_docker_network_label_&amp;lt;labelname&amp;gt;: каждая метка сети
__meta_docker_network_scope: область действия сети
__meta_docker_network_ip: IP-адрес контейнера в этой сети
__meta_docker_port_private: порт контейнера
__meta_docker_port_public: внешний порт, если существует сопоставление портов
__meta_docker_port_public_ip: публичный IP-адрес, если существует сопоставление портов&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 relabel_configs
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Необязательный блок limits_config настраивает глобальные ограничения для этого экземпляра Promtail.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Блок target_config управляет процессом чтения файлов с обнаруженных устройств.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043c\u0435\u0442\u0430-\u043c\u0435\u0442\u043a\u0438 relabel_configs:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435_\u043c\u0435\u0442\u0430-\u043c\u0435\u0442\u043a\u0438_relabel_configs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1971-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
