Bosh sahifa Wiki Fluentd

Fluentd

Fluentd — turli manbalardan log va eventlarni yig‘ish, parse qilish, o‘zgartirish, bufferlash va kerakli storage yoki analytics tizimlariga yuborishga mo‘ljallangan data collector.

Fluentd log manbasi bilan yakuniy backend orasida umumiy routing qatlami vazifasini bajaradi. U pluginlar orqali ko‘p input va output tizimlari bilan ishlaydi.

Event modeli

Fluentd eventni odatda uch qism bilan ifodalaydi:

Record key-value ma’lumot.

Misol:

tag: app.api
time: 2026-07-14T09:30:00Z
record:
  level: error
  message: timeout

Tag routing uchun ishlatiladi.

Input plugin

Input plugin ma’lumotni qabul qiladi.

Manbalar:

Har input parser, port va security sozlamalariga ega.

Source

Configuration’da source blok event qayerdan kelishini belgilaydi.

File tail input:

bilan ishlaydi.

Wildcard yangi log fayllarni topishi mumkin.

Position file

Tail input qaysi offsetgacha o‘qilganini position file’da saqlaydi.

Agent restartdan keyin shu joydan davom etadi.

Position file yo‘qolsa:

  • log qayta o‘qilishi;
  • eski log o‘tkazib yuborilishi

mumkin.

Uning storage va permissioni muhim.

Parser

Parser raw textni structured recordga aylantiradi.

Formatlar:

  • JSON;
  • regexp;
  • syslog;
  • CSV;
  • multiline;
  • custom.

Parse xato bo‘lsa event fallback tag, error stream yoki raw message sifatida saqlanishi mumkin.

Logni butunlay tashlab yuborish diagnostika yo‘qolishiga sabab bo‘ladi.

Filter

Filter recordni outputga yetmasdan o‘zgartiradi.

Vazifalar:

  • field qo‘shish;
  • field olib tashlash;
  • rename;
  • parse;
  • record transform;
  • grep;
  • redaction;
  • enrichment.

Filter tartibi muhim.

Match

Match blok tag patterniga mos eventlarni outputga yuboradi.

Masalan:

app.**

barcha application taglariga mos kelishi mumkin.

Routing noto‘g‘ri bo‘lsa event kutilmagan backendga ketadi yoki ikki marta yuboriladi.

Output plugin

Output ma’lumotni:

ga yuboradi.

Output delivery kafolati, retry va batching plugin imkoniyatiga bog‘liq.

Buffer

Backend vaqtincha ishlamasa eventlar bufferda saqlanadi.

Buffer:

bo‘lishi mumkin.

File buffer process restartdan keyin data’ni saqlaydi.

Memory buffer tez, ammo crashda yo‘qolishi mumkin.

Chunk

Buffer eventlarni chunklarga guruhlaydi.

Chunk key:

bo‘yicha ajratilishi mumkin.

Chunk juda kichik bo‘lsa ko‘p request, juda katta bo‘lsa latency va retry hajmi oshadi.

Flush

Chunk ma’lum shartda outputga yuboriladi:

  • vaqt;
  • hajm;
  • interval;
  • shutdown;
  • queue holati.

Flush threadlari parallel ishlashi mumkin.

Backend rate limit va ordering talabi hisobga olinadi.

Retry

Output xato qaytarsa Fluentd retry qiladi.

Siyosat:

  • exponential backoff;
  • maksimal vaqt;
  • forever retry;
  • secondary output;
  • overflow action.

Cheksiz retry buffer diskini to‘ldirishi mumkin.

Overflow

Buffer limiti tugaganda:

  • yangi eventni bloklash;
  • eng eski chunkni tashlash;
  • yangi eventni tashlash;
  • xato qaytarish

siyosati qo‘llanadi.

Loss va backpressure talabi oldindan belgilanadi.

Secondary output

Asosiy output uzoq vaqt ishlamasa eventlar secondary storage’ga yozilishi mumkin.

Masalan:

Keyinchalik replay jarayoni duplicate ehtimolini boshqaradi.

Forward protocol

Fluentd instance’lar o‘zaro event uzatishi mumkin.

Edge agentlar aggregator clusterga yuboradi.

Transport:

bilan himoyalanadi.

Multiline

Application stack trace bir necha qatordan iborat.

Multiline parser event boshlanish patternini topib, keyingi qatorlarni birlashtiradi.

Noto‘g‘ri pattern ko‘p mustaqil request loglarini bitta ulkan eventga birlashtirishi mumkin.

Plugin

Fluentd imkoniyatlari pluginlar orqali kengayadi.

Plugin:

bo‘yicha tekshiriladi.

Har plugin delivery semantikasini bir xil ta’minlamaydi.

Delivery semantikasi

Buffer va acknowledgement orqali at-least-once deliveryga yaqin model qurilishi mumkin.

Bu duplicate event ehtimolini anglatadi.

Backend event ID yoki boshqa deduplication mexanizmiga ega bo‘lishi mumkin.

Resource

Log agentning o‘zi:

ishlatadi.

Juda murakkab regexp va transformatsiya application hostiga yuk beradi.

Og‘ir processing markaziy aggregatorga ko‘chirilishi mumkin.

Aggregator arxitekturasi

Har node’dagi yengil agent eventlarni markaziy Fluentd aggregatorlariga yuborishi mumkin. Agent minimal parsing qiladi, aggregator esa enrichment va ko‘p output routingni bajaradi.

Config reload

Configuration o‘zgarganda process reload yoki restart qiladi. Yangi config syntax va plugin mavjudligi oldindan tekshiriladi. Reload vaqtida buffered eventlar yo‘qolmasligi kerak.

Time parsing

Log timestamp format, locale va time zone bilan parse qilinadi. Parse xato bo‘lsa ingestion vaqti qo‘llanishi mumkin, ammo bu event tartibini noto‘g‘ri ko‘rsatadi.

Record size

Juda katta log event network, buffer va backend limitidan oshishi mumkin. Maksimal record hajmi belgilanadi, stack trace yoki payload kerak bo‘lsa alohida storagega chiqariladi.

Monitoring API

Plugin queue, retry, buffer va event rate haqidagi internal metriclarni taqdim etadi. Agent processi ishlayotgan bo‘lsa ham output bloklangan bo‘lishi mumkin.

Fluent Bit

Resursi cheklangan host va container node’larida yengil collector ishlatilib, eventlar Fluentd yoki backendga yuborilishi mumkin. Parsing va routing vazifalari pipeline bo‘ylab taqsimlanadi.

Bog‘liq tushunchalar

Log collector, Fluent Bit, Input plugin, Output plugin, Filter, Buffer, Chunk, Log routing, Structured logging, Elasticsearch