Kuunganidza matanda kubva kuLoki

Kuunganidza matanda kubva kuLoki

PaBadoo, tinogara tichitarisa matekinoroji matsva uye kuongorora kana akakodzera kushandisa muhurongwa hwedu. Tinoda kugovera chimwe chezvidzidzo izvi nenharaunda. Yakatsaurirwa kuna Loki, iyo log aggregation system.

Loki ndiyo mhinduro yekuchengetedza nekuona matanda, uye iyi stack inopawo inoshanduka sisitimu yekuaongorora uye kutumira data kuPrometheus. Muna Chivabvu, imwe gadziriso yakaburitswa, iyo inokurudzirwa zvakanyanya nevagadziri. Isu taifarira izvo Loki anogona kuita, chii chaanopa, uye kusvika papi iyo inogona kuita seimwe nzira kune ELK, iyo stack yatinoshandisa ikozvino.

Chii chinonzi Loki

Grafana Loki seti yezvikamu zveiyo yakazara sisitimu yekushanda nematanda. Kusiyana nemamwe masisitimu akafanana, Loki yakavakirwa pane pfungwa yekunongedza chete log metadata - zvinyorwa (zvakafanana nezviri muPrometheus), uye kumanikidza matanda iwo pachawo kuita machunks akasiyana.

Peji peji, GitHub

Tisati tapinda mune zvaunogona kuita naLoki, ndinoda kujekesa zvatinoreva ne "pfungwa yekuisa metadata chete." Ngatienzanisei nzira yeLoki uye nzira yekuisa indexing mune yechinyakare mhinduro senge Elasticsearch, tichishandisa muenzaniso wemutsara kubva kune nginx log:

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"

Tsika dzechinyakare dzinoparura mutsara wese, kusanganisira minda ine nhamba yakakura yeakasarudzika user_id uye item_id kukosha, uye chengeta zvese muma indexes makuru. Chakanakira nzira iyi ndechekuti iwe unogona kumhanya yakaoma mibvunzo nekukurumidza, sezvo rinenge data rese riri mune index. Asi izvi zvinouya nemutengo wekuti index inova yakakura, iyo inoshandura mundangariro zvinodiwa. Nekuda kweizvozvo, iyo yakazara-manyoro log indekisi inofananidzwa muhukuru kune matanda pachawo. Kuti ikurumidze kutsvaga kuburikidza nayo, iyo index inofanira kuiswa mundangariro. Uye iyo yakawanda matanda, iyo inokurumidza iyo index inokura uye iyo yakawanda ndangariro inodya.

Iyo Loki nzira inoda kuti chete iyo data inodiwa inotorwa kubva kune tambo, iyo nhamba yehutsika idiki. Nenzira iyi tinowana indekisi diki uye tinogona kutsvaga data nekuisefa nenguva uye neminda yakarongedzerwa, tobva taongorora mamwe nematauriro akajairwa kana tambo yekutsvaga. Maitiro acho haaite seanokurumidza, asi Loki anotsemura chikumbiro muzvikamu zvakati wandei uye anozviita nenzira yakafanana, achigadzira yakawanda data munguva pfupi. Nhamba ye shards uye zvikumbiro zvakafanana mazviri zvinogadziriswa; saka, huwandu hwe data hunogona kugadziriswa pachikamu chenguva zvinoenderana nemutsara pane huwandu hwezviwanikwa zvakapihwa.

Uku kutengeserana pakati pehombe, inokurumidza index uye diki, parallel brute-force index inobvumira Loki kudzora mutengo wehurongwa. Inogona kugadzirwa nyore nyore uye kuwedzerwa maererano nezvinodiwa.

Iyo Loki stack ine zvikamu zvitatu: Promtail, Loki, Grafana. Promtail inounganidza matanda, inoagadzirisa uye inotumira kuLoki. Loki anovachengeta. Uye Grafana inogona kukumbira data kubva kuLoki uye kuiratidza. Kazhinji, Loki inogona kushandiswa kwete chete kuchengetedza matanda uye kutsvaga kuburikidza nawo. Iyo yese stack inopa mikana mikuru yekugadzirisa uye kuongorora inouya data uchishandisa iyo Prometheus nzira.
Tsanangudzo yegadziriro yekuisa inogona kuwanikwa pano.

