Grafana-nın yerli log toplayıcısı Loki ilə nə qədər tanışsınız?
sobes.tech Süni İntellekt
AI-dan cavab
Loki-ni yaxşı bilirəm. Bu, Grafana Labs tərəfindən hazırlanmış üfüqi miqyaslana bilən, yüksək mövcud və çox kirayəçi logların toplanması sistemidir. Əsas xüsusiyyəti odur ki, o, bütün logların məzmunu yerinə yalnız metadataları (etiketləri) indeksləşdirir, bu da saxlama və indeksləşdirmə xərclərini əhəmiyyətli dərəcədə azaldır.
Loki-nin memarlığı aşağıdakı əsas komponentləri əhatə edir:
- Distributor: Gələn logları qəbul edir, onları təsdiqləyir, parçalara bölür və Ingester-ə yönəldir.
- Ingester: Logların uzunmüddətli saxlanması üçün məsuliyyət daşıyır (məsələn, S3, GCS, MinIO və ya yerli saxlama) və sorğuları sürətləndirmək üçün ən son məlumatları yaddaşda cache edir.
- Querier/Query-Frontend: Logların oxunması üçün sorğuları işləyir. Querier, həm Ingesters-dən (yeni loglar üçün), həm də uzunmüddətli saxlama sistemindən məlumat tələb edə bilər. Query-Frontend nəticələri cache edə və mürəkkəb sorğuları kiçik hissələrə bölə bilər.
- Compactor: Parquet kimi saxlama yerləri üçün, kiçik log parçalarını daha böyük bloklara sıxışdırır və oxumağı optimallaşdırır.
Loki, logların indeksləşdirilməsi üçün Prometheus-ə bənzər etiketlər sistemindən istifadə edir. Sorğular LogQL dilində həyata keçirilir, bu, PromQL-ə bənzər sintaksisə malikdir və etiketlər və məzmun üzrə filtrləmə və toplulaşdırma imkanı verir.
Grafana ilə inteqrasiya çox sıxdır, Loki məlumat mənbəyi kimi fəaliyyət göstərir. Loglar, eyni etiketlərdən istifadə etməklə Prometheus metriklərinə asanlıqla bağlana bilər.
LogQL nümunələri:
// "production" namespace-dən bütün logları seç
{namespace="production"}
// "production" namespace-dən və "error" sözünü ehtiva edən logları seç
{namespace="production"} |= "error"
// Son bir saatda log girişlərinin sayını, konteynerə görə qruplaşdıraraq hesabla
sum by (container) (count_over_time({namespace="production"}[1h]))
Loki, Kubernetes klasterlərində Promtail agentləri (daemonset) və ya Fluentd/Fluent Bit çıxış pluginləri ilə logların toplanması və Loki-yə göndərilməsi üçün istifadə olunur. S3 uyğun saxlama backend kimi istifadə edilir.
Loki-nin üstünlükləri:
- Yalnız metadataların indeksləşdirilməsi ilə iqtisadi səmərəlilik.
- Yüksək miqyaslana bilmə qabiliyyəti.
- Daha ağır sistemlərlə müqayisədə asan yerləşdirmə və idarəetmə (məsələn, ELK).
- Grafana/Prometheus ekosistemi ilə sıx inteqrasiya.
Əksikliklər:
- Logların daxilində tam mətn uyğunluğu ilə axtarış, inkişaf etmiş axtarış imkanları olmadan (Elasticsearch kimi).
- Etiketlərin keyfiyyəti və ardıcıllığına bağlılıq, effektiv indeksləşdirmə və axtarış üçün.
Ümumilikdə, Loki, miqyaslana bilən və Grafana ilə inteqrasiya tələb edən mərkəzləşdirilmiş log toplama üçün mükəmməl həll yoludur və hər bir log sahəsində tam mətn axtarışı vacib deyil.