Mlebet Kubernetes: EFK vs PLG

Mlebet Kubernetes: EFK vs PLG

Pemantauan wis dadi komponen penting banget kanggo ngembangake solusi awan amarga kerumitan sistem sing disebarake saya tambah. Iku perlu kanggo ngerti prilaku sing. Kita butuh alat sing bisa diukur sing bisa ngumpulake data saka kabeh layanan - lan nyedhiyakake spesialis kanthi antarmuka siji kanthi analisis kinerja, demonstrasi kesalahan, kasedhiyan lan log.

Piranti sing padha iki kudu efisien lan produktif. Ing artikel iki, kita bakal ndeleng rong tumpukan teknologi populer: EFK (Elasticsearch) lan PLG (Loki) lan mriksa arsitektur lan bedane.

EFK tumpukan

Sampeyan bisa uga wis krungu babagan ELK utawa EFK sing populer banget. Tumpukan kasebut kalebu sawetara bagean sing bΓ©da: Elasticsearch (panyimpenan obyek), Logstash utawa FluentD (koleksi lan agregasi log), lan Kibana kanggo visualisasi.

Alur kerja khas katon kaya iki:

Mlebet Kubernetes: EFK vs PLG

Elasticsearch - panyimpenan obyek sing disebarake kanthi telusuran lan analytics wektu nyata. Solusi sing apik kanggo data semi-terstruktur kayata log. Informasi disimpen minangka dokumen JSON, diindeks ing wektu nyata lan disebarake ing node kluster. Indeks terbalik digunakake, ngemot kabeh tembung unik lan dokumen sing gegandhengan kanggo panelusuran teks lengkap, sing adhedhasar mesin telusur Apache Lucene.

LancarD yaiku pangumpule dhata kang manunggalake dhata nalika nglumpukake lan nggunakake. Iku nyoba kanggo ngatur data ing JSON sabisa. Arsitektur sawijining extensible, ana liyane atusan ekstensi beda, komunitas-didhukung, kanggo kabeh kesempatan.

kibana - alat visualisasi data kanggo Elasticsearch kanthi macem-macem kapabilitas tambahan, contone, analisis seri wektu, analisis grafik, sinau mesin lan liya-liyane.

arsitektur Elasticsearch

Data kluster Elasticsearch disimpen ing kabeh simpul. Kluster kasusun saka macem-macem kelenjar kanggo nambah kasedhiyan lan daya tahan. Sembarang simpul bisa nindakake kabeh peran kluster, nanging ing panyebaran skala gedhe, simpul biasane diwenehi tugas individu.

Tipe node cluster:

  • master node - ngatur kluster, paling ora telung dibutuhake, siji tansah aktif;
  • simpul data - nyimpen data sing diindeks lan nindakake macem-macem tugas;
  • simpul ingest - ngatur pipa kanggo ngowahi data sadurunge ngindeks;
  • koordinat simpul - panjaluk nuntun, nyuda fase pangolahan telusuran, koordinasi indeksasi massa;
  • simpul alerting - ngluncurake tugas tandha;
  • machine learning node - ngolah tugas machine learning.

Diagram ing ngisor iki nuduhake carane data disimpen lan ditiru liwat simpul kanggo entuk kasedhiyan data sing luwih dhuwur.

Mlebet Kubernetes: EFK vs PLG

Saben data replika disimpen ing indeks terbalik, diagram ing ngisor iki nuduhake kepiye kedadeyan kasebut:

Mlebet Kubernetes: EFK vs PLG

Instalasi

Rincian bisa dideleng kene, Aku bakal nggunakake grafik helm:

$ helm install efk-stack stable/elastic-stack --set logstash.enabled=false --set fluentd.enabled=true --set fluentd-elastics

PLG tumpukan

Aja kaget yen sampeyan ora bisa nemokake akronim iki, amarga luwih dikenal minangka Grafana Loki. Ing kasus apa wae, tumpukan iki entuk popularitas amarga nggunakake solusi teknis sing wis kabukten. Sampeyan bisa uga wis krungu babagan Grafana, alat visualisasi sing populer. Pencipta, sing diilhami dening Prometheus, ngembangake Loki, sistem agregasi log kanthi skala horisontal lan kinerja dhuwur. Loki mung ngindeks metadata, dudu jurnal dhewe, solusi teknis sing ngidini supaya gampang digunakake lan larang regane.

Promtail - agen kanggo ngirim log saka sistem operasi kanggo kluster Loki. Grafana minangka alat visualisasi adhedhasar data saka Loki.

Mlebet Kubernetes: EFK vs PLG

Loki dibangun kanthi prinsip sing padha karo Prometheus, saengga cocog kanggo nyimpen lan nganalisa log Kubernetes.

arsitektur Loki

Loki bisa ditindakake minangka proses siji utawa pirang-pirang proses, ngidini skala horisontal.

Mlebet Kubernetes: EFK vs PLG

Bisa uga minangka aplikasi monolitik utawa minangka layanan mikro. Mlaku minangka proses siji bisa migunani kanggo pangembangan lokal utawa kanggo ngawasi cilik. Kanggo implementasine industri lan beban kerja sing bisa diukur, disaranake nggunakake pilihan layanan mikro. Path kanggo nulis lan maca data dipisahake, supaya bisa disetel kanthi apik lan skala yen perlu.

Ayo ndeleng arsitektur sistem koleksi log tanpa rinci:

Mlebet Kubernetes: EFK vs PLG

Lan iki gambaran (arsitektur microservice):

Mlebet Kubernetes: EFK vs PLG

Komponen:

Promtail - agen sing diinstal ing simpul (minangka sakumpulan layanan), mbusak log saka tugas lan ngakses API Kubernetes kanggo njupuk metadata sing bakal menehi tag log. Banjur ngirim log menyang layanan Loki utama. Pemetaan metadata ndhukung aturan menehi tag sing padha karo Prometheus.

Distributor - distributor layanan sing dianggo minangka buffer. Kanggo ngolah mayuta-yuta cathetan, ngemas data sing mlebu, ngompres ing blok nalika teka. Sawetara sinks data mlaku bebarengan, nanging log sing ana ing siji aliran data sing mlebu mung kudu katon ing salah sijine kanggo kabeh blok kasebut. Iki diatur dadi dering sink lan hashing urutan. Kanggo toleransi fault lan redundansi, iki rampung n kaping (3 yen ora diatur).

Ingester - panrima layanan. Pamblokiran data teka dikompres karo log ditambahake. Sawise pamblokiran wis cukup ukuran, pemblokiran wis flushed menyang database. Metadata menyang indeks, lan data saka blok log menyang Chunks (biasane panyimpenan obyek). Sawise ngreset, panrima nggawe blok anyar ing ngendi entri anyar bakal ditambahake.

Mlebet Kubernetes: EFK vs PLG

Index - database, DynamoDB, Cassandra, Google BigTable, lsp.

Bongkahan - pamblokiran log ing wangun teken, biasane disimpen ing panyimpenan obyek, contone, S3.

Querier - dalan maca sing nindakake kabeh karya reged. Iku katon ing sawetara wektu lan timestamp, banjur katon ing indeks kanggo nemokake cocog. Sabanjure, maca blok data lan nyaring kanggo entuk asil.

Saiki ayo ndeleng kabeh tumindak.

Instalasi

Cara paling gampang kanggo nginstal ing Kubernetes yaiku nggunakake helm. Kita nganggep yen sampeyan wis nginstal lan ngatur (lan versi katelu! kira-kira. penerjemah)

Tambah repositori lan instal tumpukan.

$ helm repo add loki https://grafana.github.io/loki/charts
$ helm repo update
$ helm upgrade --install loki loki/loki-stack --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false

Ing ngisor iki minangka conto dashboard sing nuduhake data saka Prometheus kanggo metrik Etcd lan Loki kanggo log pod Etcd.

Mlebet Kubernetes: EFK vs PLG

Saiki ayo ngrembug arsitektur loro sistem kasebut, lan uga mbandhingake kemampuane.

Perbandingan

Basa pitakon

Elasticsearch nggunakake Query DSL lan basa pitakon Lucene kanggo nyedhiyakake kapabilitas panelusuran teks lengkap. Iki minangka mesin telusur sing mapan lan kuat kanthi dhukungan operator sing wiyar. Kanthi, sampeyan bisa nelusuri miturut konteks lan urut miturut relevansi.

Ing sisih liyane dering LogQL, digunakake ing Loki, penerus PromQL (Prometheus query language). Iki nggunakake tag log kanggo nyaring lan milih data log. Sampeyan bisa nggunakake sawetara operator lan aritmetika kaya sing diterangake kene, nanging ing syarat-syarat kemampuan iku lags konco basa Elastis.

Amarga pitakon ing Loki digandhengake karo tag, mula gampang digandhengake karo metrik, lan minangka asil, luwih gampang ngatur pemantauan operasional.

Skalabilitas

Kaloro tumpukan kasebut bisa diukur kanthi horisontal, nanging Loki nggampangake amarga nduweni jalur maca lan nulis sing kapisah lan arsitektur layanan mikro. Loki bisa disesuaikan kanggo cocog karo kabutuhan lan bisa digunakake kanggo volume data log sing akeh banget.

Multitenancy

Multitenancy cluster minangka tema umum ing singkatan OPEX, loro tumpukan nyedhiyakake multitenancy. Ana sawetara kanggo Elasticsearch cara pemisahan klien: indeks kapisah kanggo saben klien, nuntun basis klien, lapangan klien unik, saringan telusuran. Loki wis dhukungan ing wangun header HTTP X-Scope-OrgID.

biaya

Loki cukup efektif amarga kasunyatane ora ngindeks data, mung metadata. Iki entuk tabungan ing panyimpenan lan memori (cache), amarga panyimpenan obyek luwih murah tinimbang panyimpenan blok, sing digunakake ing klompok Elasticsearch.

kesimpulan

Tumpukan EFK bisa digunakake kanggo macem-macem tujuan, nyedhiyakake keluwesan maksimal lan antarmuka Kibana sing sugih fitur kanggo analytics, visualisasi, lan pitakon. Bisa luwih ditingkatake kanthi kemampuan machine learning.

Tumpukan Loki migunani ing ekosistem Kubernetes amarga mekanisme panemuan metadata. Sampeyan bisa kanthi gampang nggandhengake data kanggo ngawasi adhedhasar seri wektu ing Grafana lan log.

Nalika nerangake biaya lan panyimpenan log jangka panjang, Loki minangka titik entri sing apik kanggo solusi awan.

Ana luwih akeh alternatif ing pasar - sawetara bisa uga luwih apik kanggo sampeyan. Contone, GKE duwe integrasi Stackdriver sing nyedhiyakake solusi pemantauan sing apik banget. Kita ora kalebu ing analisis kita ing artikel iki.

Cathetan:

Artikel kasebut diterjemahake lan disiapake kanggo Habr dening karyawan Pusat pelatihan Slurm - kursus intensif, kursus video lan pelatihan perusahaan saka spesialis praktik (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)

Source: www.habr.com

Add a comment