რამდენად იცნობთ 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-ի հետ, իսկ տեքստային որոնումը յուրաքանչյուր դաշտում չի հանդիսանում критիկական պահանջ։