Log Search

Unogona kutsvaga matanda mune yakakosha Grafana interface - Explorer. Iyo mibvunzo inoshandisa mutauro weLogQL, uyo wakafanana nePromQL inoshandiswa muPrometheus. Muchidimbu, inogona kufungidzirwa seyakagoverwa grep.

Iyo yekutsvaga interface inotaridzika seizvi:

Kuunganidza matanda kubva kuLoki

Chikumbiro pachacho chine zvikamu zviviri: selector uye sefa. Selector inotsvaga uchishandisa indexed metadata (mavara) anopihwa kumatanda, uye sefa itambo yekutsvaga kana regexp inosefa marekodhi anotsanangurwa neanosarudza. Mumuenzaniso wakapihwa: Mumabrace akamonana pane anosarudza, zvese zvinotevera sefa.

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

Nekuda kwemashandiro anoita Loki, haugone kubvunza pasina anosarudza, asi mavara anogona kuitwa akajairwa sezvaunoda.

Sarudzo chinhu chakakosha-chikoshi mumabhureki akamonana. Unogona kusanganisa vanosarudza uye kudoma mamiriro akasiyana ekutsvaga uchishandisa vashandisi =, != kana mataurirwo enguva dzose:

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

Sefa imavara kana regexp inosefa data rese rakatambirwa neanosarudza.

Izvo zvinokwanisika kuwana ad-hoc magirafu zvichibva pane yakagamuchirwa data mune metrics modhi. Semuenzaniso, unogona kuona kuti kangani iyo yekupinda ine tambo index inooneka mu nginx matanda:

Kuunganidza matanda kubva kuLoki

Tsanangudzo yakazara yezvikwanisiro inogona kuwanikwa mune zvinyorwa LogQL.

Log parsing

Pane nzira dzakawanda dzekuunganidza matanda:

  • Uchishandisa Promtail, chikamu chakajairwa chestack yekuunganidza matanda.
  • Yakananga kubva kune docker mudziyo uchishandisa Loki Docker Logging Driver.
  • Shandisa Fluentd kana Fluent Bit, iyo inogona kutumira data kuLoki. Kusiyana nePromtail, ivo vane akagadzirira-akagadzirwa parsers kune chero mhando yerogi uye anogona zvakare kubata akawanda matanda.

Kazhinji Promtail inoshandiswa kupatsanura. Inoita zvinhu zvitatu:

  • Inotsvaga zvinyorwa zve data.
  • Anonamira mavara paari.
  • Inotumira data kuLoki.

Parizvino Promtail inogona kuverenga matanda kubva kumafaira emuno uye kubva systemd magazine. Inofanirwa kuiswa pamushini wega wega kubva kune iyo matanda anounganidzwa.

Iko kubatanidzwa neKubernetes: Promtail otomatiki, kuburikidza neKubernetes REST API, inoona mamiriro eboka uye inounganidza matanda kubva node, sevhisi kana pod, nekukasira kutumira zvinyorwa zvinoenderana nemetadata kubva Kubernetes (zita repod, zita refaira, nezvimwewo) .

