Grafana ning mahalliy log to'plovchi Loki bilan qanchalik tanishsiz?
sobes.tech AI
AIdan javob
Loki bilan yaxshi bilaman. Bu Grafana Labs tomonidan ishlab chiqilgan gorizontal kengaytiriladigan, yuqori mavjud va ko‘p ijarachili loglar yig‘ish tizimi. Asosiy xususiyati — loglarning faqat metama’lumotlarini (etiketlarni) indekslash, bu esa saqlash va indekslash xarajatlarini sezilarli darajada kamaytiradi.
Loki arxitekturasi quyidagi asosiy komponentlarni o‘z ichiga oladi:
- Distributor: Kiruvchi loglarni qabul qiladi, ularni tekshiradi, shardlarga bo‘linadi va Ingesterga yuboradi.
- Ingester: Loglarni uzoq muddatli saqlash uchun (S3, GCS, MinIO yoki mahalliy saqlash) javob beradi va so‘rovlarni tezlashtirish uchun oxirgi ma’lumotlarni xotirada cache qiladi.
- Querier/Query-Frontend: Loglarni o‘qish uchun so‘rovlarni bajaradi. Querier, yangi loglar uchun Ingestersdan yoki uzoq muddatli saqlashdan ma’lumot so‘rashi mumkin. Query-Frontend natijalarni cache qilishi va murakkab so‘rovlarni kichikroq bo‘laklarga bo‘lishi mumkin.
- Compactor: Parquet kabi saqlash joylari uchun, kichik log bo‘laklarini katta bloklarga siqib, o‘qishni optimallashtiradi.
Loki loglarni indekslash uchun Prometheusga o‘xshash etiketlar tizimini ishlatadi. So‘rovlar LogQL tilida bajariladi, u PromQL ga o‘xshash sintaksisga ega va etiketlar va mazmun bo‘yicha filtrlash, shuningdek, agregatsiyalarni amalga oshirish imkonini beradi.
Grafana bilan integratsiya juda yaqin, Loki ma’lumotlar manbai sifatida ishlaydi. Loglar, ayniqsa, Prometheus metriklariga o‘xshash etiketlar yordamida osongina bog‘lanadi.
LogQL misollari:
// "production" namespace’dan barcha loglarni tanlang
{namespace="production"}
// "production" namespace’dan va "error" so‘zini o‘z ichiga olgan loglarni tanlang
{namespace="production"} |= "error"
// So‘nggi bir soat ichida log yozuvlarining sonini, konteyner bo‘yicha guruhlangan holda hisoblang
sum by (container) (count_over_time({namespace="production"}[1h]))
Loki, Kubernetes klasterlarida Promtail agentlari (daemonset) yoki Fluentd/Fluent Bit chiqish plaginlari yordamida loglarni yig‘ish va Loki ga yuborish uchun ishlatiladi. S3 bilan mos keladigan saqlash backend sifatida ishlatiladi.
Loki ning afzalliklari:
- Faqat metama’lumotlarni indekslash orqali iqtisodiy samaradorlik.
- Yuqori kengaytiriluvchanlik.
- ELK kabi og‘ir tizimlarga nisbatan oson o‘rnatish va boshqarish.
- Grafana/Prometheus ekotizimiga yaqin integratsiya.
Kamchiliklar:
- Loglar ichida to‘liq matnli moslik bo‘yicha qidiruv, rivojlangan qidiruv imkoniyatlari bilan (Elasticsearch kabi).
- Etiketlarning sifat va barqarorligiga bog‘liqlik, samarali indekslash va qidiruv uchun.
Umuman olganda, Loki markazlashtirilgan loglarni yig‘ish uchun a’lo yechim bo‘lib, kengaytiriluvchanlik va Grafana bilan integratsiya qilish zarur bo‘lsa, va har bir log maydonida to‘liq matnli qidiruv muhim bo‘lmasa, ideal tanlovdir.