Iqoqa izingodo ku-Loki

Iqoqa izingodo ku-Loki

Thina kwa-Badoo sihlala siqapha ubuchwepheshe obusha futhi sihlola ukuthi sibusebenzise noma singabusebenzisi ohlelweni lwethu. Sifuna ukwabelana nomphakathi ngesinye salezi zifundo. Inikezelwe ku-Loki, uhlelo lokuhlanganisa amalogi.

I-Loki iyisixazululo sokugcina nokubuka izingodo, futhi lesi sitaki siphinde sinikeze uhlelo oluguquguqukayo lokuwahlaziya nokuthumela idatha ku-Prometheus. NgoMeyi, kwakhululwa esinye isibuyekezo, esikhuthazwa ngenkuthalo ngabadali. Besikuthakasele lokho u-Loki angakwenza, iziphi izici ayinikezayo, nokuthi ingasebenza ngezinga elingakanani njengenye i-ELK, isitaki esisisebenzisayo manje.

Yini Loki

I-Grafana Loki iyisethi yezingxenye zesistimu yokugawula ephelele. Ngokungafani nezinye izinhlelo ezifanayo, i-Loki isekelwe embonweni wokukhombisa imethadatha yelogi kuphela - amalebula (njengaku-Prometheus), kanye nokucindezela izingodo ngokwazo eceleni zibe izingcezu ezihlukene.

Ikhasi lasekhaya, GitHub

Ngaphambi kokuthi ngingene kulokho ongakwenza ngo-Loki, ngifuna ukucacisa ukuthi kusho ukuthini "umbono wokukhomba kuphela imethadatha". Ake siqhathanise indlela ye-Loki nendlela yokukhomba ezixazululweni zendabuko, njenge-Elasticsearch, sisebenzisa isibonelo somugqa osuka kulogi ye-nginx:

172.19.0.4 - - [01/Jun/2020:12:05:03 +0000] "GET /purchase?user_id=75146478&item_id=34234 HTTP/1.1" 500 8102 "-" "Stub_Bot/3.0" "0.001"

Amasistimu endabuko ancozulula wonke umugqa, okuhlanganisa izinkambu ezinamavelu amaningi ahlukile obunikazi bomsebenzisi kanye ne-item_id, futhi agcine yonke into ngezinkomba ezinkulu. Inzuzo yale ndlela ukuthi ungakwazi ukugijima imibuzo eyinkimbinkimbi ngokushesha, njengoba cishe yonke idatha ikunkomba. Kodwa kufanele ukhokhele lokhu ngokuthi inkomba iba nkulu, ehumusha ezidingweni zenkumbulo. Ngenxa yalokho, inkomba yombhalo ogcwele wamalogi iqathaniswa ngosayizi namalogi ngokwawo. Ukuze useshe ngokushesha kuyo, inkomba kufanele ilayishwe kumemori. Futhi amalogi amaningi, inkomba ikhula ngokushesha futhi inkumbulo eyengeziwe idla.

Indlela ye-Loki idinga ukuthi kukhishwe idatha edingekayo kuphela ochungechungeni, inani lamanani amancane. Ngale ndlela sithola inkomba encane futhi singakwazi ukusesha idatha ngokuyihlunga ngesikhathi nezinkambu ezikhonjiwe, bese siskena okusele ngezinkulumo ezivamile noma ukusesha kweyunithi yezinhlamvu ezincane. Inqubo ayibonakali ishesha kakhulu, kodwa u-Loki uhlukanisa isicelo sibe izingxenye ezimbalwa futhi azenze ngokufana, acubungule inani elikhulu ledatha ngesikhathi esifushane. Inani lamashadi kanye nezicelo ezihambisanayo kuzo ziyalungiseka; ngakho-ke, inani ledatha elingasetshenzwa ngeyunithi ngayinye yesikhathi lincike ngokuqondile enanini lezinsiza ezinikeziwe.