Iwe unogona zvakare kuturika zvinyorwa zvichibva pane data kubva kulogi uchishandisa Pipeline. Pipeline Promtail inogona kuve nemhando ina dzematanho. Mamwe mashoko mukati zvinyorwa zvepamutemo, ini ndichakurumidza kuona mamwe manuances.

  1. Parsing stages. Iyi ndiyo RegEx uye JSON nhanho. Panguva ino, tinobvisa data kubva mumatanda mune iyo inonzi yakabviswa mepu. Tinogona kutora kubva kuJSON nekungokopa minda yatinoda mumepu yakabviswa, kana kuburikidza neanogara achitaurwa (RegEx), uko mapoka ane mazita "akamepuwa" mumepu yakabviswa. Mepu Yakabviswa ichitoro chakakosha-chinokosha, uko kiyi izita remunda, uye kukosha ndiko kukosha kwayo kubva mumatanda.
  2. Shandura matanho. Iyi nhanho ine sarudzo mbiri: shandura, kwatinoisa mitemo yekushandura, uye sosi - iyo data sosi yeshanduko kubva pamepu yakabviswa. Kana pasina munda wakadaro mumepu yakabviswa, ichagadzirwa. Nenzira iyi zvinokwanisika kugadzira mavara asina kubva pamepu yakabviswa. Panguva ino tinogona kushandura data mumepu yakabviswa tichishandisa zvine simba Golang Template. Mukuwedzera, tinofanira kuyeuka kuti mepu yakabviswa inotakurwa zvachose panguva yekuenzanisa, izvo zvinoita kuti zvikwanise, semuenzaniso, kutarisa kukosha mairi: "{{if .tag}tag value iripo{end}}". Template inotsigira mamiriro, zvishwe, uye mamwe tambo mabasa akadai Replace uye Trim.
  3. Matanho ekuita. Panguva ino iwe unogona kuita chimwe chinhu neyakabviswa zvemukati:
    • Gadzira label kubva kune yakatorwa data, iyo inozonyorwa neLoki.
    • Shandura kana kuseta nguva yechiitiko kubva kurogi.
    • Chinja data (log text) inoenda kuLoki.
    • Gadzira zviyero.
  4. Kusefa matanho. Iyo nhanho yemutambo, kwatinogona kutumira zvinyorwa zvatisingade ku / dev / null kana kuendesa mberi kuti zvigadziriswe.

Ndichishandisa muenzaniso wekugadzirisa nguva dzose nginx matanda, ini ndicharatidza maitiro aungaita matanda uchishandisa Promtail.

Paye bvunzo, ngatitore senginx-proxy yakagadziridzwa nginx mufananidzo jwilder/nginx-proxy:alpine uye diki daemon inogona kuzvibvunza kuburikidza neHTTP. Iyo daemon ine akati wandei ekugumira, kwaanogona kupa mhinduro dzehukuru hwakasiyana, ine akasiyana HTTP mamiriro uye nekunonoka kwakasiyana.

Tichaunganidza matanda kubva mumidziyo yedocker, inogona kuwanikwa munzira /var/lib/docker/containers/ / -json.log

Mu docker-compose.yml isu tinogadzirisa Promtail uye tinotsanangura nzira yekugadziriswa:

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'
 // ...

Wedzera nzira kumatanda kune promtail.yml (kune "docker" sarudzo mune config, iyo inoita chinhu chimwe chete mumutsetse mumwe, asi zvingasava zvakajeka):

scrape_configs:
 - job_name: containers

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

Kana iyi gadziriso ikagoneswa, matanda kubva mumidziyo yese anozotumirwa kuLoki. Kuti tidzivise izvi, isu tinoshandura marongero ebvunzo nginx mu docker-compose.yml - wedzera danda remateki munda:

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

Kugadzirisa promtail.yml uye kumisikidza Pipeline. Iko kupinza kunosanganisira matanda emhando inotevera:

{"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"}

Pipeline stage:

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

Isu tinobvisa iyo fields stream, attrs, attrs.tag (kana iripo) kubva kuJSON iri kuuya toiisa mumepu yakatorwa.

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

Kana isu takakwanisa kuisa iyo tag ndima mumepu yakabviswa, tozoshandisa regexp tinobvisa mazita emufananidzo uye mudziyo.

 - labels:
     image_name:
     container_name:

Isu tinogovera mavara. Kana iyo image_name uye container_name makiyi awanikwa mune yakabviswa data, ipapo hunhu hwavo hunozopihwa kune anoenderana mavara.

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

Tinorasa matanda ese asina ma label image_name ne container_name.

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

Kune ese matanda ane image_name is nginx.promtail.test, bvisa iyo log field kubva kune source log woiisa mumepu yakabviswa ine row key.

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

Isu tinojekesa mutsara wekuisa nemataurirwo akajairwa uye kuburitsa iyo nginx virtual host uye nginx log mutsara.

     - 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.]+)")?

Parse nginx log uchishandisa zvinowanzoitika.

    - 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>[^/?.]+).*$

Ngatikurukurei request_url. Tichishandisa regexp tinoona chinangwa chechikumbiro: kune static data, kumifananidzo, kuAPI uye kuseta kiyi inoenderana mumepu yakabviswa.

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

