Skip to content

Commit

Permalink
updated
Browse files Browse the repository at this point in the history
  • Loading branch information
ismoilovdevml committed Jun 24, 2024
1 parent b970f53 commit a2911d3
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions pages/tutorials/article/loki-setup.en-UZ.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,34 @@ Quyidagi animatsiyali arxitekturada Grafana Loki arxitekturasi, shuningdek, unin
![loki](https://raw.githubusercontent.com/devops-journey-uz/assets/main/images/article/loki-setup/architecture.gif)


Keling, Grafana Loki Logging qanday ishlashini ko'rib chiqaylik. Rasmda Grafana Loki loglarni qanday to'plashi(collect), saqlashi(store), so'rovlari(query) va vizualizatsiyasi ko'rsatilgan.

* Grafana Loki-da uning agenti fayllar, konteynerlar, podlar, applicationlar va systems journallaridan loglarni yig'ish uchun javobgardir.
* Loki loglarni yig'ish uchun log-collecting agentidan foydalanadi. Agar siz Kubernetes-da Loki-dan foydalansangiz, agent daemon set sifatida deploy qilinadi, chunki bizga klasterning har bir mavjud nodedan loglar kerak bo'ladi.
* **Promtail** - bu arxitekturada ishlatiladigan agent, Promtail har bir mavjud logni to'playdi va keyin xotirani tejash uchun loglarni filtrlaydi va compress qilib siqadi.
* Loglar compress qilingandan so'ng, u loglar uchun label beradi va uni Loki-ga yuboradi.
* Promtail collecting agentdan loglarni olgandan so'ng, Loki har bir logni saqlash joyini tejash va samarali qidirish uchun log messagelarini bitta faylda to'playdigan **chunk** sifatida saqlaydi.
* Shuningdek, u chunkga label va timestamp beradi. Qachonki chunk saqlangan bo'lsa, u har bir chunk uchun timestamp, labeli va chunkning joylashuvini o'z ichiga olgan indeks yaratadi.
* Loki loglarni **LogQL** query languagedan foydalangan holda so'raydi, LogQL biz tanlagan label va valuelar bo'yicha loglarni filtrlash, aggregatlari va tahlil qilish imkonini beradi.
* Loki-ni Grafana-ga qo'shish orqali siz so'ralgan loglarni tasavvur qilishingiz yoki **CLI**-dan loglarni so'rash uchun **LogCLI**-dan foydalanishingiz mumkin.

Qisqa qilib aytganda:

Promtail serverlardan loglarni o'qib label va timestamp qo'yib lokiga HTTP orqali stream qilib jo'natadi, k8s uchun label quyidagicha.

```bash
{namespace="prod", pod="my-app-123", container="app-container"}
```
Loki loglarni promtaildan olib label va timestampdan foydalanib key-value indexlaydi va loghlarni chunklar(bo'laklar)ga bo'lib loki server file systemida yoki S3 bucket(Amazon S3, Google Cloud Storage, yoki MinIO)da saqlaydi. Chunklar ma'lum bir vaqt oralig'idagi loglar hisoblanadi masalan 2-minut. Grafana lokidan loglarni LogQL query language orqali so'rovlar berib vizualizatsiya qilib dashboarda ko'rsatadi.

## Grafana Loki Componentlari

Grafana Loki **promtail, distributor, ingester, querier(so'rovchi), ruler, query frontend** va **Grafana** kabi komponentlardan iborat. Keling, ushbu tarkibiy qismlarni ko'rib chiqaylik

### Promtail

**Promtail** Loki uchun logging agent vazifasini bajaradigan muhim komponent hisoblanadi. Uning vazifasi tizimdagi har bir logni yig'ish, unga label qo'yish va Loki-ga yuborishdir. Loki local log fayllari va system journaldan loglarni to'playdi. Loglarni yig'moqchi bo'lgan har bir tizimga Promtailni o'rnatishingiz kerak, xuddi shunday, agar siz Kubernenets-da Loki-dan foydalansangiz, Promtail-ni har bir nodega **demonset** sifatida deploy qilishingiz kerak.

## Distributor

Distributor Loki tizimining bir qismi bo'lib, loglarni qabul qiladi va ularni boshqa komponentlarga (ingester) tarqatadi. Distributor **HTTP** orqali kelayotgan loglarni qabul qiladi. Promtail yoki boshqa log yig'uvchi agentlar loglarni distributorga yuboradi. Distributor kelgan loglarni tekshiradi va ularda to'g'ri label va timestamp mavjudligini tasdiqlaydi. Distributor loglarni hashing algoritmi yordamida hash qiladi va ularni ingester nodelariga tarqatadi. Hashing algoritmi loglarni ma'lum bir ingester nodega yuborilishini aniqlaydi, bu esa loglarning bir xil nodelarda qayta ishlanishini ta'minlaydi. Bu jarayon orqali loglar qayta ishlanish va saqlanish uchun ingester nodelariga o'tadi.

0 comments on commit a2911d3

Please sign in to comment.