Lokhu kuhwebelana phakathi kwenkomba enkulu esheshayo kanye nenkomba encane ehambisanayo ye-brute-force ivumela u-Loki ukuthi alawule izindleko zesistimu. Ingacushwa ngokuguquguqukayo futhi inwetshwe ngokwezidingo zakho.

Isitaki se-Loki siqukethe izingxenye ezintathu: i-Promtail, i-Loki, i-Grafana. I-Promtail iqoqa amalogi, iwacubungule futhi iwathumele ku-Loki. ULoki uyazigcina. Futhi uGrafana angacela idatha ku-Loki futhi ayibonise. Ngokuvamile, i-Loki ingasetshenziswa hhayi kuphela ukugcina izingodo nokusesha kuzo. Sonke isitaki sinikeza amathuba amahle okucubungula nokuhlaziya idatha engenayo usebenzisa indlela ye-Prometheus.
Incazelo yenqubo yokufaka ingatholakala lapha.

Ukusesha Ngelogi

Ungasesha izingodo ku-interface ekhethekile Grafana - Explorer. Imibuzo isebenzisa ulimi lwe-LogQL, olufana kakhulu ne-PromQL esetshenziswa u-Prometheus. Empeleni, ingacatshangwa njenge-grep esabalalisiwe.

Isixhumanisi sokusesha sibukeka kanje:

Iqoqa izingodo ku-Loki

Umbuzo ngokwawo uqukethe izingxenye ezimbili: isikhethi nesihlungi. Isikhethi siwusesho lwemethadatha enenkomba (amalebula) anikezwe amalogi, futhi isihlungi kuwuchungechunge lokusesha noma i-regexp ehlunga amarekhodi achazwe yisikhethi. Esibonelweni esinikeziwe: Kubakaki abagoqekile - isikhethi, yonke into ngemva - isihlungi.

{image_name="nginx.promtail.test"} |= "index"

Ngenxa yendlela u-Loki asebenza ngayo, awukwazi ukwenza izicelo ngaphandle kwesikhethi, kodwa amalebula angenziwa ajwayelekile ngokuzenzakalelayo.

Isikhethi siyinani elingukhiye yenani kuzikaki ezigoqekile. Ungakwazi ukuhlanganisa abakhethi futhi ucacise izimo zokusesha ezehlukene usebenzisa =, != ama-opharetha noma izinkulumo ezivamile:

{instance=~"kafka-[23]",name!="kafka-dev"} 
// Найдёт Π»ΠΎΠ³ΠΈ с Π»Π΅ΠΉΠ±Π»ΠΎΠΌ instance, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ kafka-2, kafka-3, ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ dev 

Isihlungi siwumbhalo noma i-regexp ezohlunga yonke idatha etholwe yisikhethi.

Kungenzeka ukuthola amagrafu we-ad-hoc ngokusekelwe kudatha etholiwe kumodi yamamethrikhi. Isibonelo, ungathola imvamisa yokwenzeka kulogi ye-nginx kokufakwayo okuqukethe iyunithi yezinhlamvu zenkomba:

Iqoqa izingodo ku-Loki

Incazelo egcwele yezici ingatholakala emibhalweni I-LogQL.

Ukuhlahlela ilogu

Kunezindlela ezimbalwa zokuqoqa izingodo:

  • Ngosizo lwe-Promtail, ingxenye evamile yesitaki yokuqoqa amalogi.
  • Ngqo kusuka esitsheni se-docker usebenzisa I-Loki Docker Logging Driver.
  • Sebenzisa i-Fluentd noma i-Fluent Bit engathumela idatha ku-Loki. Ngokungafani ne-Promtail, banabahlaluli enziwe ngomumo cishe banoma yiluphi uhlobo lwelogi futhi bangakwazi nokusingatha izingodo zemigqa eminingi.

Ngokuvamile i-Promtail isetshenziselwa ukuhlukanisa. Yenza izinto ezintathu:

  • Ithola imithombo yedatha.
  • Namathisela amalebula kuzo.
  • Ithumela idatha ku-Loki.