Tichishandisa zvimiro zvevashandisi muTempleti, tinotarisa minda yakaiswa mumepu yakabviswa uye toseta hunhu hunodiwa hwechikumbiro_type ndima: mufananidzo, static, API. Ipa imwe kana ikatadza. request_type ikozvino ine mhando yekukumbira.

       - labels:
           api_request:
           virtual_host:
           request_type:
           status:

Isu tinoisa mavara api_request, virtual_host, request_type uye chimiro (HTTP chimiro) zvichibva pane zvatakakwanisa kuisa mumepu yakabviswa.

       - output:
           source: nginx_log_row

Shandura kubuda. Iye zvino iyo yakacheneswa nginx log kubva pamepu yakabviswa inoenda kuLoki.

Kuunganidza matanda kubva kuLoki

Mushure mekushandisa iyo iri pamusoro config, iwe unogona kuona kuti imwe neimwe yekupinda inopihwa mavara zvichienderana nedata kubva kurogi.

Chinhu chimwe chekuchengeta mupfungwa ndechekuti kudzoreredza mavara ane huwandu hukuru hwehukoshi (kadhiinality) inogona kudzikamisa Loki zvakanyanya. Ndiko kuti, haufanirwe kuisa, semuenzaniso, user_id mune index. Verenga zvakawanda pamusoro peizvi mune chinyorwa "Mazita emuLoki anogona kuita mibvunzo yelogi nekukurumidza uye nyore" Asi izvi hazvireve kuti haugone kutsvaga nemushandisi_id pasina indexes. Iwe unofanirwa kushandisa mafirita paunenge uchitsvaga ("bata" iyo data), uye indekisi iri pano inoita sechiratidzo chekuyerera.

Kuona matanda

Kuunganidza matanda kubva kuLoki

Loki inogona kuita senge sosi yedata yeGrafana magirafu uchishandisa LogQL. Izvi zvinotevera zvinotsigirwa:

  • chiyero - nhamba yezvinyorwa pasekondi;
  • kuverenga nekufamba kwenguva - nhamba yemarekodhi mune yakatarwa renji.

Kune zvakare aggregation mabasa Sum, Avg nevamwe. Unogona kuvaka magirafu akaomarara, semuenzaniso girafu yehuwandu hwezvikanganiso zveHTTP:

Kuunganidza matanda kubva kuLoki

Iyo yakajairwa data sosi Loki yakati dererei mukushanda kana ichienzaniswa neiyo Prometheus data sosi (semuenzaniso, haugone kushandura ngano), asi Loki inogona kubatana sesosi neiyo Prometheus mhando. Handina chokwadi kana ichi chakanyorwa maitiro, asi tichitonga nemhinduro yevagadziri "Maitiro ekugadzirisa Loki sePrometheus datasource? Β· Nyaya #1222 Β· grafana/loki”, semuenzaniso, zviri pamutemo zvachose, uye Loki inoenderana zvizere nePromQL.

Wedzera Loki sesosi yedata ine mhando Prometheus uye wedzera URL / loki:

Kuunganidza matanda kubva kuLoki

Uye isu tinogona kugadzira magirafu, sekunge tiri kushanda nemametrics kubva kuPrometheus:

Kuunganidza matanda kubva kuLoki

Ini ndinofunga kuti kusawirirana mukushanda ndekwenguva pfupi uye vanogadzira vachagadzirisa izvi mune ramangwana.

Kuunganidza matanda kubva kuLoki

Metrics

Loki inopa kugona kuburitsa manhamba metrics kubva mumatanda uye kutumira kuPrometheus. Semuyenzaniso, iyo nginx log ine nhamba yemabhaiti pamhinduro imwe neimwe, uyezve, neimwe shanduko yeyakajairwa log fomati, nguva mumasekonzi iyo yakatora kupindura. Iyi data inogona kutorwa uye kutumirwa kuPrometheus.

Wedzera chimwe chikamu 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

