Sobes.tech
Middle

რამდენად იცნობთ Grafana-ს ადგილობრივ ლოგის შეგროვებელს Loki-ს?

sobes.tech AI

პასუხი AI-სგან

Loki լավ հայտնի է: Դա հորիզոնականորեն մասշտաբելի, բարձր հասանելի համակարգ է լոգների հավաքման համար, որը մշակել է Grafana Labs: Հիմնական առանձնահատկությունը՝ մետադատների (լեյբլների) միայն ինդեքսավորումն է, ոչ թե ամբողջ բովանդակությունը, ինչը զգալիորեն նվազեցնում է պահեստավորման և ինդեքսավորման ծախսերը:

Loki-ի ճարտարապետությունը ներառում է մի քանի հիմնական բաղադրիչներ:

  • Distributor: Ստանում է մուտքային լոգները, վավերացնում է դրանք, շարդավորում և ուղարկում է Ingester-ին:
  • Ingester: Պատասխանատու է լոգների գրանցման համար երկարաժամկետ պահեստում (օրինակ՝ S3, GCS, MinIO կամ տեղական պահեստ) և վերջին տվյալների կեշավորում հիշողության մեջ՝ հարցումների արագացման համար:
  • Querier/Query-Frontend: Հետազոտում է լոգների ընթերցման հարցումները: Querier-ը կարող է տվյալներ պահանջել ինչպես Ingesters-ից (վերջին լոգների համար), այնպես էլ երկարաժամկետ պահեստից: Query-Frontend-ը կարող է կեշավորել արդյունքները և բարդ հարցումները բաժանել ավելի փոքր մասերի:
  • Compactor: Օգտագործվում է Parquet պես պահեստների համար՝ փոքր կտորները մեծացնել և օպտիմալացնել ընթերցումը:

Loki-ն օգտագործում է Prometheus-պես նշանների համակարգ՝ լոգների ինդեքսավորման համար: Հարցումները կատարվում են LogQL լեզվով, որը սինտաքսիկապես նման է PromQL-ին և թույլ է տալիս ֆիլտրել լոգները նշանների և բովանդակության միջոցով, ինչպես նաև կատարել ագրեգացիաներ:

Գրাফանայի հետ ինտեգրացիան շատ սերտ է, Loki-ն աշխատում է որպես տվյալների աղբյուր: Լոգերը հեշտությամբ կապվում են Prometheus մետрикների հետ՝ նույն նշանների միջոցով:

Օրինակներ LogQL-ի օգտագործման համար:

// Ընտրել բոլոր լոգները "production" անվանակարգից
{namespace="production"}

// Ընտրել "production" անվանակարգից լոգներ, որոնք պարունակում են "error" բառը
{namespace="production"} |= "error"

// Հաշվել լոգ գրառումների քանակը վերջին ժամում՝ խմբավորված կոնտեյներով
sum by (container) (count_over_time({namespace="production"}[1h]))

Loki-ն օգտագործվում է Kubernetes կլաստերներում Promtail (daemonset) կամ Fluentd/Fluent Bit output plugin-ով՝ լոգների հավաքման և ուղարկման համար: S3-համատեղելի պահեստը օգտագործվում է որպես բեկենդ:

Loki-ի առավելությունները՝

  • Հեշտ և էկոնոմիկ ինդեքսավորում՝ միայն մետադատների համար:
  • Բարձր մասշտաբայնություն:
  • Հեշտ տեղադրում և շահագործում՝ համեմատած ծանր համակարգերի (օրինակ՝ ELK):
  • Թեև ինտեգրացիա՝ Grafana/Prometheus համակարգերի հետ:

Նշաններ՝

  • Փնտրում միայն տեքստային համընկնում՝ լոգների ներսում՝ առանց առաջադեմ որոնողական հնարավորությունների:
  • Զависимость նշանների որակից և կոնսիստենտությունից՝ արդյունավետ ինդեքսավորման և որոնման համար:

Ընդհանուր առմամբ, Loki-ը հիանալի լուծում է կենտրոնական լոգների հավաքման համար՝ երբ անհրաժեշտ է մասշտաբայնություն և ինտեգրացիա Grafana-ի հետ, իսկ տեքստային որոնումը յուրաքանչյուր դաշտում չի հանդիսանում критիկական պահանջ։