Okwamanje i-Promtail ingafunda amalogu kumafayela endawo nakujenali ye-systemd. Kufanele ifakwe kuwo wonke umshini okuqoqwa kuwo izingodo.

Kukhona ukuhlanganiswa ne-Kubernetes: I-Promtail ithola ngokuzenzakalelayo isimo seqoqo nge-Kubernetes REST API futhi iqoqa amalogi ku-node, isevisi noma i-pod, ngokushesha ithumele amalebula asekelwe kumethadatha evela ku-Kubernetes (igama le-pod, igama lefayela, njll.).

Ungaphinda ulengise amalebula ngokusekelwe kudatha evela kulogi usebenzisa i-Pipeline. I-Pipeline Promtail ingaba nezinhlobo ezine zezigaba. Imininingwane eyengeziwe - ku imibhalo esemthethweni, ngizoqaphela ngokushesha amanye ama-nuances.

  1. Izigaba zokuhlaziya. Lesi yisigaba se-RegEx ne-JSON. Kulesi sigaba, sikhipha idatha kusuka kulogi siyise kulokho okubizwa ngokuthi imephu ekhishiwe. Ungakwazi ukukhipha ku-JSON ngokumane ukopishe izinkambu esizidingayo kumephu ekhishiwe, noma ngokusebenzisa izinkulumo ezivamile (RegEx), lapho amaqembu aqanjwe amagama "emephuwe" kumephu ekhishiwe. Imephu ekhishiwe isitoreji senani elingukhiye, lapho ukhiye kuyigama lenkambu, futhi inani liyinani layo kusukela kulogi.
  2. Guqula izigaba. Lesi sigaba sinezinketho ezimbili: ukuguqula, lapho sibeka khona imithetho yenguquko, kanye nomthombo - umthombo wedatha wenguquko kumephu ekhishiwe. Uma ingekho inkambu enjalo kumephu ekhishiwe, izobe isidalwa. Ngakho-ke, kungenzeka ukudala amalebula angasuselwe kumephu ekhishiwe. Kulesi sigaba, singakwazi ukukhohlisa idatha kumephu ekhishiwe sisebenzisa okunamandla ithempulethi ye-golang. Ngaphezu kwalokho, kufanele sikhumbule ukuthi imephu ekhishiwe ilayishwa ngokugcwele ngesikhathi sokuhlaziya, okwenza kube nokwenzeka, ngokwesibonelo, ukuhlola ivelu kuyo: β€œ{{if .tag}inani lomaka likhona{end}}”. Isifanekiso sisekela izimo, amaluphu, neminye imisebenzi yeyunithi yezinhlamvu efana nokuthi Faka futhi Nciphisa.
  3. Izigaba zesenzo. Kulesi sigaba, ungenza okuthile ngokukhishiwe:
    • Dala ilebula kudatha ekhishiwe, ezokhonjwa ngu-Loki.
    • Shintsha noma setha isikhathi somcimbi kulogi.
    • Shintsha idatha (umbhalo welogi) ezoya ku-Loki.
    • Dala amamethrikhi.
  4. Izigaba zokuhlunga. Isiteji sokufanisa, lapho singathumela khona amarekhodi esingawadingi siwa/dev/null, noma siwathumele ukuze acutshungulwe okwengeziwe.

Ngisebenzisa isibonelo sokucubungula izingodo ezijwayelekile ze-nginx, ngizobonisa ukuthi ungawahlaziya kanjani amalogi usebenzisa i-Promtail.

Ukuze kuhlolwe, ake sithathe isithombe esilungisiwe se-nginx jwilder/nginx-proxy:alpine kanye ne-daemon encane engazibuza yona nge-HTTP njengommeleli we-nginx. I-daemon ineziphetho ezimbalwa, enganikeza kuzo izimpendulo zosayizi abahlukahlukene, ngezimo ezihlukene ze-HTTP kanye nokubambezeleka okuhlukile.