Iyo sarudzo inobvumidza iwe kutsanangura uye kugadzirisa metrics zvichienderana nedata kubva pamepu yakabviswa. Aya metrics haana kutumirwa kuLoki - anoonekwa muPromtail /metrics endpoint. Prometheus inofanirwa kugadzirwa kuti igamuchire data yakagamuchirwa panguva ino. Mumuenzaniso uri pamusoro, we request_type="api" tinounganidza histogram metric. Nerudzi urwu rwemetrics zviri nyore kuwana mapercentile. Kune static uye mufananidzo, tinounganidza huwandu hwemabhaiti uye nhamba yemitsara yatakagamuchira mabhaiti kuverenga avhareji.

Verenga zvakawanda nezve metrics pano.

Vhura chiteshi paPromtail:

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

Ita shuwa kuti mametric ane promtail_custom prefix anooneka:

Kuunganidza matanda kubva kuLoki

Kugadzira Prometheus. Wedzera basa promtail:

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

Uye isu tinodhirowa girafu:

Kuunganidza matanda kubva kuLoki

Nenzira iyi unogona kuziva, semuenzaniso, iyo ina inononoka mibvunzo. Iwe unogona zvakare kuseta yekutarisa kune aya metrics.

Kuyera

Loki inogona kunge iri mune imwe chete mabhinari modhi kana mune sharded modhi (yakatwasuka-scalable modhi). Muchiitiko chechipiri, inogona kuchengetedza data kune gore, uye chunks uye index zvakachengetwa zvakasiyana. Shanduro 1.5 inosvitsa kugona kuchengeta munzvimbo imwechete, asi haisati yakurudzirwa kuishandisa mukugadzira.

Kuunganidza matanda kubva kuLoki

Chunks inogona kuchengetwa muS3-inoenderana chengetedzo, uye yakachinjika scalable dhatabhesi inogona kushandiswa kuchengeta indexes: Cassandra, BigTable kana DynamoDB. Zvimwe zvikamu zveLoki - Vashambadziri (zvekunyora) uye Querier (yemibvunzo) - hazvina chimiro uye zvakare anoyera akatwasuka.

Pamusangano weDevOpsDays Vancouver 2019, mumwe wevatori vechikamu Callum Styan akazivisa kuti naLoki chirongwa chake chine mapetabytes ematanda ane index isingasviki 1% yehukuru hwakazara: "Iyo Loki Inobatanidza Metrics uye Logs - Uye Inokuchengetera Mari".

Kuenzanisa kweLoki uye ELK

Index size

Kuti ndiedze mhedzisiro saizi ye index, ndakatora matanda kubva munginx mudziyo iyo iyo Pipeline iri pamusoro yakagadziridzwa. Iyo log file yaive nemitsara ye406 ine huwandu hwe624 MB. Matanda akagadzirwa mukati meawa, angangoita zana ekupinda pasekondi.

Muenzaniso wemitsara miviri kubva kurogi:

Kuunganidza matanda kubva kuLoki

Kana yakanyorwa neELK, izvi zvakapa saizi ye30,3 MB:

Kuunganidza matanda kubva kuLoki

Panyaya yeLoki, izvi zvakakonzera ingangoita 128 KB ye index uye ingangoita 3,8 MB yedata mumachunks. Izvo zvakakosha kuti ticherechedze kuti irogi rakagadzirwa nemaoko uye harina dhata rakakura. A simple gzip pane yepakutanga Docker JSON log ine data yakapa compression ye95,4%, uye tichifunga nezvekuti chete yakacheneswa nginx log yakatumirwa kuLoki pachayo, compression inosvika 4 MB inonzwisisika. Huwandu hwehuwandu hwakasarudzika hwemavara eLoki hwaive makumi matatu neshanu, hunotsanangura hudiki hweiyo index. Kune ELK danda rakabviswa zvakare. Nekudaro, Loki akadzvanya data rekutanga ne35%, uye ELK ne96%.

Memory kushandiswa

Kuunganidza matanda kubva kuLoki

Kana tikaenzanisa iyo yose Prometheus uye ELK stack, ipapo Loki "anodya" kakawanda zvishoma. Zviripachena kuti sevhisi yeGo inoshandisa isingasviki sevhisi yeJava, uye kuenzanisa saizi yeJVM Heap Elasticsearch uye yakagoverwa ndangariro yeLoki haina kururama, asi zvisinei zvakakosha kucherechedza kuti Loki anoshandisa ndangariro shoma. Yayo CPU mukana haisi pachena, asi iripo zvakare.