Sizoqoqa izingodo ezitsheni ze-docker, ezingatholakala endleleni /var/lib/docker/containers/ / -json.log

Ku-docker-compose.yml simisa i-Promtail futhi sicacisa indlela eya ekucushweni:

promtail:
  image: grafana/promtail:1.4.1
 // ...
 volumes:
   - /var/lib/docker/containers:/var/lib/docker/containers:ro
   - promtail-data:/var/lib/promtail/positions
   - ${PWD}/promtail/docker.yml:/etc/promtail/promtail.yml
 command:
   - '-config.file=/etc/promtail/promtail.yml'
 // ...

Engeza indlela eya kulogi ku-promtail.yml (kukhona inketho ethi "docker" ekucushweni eyenza okufanayo emugqeni owodwa, kodwa ngeke kucace kangako):

scrape_configs:
 - job_name: containers

   static_configs:
       labels:
         job: containerlogs
         __path__: /var/lib/docker/containers/*/*log  # for linux only

Uma lokhu kulungiselelwa kunikwe amandla, u-Loki uzothola amalogi avela kuzo zonke iziqukathi. Ukuze sigweme lokhu, sishintsha izilungiselelo zokuhlola nginx ku-docker-compose.yml - engeza ukungena kunkambu yethegi:

proxy:
 image: nginx.test.v3
//…
 logging:
   driver: "json-file"
   options:
     tag: "{{.ImageName}}|{{.Name}}"

Hlela i-promtail.yml bese usetha iPipeline. Amalogi ami kanje:

{"log":"u001b[0;33;1mnginx.1    | u001b[0mnginx.test 172.28.0.3 - - [13/Jun/2020:23:25:50 +0000] "GET /api/index HTTP/1.1" 200 0 "-" "Stub_Bot/0.1" "0.096"n","stream":"stdout","attrs":{"tag":"nginx.promtail.test|proxy.prober"},"time":"2020-06-13T23:25:50.66740443Z"}
{"log":"u001b[0;33;1mnginx.1    | u001b[0mnginx.test 172.28.0.3 - - [13/Jun/2020:23:25:50 +0000] "GET /200 HTTP/1.1" 200 0 "-" "Stub_Bot/0.1" "0.000"n","stream":"stdout","attrs":{"tag":"nginx.promtail.test|proxy.prober"},"time":"2020-06-13T23:25:50.702925272Z"}

izigaba zamapayipi:

 - json:
     expressions:
       stream: stream
       attrs: attrs
       tag: attrs.tag

Sikhipha izinkambu zokusakaza, i-atrs, i-attrs.tag (uma zikhona) ku-JSON engenayo futhi sizifake kumephu ekhishiwe.

 - regex:
     expression: ^(?P<image_name>([^|]+))|(?P<container_name>([^|]+))$
     source: "tag"

Uma bekwazile ukubeka inkambu yomaka kumephu ekhishiwe, bese sisebenzisa i-regexp sikhipha amagama esithombe nesiqukathi.

 - labels:
     image_name:
     container_name:

Sabela amalebula. Uma okhiye begama_legama negama le-container kutholakala kudatha ekhishiwe, khona-ke amanani abo azokwabelwa amalebula afanelekile.

 - match:
     selector: '{job="docker",container_name="",image_name=""}'
     action: drop

Silahla wonke amalogi angenawo amalebula image_name kanye nesethi_yegama lesiqukathi.

  - match:
     selector: '{image_name="nginx.promtail.test"}'
     stages:
       - json:
           expressions:
             row: log

Kuwo wonke amalogi anegama_lesithombe_elilingana nokuthi nginx.promtail.test, khipha inkambu yelogi kulogi yomthombo bese uyifake kumephu ekhishiwe ngokhiye womugqa.

  - regex:
         # suppress forego colors
         expression: .+nginx.+|.+[0m(?P<virtual_host>[a-z_.-]+) +(?P<nginxlog>.+)
         source: logrow

Sisula intambo yokufaka ngezinkulumo ezijwayelekile bese sikhipha umsingathi we-nginx kanye nomugqa welogi we-nginx.

     - regex:
         source: nginxlog
         expression: ^(?P<ip>[w.]+) - (?P<user>[^ ]*) [(?P<timestamp>[^ ]+).*] "(?P<method>[^ ]*) (?P<request_url>[^ ]*) (?P<request_http_protocol>[^ ]*)" (?P<status>[d]+) (?P<bytes_out>[d]+) "(?P<http_referer>[^"]*)" "(?P<user_agent>[^"]*)"( "(?P<response_time>[d.]+)")?

Hlaziya ilogi ye-nginx ngamazwi avamile.

    - regex:
           source: request_url
           expression: ^.+.(?P<static_type>jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$
     - regex:
           source: request_url
           expression: ^/photo/(?P<photo>[^/?.]+).*$
       - regex:
           source: request_url
           expression: ^/api/(?P<api_request>[^/?.]+).*$

Hlunga isicelo_i-url. Ngosizo lwe-regexp, sinquma inhloso yesicelo: kuma-statics, ezithombeni, ku-API futhi setha ukhiye ohambisanayo kumephu ekhishiwe.

       - template:
           source: request_type
           template: "{{if .photo}}photo{{else if .static_type}}static{{else if .api_request}}api{{else}}other{{end}}"

Sisebenzisa ama-opharetha anemibandela kokuthi Isifanekiso, sihlola izinkambu ezifakiwe kumephu ekhishiwe bese sibeka amanani adingekayo enkambu ye-application_type: isithombe, i-static, i-API. Yabela okunye uma kwehlulekile. Manje request_type iqukethe uhlobo lwesicelo.

       - labels:
           api_request:
           virtual_host:
           request_type:
           status:

Sisetha amalebula api_request, virtual_host, request_type kanye nesimo (isimo se-HTTP) ngokusekelwe kulokho esikwazile ukukufaka kumephu ekhishiwe.

       - output:
           source: nginx_log_row

Shintsha okukhiphayo. Manje ilogi ye-nginx ehlanziwe kumephu ekhishiwe iya ku-Loki.

Iqoqa izingodo ku-Loki

Ngemva kokusebenzisa ukumisa okungenhla, ungabona ukuthi okufakiwe ngakunye kubhalwe ngokusekelwe kudatha evela kulogi.

Khumbula ukuthi ukukhipha amalebula anenani elikhulu lamanani (ubukhazikhazi) kunganciphisa kakhulu i-Loki. Okusho ukuthi, akufanele ufake inkomba, isibonelo, umsebenzisi_id. Funda kabanzi ngalokhu esihlokweniAmalebula ku-Loki angayenza kanjani imibuzo yelogi isheshe futhi ibe lula". Kodwa lokhu akusho ukuthi awukwazi ukusesha nge-user_id ngaphandle kwezinkomba. Kuyadingeka ukusebenzisa izihlungi lapho usesha (β€œbamba” ngokuya ngedatha), futhi inkomba lapha isebenza njengesihlonzi sokusakaza.

Ukubonakala kwelogi

Iqoqa izingodo ku-Loki

I-Loki ingasebenza njengomthombo wedatha wamashadi e-Grafana isebenzisa i-LogQL. Izici ezilandelayo ziyasekelwa:

  • isilinganiso - inani lamarekhodi ngomzuzwana;
  • bala ngokuhamba kwesikhathi - inombolo yamarekhodi ebangeni elinikeziwe.

Kukhona futhi imisebenzi yokuhlanganisa iSum, Avg neminye. Ungakha amagrafu ayinkimbinkimbi, isibonelo, igrafu yenani lamaphutha e-HTTP:

Iqoqa izingodo ku-Loki

Umthombo wedatha ozenzakalelayo ka-Loki awusebenzi kancane kunomthombo wedatha we-Prometheus (isibonelo, awukwazi ukushintsha inganekwane), kodwa i-Loki ingaxhunywa njengomthombo wohlobo lwe-Prometheus. Anginaso isiqiniseko sokuthi lokhu kuwukuziphatha okubhaliwe, kodwa ukwahlulela ngempendulo evela kubathuthukisi β€œUngayimisa kanjani i-Loki njengomthombo wedatha we-Prometheus? Β· Ukukhishwa #1222 Β· grafana/loki”, isibonelo, isemthethweni ngokuphelele futhi i-Loki ihambisana ngokugcwele ne-PromQL.

Engeza i-Loki njengomthombo wedatha ngohlobo lwe-Prometheus bese ufaka i-URL /loki:

Iqoqa izingodo ku-Loki

Futhi ungenza amagrafu, njengokungathi sisebenza ngamamethrikhi avela ku-Prometheus:

Iqoqa izingodo ku-Loki

Ngicabanga ukuthi umehluko ekusebenzeni kungokwesikhashana futhi onjiniyela bazokulungisa ngokuzayo.

Iqoqa izingodo ku-Loki

Amamethrikhi

I-Loki inikeza ikhono lokukhipha amamethrikhi ezinombolo kusukela kulogi futhi uwathumele ku-Prometheus. Isibonelo, ilogi ye-nginx iqukethe inani lamabhayithi ngempendulo ngayinye, futhi, ngokuguqulwa okuthile kwefomethi yelogi evamile, isikhathi samasekhondi esithathiwe ukuphendula. Le datha ingakhishwa futhi ithunyelwe ku-Prometheus.

Engeza esinye isigaba ku-promtail.yml:

- match:
   selector: '{request_type="api"}'
   stages:
     - metrics:
         http_nginx_response_time:
           type: Histogram
           description: "response time ms"
           source: response_time
           config:
             buckets: [0.010,0.050,0.100,0.200,0.500,1.0]
- match:
   selector: '{request_type=~"static|photo"}'
   stages:
     - metrics:
         http_nginx_response_bytes_sum:
           type: Counter
           description: "response bytes sum"
           source: bytes_out
           config:
             action: add
         http_nginx_response_bytes_count:
           type: Counter
           description: "response bytes count"
           source: bytes_out
           config:
             action: inc

Inketho ikuvumela ukuthi uchaze futhi ubuyekeze amamethrikhi asuselwa kudatha evela kumephu ekhishiwe. Lawa mamethrikhi awathunyelwa ku-Loki - avela ku-Promtail/metrics endpoint. I-Prometheus kufanele ilungiselelwe ukuthola idatha kusuka kulesi sigaba. Esibonelweni esingenhla, ku-application_type="api" siqoqa imethrikhi ye-histogram. Ngalolu hlobo lwamamethrikhi kulula ukuthola ama-percentile. Kuma-statics nezithombe, siqoqa isamba samabhayithi kanye nenani lemigqa lapho sithole khona amabhayithi ukuze kubalwe isilinganiso.

Funda kabanzi mayelana namamethrikhi lapha.

Vula imbobo ku-Promtail:

promtail:
     image: grafana/promtail:1.4.1
     container_name: monitoring.promtail
     expose:
       - 9080
     ports:
       - "9080:9080"

Senza isiqiniseko sokuthi amamethrikhi anesiqalo se-promtail_custom avele:

Iqoqa izingodo ku-Loki

Ukusetha i-Prometheus. Engeza ukwaziswa komsebenzi:

- job_name: 'promtail'
 scrape_interval: 10s
 static_configs:
   - targets: ['promtail:9080']

Bese udweba igrafu:

Iqoqa izingodo ku-Loki

Ngale ndlela ungathola, isibonelo, imibuzo emine ehamba kancane. Ungaphinda ulungiselele ukuqapha kulawa mamethrikhi.

Ukukala

I-Loki ingaba kuko kokubili imodi kanambambili eyodwa futhi yashadiwe (imodi evundlile-ukukala). Esimweni sesibili, ingagcina idatha efwini, futhi izingcezu nenkomba zigcinwa ngokuhlukana. Enguqulweni engu-1.5, ikhono lokugcina endaweni eyodwa liyasetshenziswa, kodwa akukakanconywa ukulisebenzisa ekukhiqizeni.

Iqoqa izingodo ku-Loki

Amachunk angagcinwa kusitoreji esisebenzisana ne-S3, ukuze kugcinwe izinkomba, sebenzisa isizindalwazi esingakala esivundlile: Cassandra, BigTable noma DynamoDB. Ezinye izingxenye ze-Loki - Abasabalalisi (zokubhala) kanye ne-Querier (yemibuzo) - azinasimo futhi zilinganisa ngokuvundlile.

Engqungqutheleni ye-DevOpsDays Vancouver 2019, omunye wabahlanganyeli u-Callum Styan umemezele ukuthi ngo-Loki iphrojekthi yakhe ine-petabyte yamalogi anenkomba engaphansi kwe-1% yenani eliphelele: β€œI-Loki Ihlobanisa Kanjani Amamethrikhi Nezingodo - Futhi Ikongela Imali".

Ukuqhathaniswa kwe-Loki ne-ELK

Usayizi wenkomba

Ukuhlola usayizi wenkomba owumphumela, ngithathe izingodo esitsheni se-nginx lapho iPipeline engenhla yalungiselelwa khona. Ifayela lokungena laliqukethe imigqa engu-406 enevolumu ephelele engu-624 MB. Amalogi akhiqizwa phakathi nehora, cishe amarekhodi ayi-109 ngomzuzwana.

Isibonelo semigqa emibili evela kulogi:

Iqoqa izingodo ku-Loki

Lapho kukhonjiswa yi-ELK, lokhu kunikeze usayizi wenkomba ongu-30,3 MB:

Iqoqa izingodo ku-Loki

Endabeni ye-Loki, lokhu kunikeze cishe u-128 KB wenkomba kanye no-3,8 MB wedatha ngezingcezu. Kuyaphawuleka ukuthi ilogu yenziwe ngokungemthetho futhi ayizange ifake idatha ehlukahlukene. I-gzip elula kulogi yasekuqaleni ye-Docker JSON enedatha inikeze ukucindezelwa okungu-95,4%, futhi kunikezwe ukuthi kuphela ilogu ye-nginx ehlanziwe eyathunyelwa ku-Loki uqobo, ukucindezela ku-4 MB kuyaqondakala. Isamba senani lamanani ahlukile amalebula e-Loki lalingama-35, elichaza usayizi omncane wenkomba. Ku-ELK, ilogi nayo yasulwa. Ngakho, u-Loki ucindezele idatha yoqobo ngo-96%, kanye ne-ELK ngo-70%.

Ukusetshenziswa kwememori

Iqoqa izingodo ku-Loki

Uma siqhathanisa yonke inqwaba ye-Prometheus ne-ELK, khona-ke u-Loki "udla" izikhathi ezimbalwa ngaphansi. Kuyacaca ukuthi isevisi ye-Go idla kancane kunesevisi ye-Java, futhi ukuqhathanisa usayizi we-Heap Elasticsearch JVM kanye nememori eyabelwe i-Loki ayilungile, kodwa nokho, kubalulekile ukuqaphela ukuthi u-Loki usebenzisa inkumbulo encane kakhulu. Inzuzo yayo ye-CPU ayibonakali kangako, kodwa futhi ikhona.

Isivinini

U-Loki "udla" izingodo ngokushesha. Ijubane lincike ezicini eziningi - hlobo luni lwezingodo, ukuthi ziyinkimbinkimbi kangakanani, inethiwekhi, idiski, njll. - kodwa nakanjani iphakeme kunaleyo ye-ELK (esivivinyweni sami - cishe izikhathi ezimbili). Lokhu kuchazwa iqiniso lokuthi u-Loki ubeka idatha encane kakhulu kunkomba futhi, ngokufanelekile, uchitha isikhathi esincane enkombeni. Kulesi simo, isimo sihlehliswa ngesivinini sokusesha: I-Loki yehlisa ngokuphawulekayo idatha enkulu kunamagigabhayithi ambalwa, kuyilapho ku-ELK, isivinini sokusesha asincikile kusayizi wedatha.

Ukusesha Ngelogi

I-Loki ingaphansi kakhulu kune-ELK ngokwamakhono okusesha amalogi. I-Grep enezinkulumo ezivamile iyinto enamandla, kodwa ingaphansi kwesizindalwazi sabadala. Ukuntuleka kwemibuzo yobubanzi, ukuhlanganisa ngamalebula kuphela, ukungakwazi ukusesha ngaphandle kwamalebula - konke lokhu kusikhawulela ekusesheni ulwazi esiluthandayo ku-Loki. Lokhu akusho ukuthi akukho lutho olungatholakala kusetshenziswa i-Loki, kodwa ichaza ukugeleza kokusebenza ngamalogi, lapho uqala ukuthola inkinga kumashadi e-Prometheus, bese ubheka ukuthi kwenzekeni ezingodweni usebenzisa lawa malebula.

isikhombikubona

Okokuqala, yinhle (uxolo, ayikwazanga ukumelana). I-Grafana ine-interface ebukeka kahle, kodwa i-Kibana isebenza kakhulu.

Loki okuhle nokubi

Kuma-pluses, kungaqashelwa ukuthi i-Loki ihlanganisa ne-Prometheus, ngokulandelana, sithola amamethrikhi futhi sixwayisa ngaphandle kwebhokisi. Ilungele ukuqoqa amalogi futhi uwagcine nge-Kubernetes Pods, njengoba inokutholwa kwesevisi ezuzwe njengefa ku-Prometheus futhi inamathisele amalebula ngokuzenzakalelayo.

Of the minuses - imibhalo embi. Ezinye izinto, njengezici namandla e-Promtail, ngithole kuphela ngenqubo yokufunda ikhodi, inzuzo yomthombo ovulekile. Okunye okungalungile amandla okuhlaziya abuthakathaka. Isibonelo, u-Loki akakwazi ukuhlaziya izingodo zemigqa eminingi. Futhi, okubi kufaka phakathi iqiniso lokuthi i-Loki iwubuchwepheshe obusha (ukukhishwa okungu-1.0 bekungoNovemba 2019).

isiphetho

I-Loki ubuchwepheshe obuthakaselayo obungu-100% obufanele amaphrojekthi amancane naphakathi, okuvumela ukuthi uxazulule izinkinga eziningi zokuhlanganisa amalogi, ukusesha amalogi, ukuqapha nokuhlaziya izingodo.

Asisebenzisi i-Loki e-Badoo, ngoba sinesitaki se-ELK esisifanelayo futhi esikhule ngezisombululo zangokwezifiso ezahlukahlukene phakathi neminyaka. Kithina, isikhubekiso wukusesha ezingodweni. Cishe nge-100 GB yamalogi ngosuku, kubalulekile kithi ukuthi sikwazi ukuthola yonke into nokunye okwengeziwe futhi sikwenze ngokushesha. Ukubeka amashadi nokuqapha, sisebenzisa ezinye izixazululo ezihambisana nezidingo zethu futhi ezihlanganiswe nomunye. Isitaki se-Loki sinezinzuzo ezibonakalayo, kodwa ngeke zisinikeze okungaphezu kwalokho esinakho, futhi izinzuzo zaso ngeke zidlule ngokunembile izindleko zokufuduka.

Futhi nakuba ngemva kocwaningo kwaba sobala ukuthi asikwazi ukusebenzisa i-Loki, sithemba ukuthi lokhu okuthunyelwe kuzokusiza ekukhetheni.

Indawo yokugcina enekhodi esetshenziswe esihlokweni itholakala lapha.

Source: www.habr.com

Engeza amazwana