Speed

Loki "inomedza" matanda nekukurumidza. Iko kumhanya kunoenderana nezvakawanda zvinhu - rudzi rwematanda ndeapi, isu takanyanyisa sei mukuapatsanura, network, dhisiki, nezvimwewo - asi iyo yakakwira kupfuura ELK (mubvunzo wangu - kaviri zvakapetwa kaviri). Izvi zvinotsanangurwa nenyaya yekuti Loki anoisa data shoma mune index uye, zvinoenderana, anoshandisa nguva shoma pane indexing. Nekumhanya kwekutsvaga, mamiriro acho akasiyana: Loki anononoka kudzika pane data rakakura kupfuura akati wandei gigabytes, nepo ELK yekutsvaga kumhanya isingaenderane nehukuru hwe data.

Log Search

Loki yakanyanya kuderera kune ELK maererano neiyo log yekutsvaga kugona. Grep ine mataurirwo enguva dzose ine simba, asi yakaderera kune yakakura dhatabhesi. Kushaikwa kwemibvunzo yemhando, kuunganidzwa chete nemazita, kusakwanisa kutsvaga pasina mavara - zvese izvi zvinotitadzisa kutsvaga ruzivo rwekufarira muLoki. Izvi hazvireve kuti hapana chinogona kuwanikwa uchishandisa Loki, asi inotsanangura kuyerera kwekushanda nematanda paunotanga kuwana dambudziko mumachati ePrometheus, uye wozoshandisa mavara aya kutarisa zvakaitika mumatanda.

inowanikwa

Chokutanga pane zvose, zvakanaka (ndine urombo, handina kukwanisa kuramba). Grafana ine yakanaka inotaridzika interface, asi Kibana yakanyanya kupfuma.

Zvakanakira uye zvakaipa zveLoki

Imwe yemabhenefiti ndeyekuti Loki anobatanidza nePrometheus, saka tinowana metrics uye kunyevera kunze kwebhokisi. Iri nyore kuunganidza matanda uye nekuachengeta kubva Kubernetes Pods, sezvo iine sevhisi kuwanikwa yakagarwa nhaka kubva kuPrometheus uye inozvisungirira zvinyorwa.

Izvo zvakaderera zvinyorwa zvisina kusimba. Zvimwe zvinhu, semuenzaniso, maficha uye kugona kwePromtail, ini ndakawana chete mukuita kudzidza kodhi, rombo rakanaka iyo yakavhurika-sosi. Chimwe chinokanganisa kugona kusasimba kwekugona. Semuyenzaniso, Loki haakwanise kupatsanura matanda akawanda. Chimwe chinokanganisa ndechekuti Loki idiki tekinoroji (kuburitsa 1.0 kwaive muna Mbudzi 2019).

mhedziso

Loki ndeye 100% inonakidza tekinoroji inokodzera madiki uye epakati-saizi mapurojekiti, achikubvumidza iwe kugadzirisa akawanda matambudziko ekuunganidza log, kutsvaga kwelogi, kutarisa uye kuongororwa kwelogi.

Isu hatishandise Loki muBadoo nekuti isu tine ELK stack inokodzera isu uye iyo yakafukidzwa neakasiyana etsika mhinduro mumakore. Kwatiri, chigumbuso chiri kutsvaga kuburikidza nematanda. Neanenge 100 GB yematanda pazuva, zvakakosha kuti isu tikwanise kuwana zvese uye zvishoma uye kuzviita nekukurumidza. Pakuchata uye kutarisa, isu tinoshandisa dzimwe mhinduro dzakagadzirirwa kune zvatinoda uye dzakabatanidzwa kune mumwe nemumwe. Iyo Loki stack ine mabhenefiti anobatika, asi haizotipe zvakawanda kupfuura zvatatova nazvo, uye mabhenefiti ayo zvirokwazvo haapfuure mutengo wekutama.

Uye kunyangwe mushure mekutsvagisa zvakava pachena kuti isu hatigone kushandisa Loki, isu tinovimba kuti iyi positi ichakubatsira musarudzo yako.

Iyo repository ine kodhi yakashandiswa muchinyorwa inowanikwa pano.

Source: www.habr.com

Voeg