ELK Stack -opetusohjelma: Kibana, Logstash & Elasticsearch

⚡ Älykäs yhteenveto

ELK Stack yhdistää kolme avoimen lähdekoodin työkalua — Elasticsearchin, Logstashja Kibana – konetietojen keräämiseen, tallentamiseen, hakemiseen ja visualisointiin, mikä tarjoaa suunnittelutiimeille keskitetyn lokikirjauksen ja reaaliaikaisen analytiikan nopeampaa vianmääritystä varten palvelimilla ja sovelluksissa.

  • 🧩 Pino-roolit: Elasticsearch tallentaa ja indeksoi tietoja, Logstash käsittelee ja lähettää lokit, ja Kibana visualisoi tulokset.
  • 🔎 Elastinen haku: Lucene-pohjainen NoSQL-hakukone, joka indeksoi heterogeenistä dataa ja palauttaa lähes reaaliaikaisia, kokotekstisiä tuloksia REST-rajapinnan kautta.
  • 🛠️ Logstash: Putkilinja, joka vastaanottaa, suodattaa ja muuntaa lokeja useista lähteistä ennen niiden syöttämistä Elasticsearchiin.
  • 📊 Kibana: Verkkosivulla oleva kojelauta, joka muuntaa indeksoidut tiedot interaktiivisiksi kaavioiksi, kartoiksi ja kuvaajiksi nopeaa tutkimista varten.
  • 📦 Elastinen pino: Kevyiden Beats-ratkaisujen toimittajana toimivat tahot keräävät dataa reunalla, minkä vuoksi Elastic nimesi ELK:n uudelleen Elastic Stackiksi.
  • 🏢 Tuotantokäyttö: Netflix, LinkedIn ja Medium käyttävät ELK:ta suurissa klustereissa lokinnusta, tietoturvaa ja valvontaa varten.
  • 🇧🇷 ELK vs. Splunk: ELK on ilmainen ja avoimen lähdekoodin ohjelmisto, kun taas Splunk on kaupallinen alusta, jolla on nopeampi käsittely ja laajemmat integraatiot.

ELK Stack -arkkitehtuuri, joka näyttää, miten Kibana Logstashja Elasticsearch toimivat yhdessä keskitetyn lokinnuksen ja analytiikan mahdollistamiseksi

ELK Stack on yksi käytetyimmistä avoimen lähdekoodin ratkaisuista keskitettyyn lokikirjaukseen ja lokianalytiikkaan. Tämä ELK Stack -opas selittää, mitä Elasticsearch, Logstashja Kibana ovat se, miten nämä kolme työkalua sopivat yhteen ja missä alustaa käytetään tosielämän seurannassa ja havainnointityössä.

Mikä on ELK Stack?

ELK-pino on kokoelma kolmesta avoimen lähdekoodin tuotteesta - Elasticsearch, Logstashja Kibana. Se tarjoaa keskitetyn lokikirjauksen, joka auttaa tunnistamaan palvelimien tai sovellusten ongelmia antamalla sinun hakea kaikkia lokejasi yhdestä paikasta. Se auttaa myös korreloimaan lokeja useiden palvelimien välillä tietyn aikavälin sisällä.

  • E tarkoittaa Elasticsearchia: käytetään lokien tallentamiseen.
  • L tarkoittaa Logstash: käytetään laivaanping, lokien käsittely ja tallennus.
  • K tarkoittaa Kibanaa: a visualisointityökalu (verkkokäyttöliittymä), jota isännöidään Nginxin tai Apachen kautta.

Elasticsearch, Logstashja Kibanaa kehittää, hallinnoi ja ylläpitää yritys nimeltä Joustava.

Yhdessä ELK Stack on suunniteltu siten, että käyttäjät voivat ottaa dataa mistä tahansa lähteestä, missä tahansa muodossa ja sitten hakea, analysoida ja visualisoida sitä reaaliajassa.

ELK-pino Archirakenne

Nyt kun tiedät, mikä pino on, tässä osiossa selitetään ELK-arkkitehtuuri ja miten data virtaa komponenttien välillä.

ELK-prosessi noudattaa selkeää järjestystä, jossa jokaisella työkalulla on oma tehtävänsä:

  • lokit: Analysoitavat palvelinlokit tunnistetaan.
  • Logstash: Kerää lokit ja tapahtumatiedot, jäsentää ja muuntaa ne sitten.
  • Elastinen haku: Data, jonka on muuntanut Logstash tallennetaan, sitä haetaan ja indeksoidaan.
  • Kibana: Käyttää Elasticsearch-tietokantaa oivallusten tutkimiseen, visualisointiin ja jakamiseen.

Usein lisätään kuitenkin neljäs komponentti nimeltä Beats tiedonkeruuta varten. Beats on palvelimille asennettu kevyt shipperi, ja niiden lisääminen johti siihen, että Elastic nimesi ELK:n uudelleen Elastic Stackiksi.

ELK Stack -arkkitehtuurikaavio, joka näyttää Logstash, Elasticsearch ja Kibana-tiedonkulku

Kun käsittelet erittäin suuria tietomääriä, voit lisätä Kafkan tai RabbitMQ:n putken eteen puskuroinnin ja vikasietoisuuden takaamiseksi.

Lisäturvallisuuden takaamiseksi pinon eteen voidaan sijoittaa käänteinen välityspalvelin, kuten Nginx.

ELK Stack -arkkitehtuuri, johon on lisätty Beats-ominaisuuksia tiedonkeruuta varten

Seuraavissa osioissa tarkastellaan lähemmin kutakin pinon avoimen lähdekoodin tuotetta arkkitehtuuri mielessä pitäen.

Mikä on Elasticsearch?

Elasticsearch on a NoSQL-tietokanta Lucene-hakukoneeseen perustuva ja RESTful-rajapinnoilla rakennettu. Se tarjoaa yksinkertaisen käyttöönoton, korkean luotettavuuden ja helpon hallinnan, ja se tallentaa kaikki tietosi keskitetysti, jotta voit suorittaa edistyneitä kyselyitä ja nopeita asiakirjahakuja.

Elasticsearchin avulla voit myös tallentaa, hakea ja analysoida suuria tietomääriä. Sitä käytetään useimmiten pohjana olevana hakumoottorina, joka pyörittää vaativia hakuvaatimuksia omaavia sovelluksia.

Koska Elasticsearch lisää analytiikkaa ja monia edistyneitä ominaisuuksia nopean haun lisäksi, sitä on käytetty laajalti hakukoneissa nykyaikaisissa verkko- ja mobiilisovelluksissa.

Elasticsearchin ominaisuudet

Elasticsearch tarjoaa runsaasti ominaisuuksia datan indeksointiin ja hakemiseen:

  • Avoimen lähdekoodin hakupalvelin, joka on kirjoitettu kielellä Java.
  • Pystyy indeksoimaan minkä tahansa tyyppistä heterogeenistä dataa.
  • Tarjoaa REST API -verkkokäyttöliittymän JSON-tulostuksella.
  • Kokotekstihaku.
  • Lähes reaaliaikainen (NRT) haku.
  • Sirpaloitu, replikoitu ja haettavissa oleva JSON-dokumenttisäilö.
  • Skeematon, REST- ja JSON-pohjainen hajautettu dokumenttivarasto.
  • Monikielinen ja maantieteellisen sijainnin tuki.

Elasticsearchin edut

  • Tallentaa skeematonta dataa ja voi myös luoda skeeman datallesi.
  • Voit käsitellä tietueita yksi kerrallaan käyttämällä usean dokumentin API-rajapintoja.
  • Tukee datan suodattamista ja kyselyä oivallusten saamiseksi.
  • Perustuu Apache Lucene -pohjaiseen ja tarjoaa RESTful-rajapinnan.
  • Tarjoaa horisontaalista skaalautuvuutta, luotettavuutta ja usean vuokralaisen tukiominaisuutta reaaliaikaista indeksointia ja nopeampaa hakua varten.
  • Auttaa skaalaamaan sekä pystysuunnassa että vaakasuunnassa.

Alla oleva taulukko selittää keskeiset termit, joihin törmäät työskennellessäsi Elasticsearchin kanssa:

Termi Käyttö
Cluster Klusteri on kokoelma solmuja, jotka yhdessä säilyttävät dataasi ja tarjoavat yhdistetyt indeksointi- ja hakuominaisuudet.
Solmu Solmu on yksittäinen Elasticsearch-instanssi. Se luodaan, kun Elasticsearch-instanssi käynnistyy.
indeksi Indeksi on kokoelma dokumentteja, joilla on samankaltaisia ​​ominaisuuksia, kuten asiakastiedot tai tuoteluettelo. Se on hyödyllinen indeksointiin, hakuun, päivittämiseen ja poistamiseen, ja voit määrittää useita indeksejä yhteen klusteriin.
Asiakirja Dokumentti on indeksoitavissa oleva tiedon perusyksikkö. Se ilmaistaan ​​JSON-avain-arvo-parina, ja jokaisella dokumentilla on tyyppi ja yksilöllinen tunniste.
Sirpale Jokainen indeksi voidaan jakaa useisiin sirpaleihin datan jakamiseksi. Sirpale on indeksin atomiosa, ja sitä voidaan levittää klusterin poikki lisäämällä solmuja.

Mikä on Logstash?

Logstash on pinon tiedonkeruun työkalu. Se kerää datasyötteitä ja syöttää ne Elasticsearchiin, keräten kaikenlaisia ​​tietoja eri lähteistä ja asettamalla ne saataville jatkokäyttöä varten.

Logstash voi yhdistää dataa eri lähteistä ja normalisoida sen valitsemiisi kohteisiin. Näin voit puhdistaa ja demokratisoida kaiken datasi monenlaisia ​​analytiikka- ja visualisointikäyttötapauksia varten.

Se koostuu kolmesta osasta:

  • input: välittää lokit sisään ja muuntaa ne koneellisesti luettavaan muotoon.
  • Suodattimet: joukko ehtoja, jotka suorittavat tietyn toiminnon tapahtumassa.
  • lähtö: päätöksentekijä, joka reitittää jokaisen käsitellyn tapahtuman tai lokin.

Ominaisuudet Logstash

Logstash sisältää useita ominaisuuksia, jotka tekevät lokien käsittelystä joustavaa:

  • Tapahtumat kulkevat kunkin vaiheen läpi sisäisten jonojen avulla.
  • Sallii lokien syöttämisen eri tavoilla.
  • Tukee lokien suodattamista ja jäsentämistä.

Edut Logstash

  • Keskittää tietojenkäsittelysi.
  • Analysoi monenlaista strukturoitua ja strukturoimatonta dataa ja tapahtumia.
  • Tarjoaa laajennuksia yhteyden muodostamiseen monenlaisiin syöttölähteisiin ja alustoihin.

Mikä on Kibana?

Kibana on ELK-pinon täydentävä datan visualisointityökalu. Sitä käytetään Elasticsearch-dokumenttien visualisointiin, ja se auttaa kehittäjiä saamaan nopeasti käsityksen datastaan ​​interaktiivisten kaavioiden, paikkatiedon ja kuvaajien avulla, jotka tekevät monimutkaisista kyselyistä helposti ymmärrettäviä.

Voit käyttää Kibanaa Elasticsearch-indekseihin tallennetun datan hakemiseen, tarkastelemiseen ja vuorovaikutukseen sen kanssa. Se auttaa myös suorittamaan edistyneitä toimintoja tietojen analysointi ja esitä tietosi erilaisissa taulukoissa, kaavioissa ja kartoissa.

Kibana tukee useita menetelmiä datan hakemiseen. Yleisimmät hakutyypit on lueteltu alla:

Hakutyyppi Käyttö
Vapaa tekstihaku Käytetään tietyn merkkijonon etsimiseen.
Kenttätason haut Käytetään merkkijonon etsimiseen tietystä kentästä.
Loogisia väitteitä Käytetään hakujen yhdistämiseen loogiseksi lausekkeeksi.
Läheisyyshakuja Käytetään tietyn merkkietäisyyden sisällä olevien termien hakemiseen.

Kibana tarjoaa myös useita tehokkaita ominaisuuksia indeksoidun datan tutkimiseen:

  • Tehokas käyttöliittymä, joka visualisoi Elasticsearch-klusterin indeksoitua tietoa.
  • Mahdollistaa indeksoitujen tietojen reaaliaikaisen haun.
  • Voit hakea, tarkastella ja olla vuorovaikutuksessa Elasticsearchiin tallennettujen tietojen kanssa.
  • Suorittaa kyselyitä datasta ja visualisoi tulokset kaavioissa, taulukoissa ja kartoissa.
  • Muokattava kojelauta viipalointia ja lohkomista varten Logstash lokit Elasticsearchissa.
  • Tarjoaa historiatietoja graafien, kaavioiden ja muiden muodossa.
  • Tarjoaa reaaliaikaisia ​​​​koontinäyttöjä, jotka on helppo konfiguroida.

Kibanan edut ja haitat

Kuten millä tahansa työkalulla, Kibanalla on selkeitä vahvuuksia, jotka selittävät sen suosion:

  • Helppo datan visualisointi.
  • Täysin integroitu Elasticsearchin kanssa.
  • Toimii erillisenä visualisointityökaluna.
  • Tarjoaa reaaliaikaisen analyysin, kaavioiden luonnin, yhteenvedon ja virheenkorjauksen.
  • Tarjoaa intuitiivisen ja käyttäjäystävällisen käyttöliittymän.
  • Sallii hakemiesi lokien tilannekuvien jakamisen.
  • Sallii useiden kojelmien tallentamisen ja hallinnan.

Sillä on myös muutamia rajoituksia, jotka on pidettävä mielessä:

  • Se toimii vain, kun tietolähteenä on Elasticsearch.
  • Monimutkaisten raporttinäkymien rakentaminen ja virittäminen voi vaatia jyrkän oppimiskäyrän.

Miksi lokianalyysi?

Pilvipohjaisissa infrastruktuureissa suorituskyky ja eristäytyminen ovat erittäin tärkeitä.

Pilvipalvelussa olevien virtuaalikoneiden suorituskyky voi vaihdella kuormien, ympäristöjen ja aktiivisten käyttäjien määrän mukaan, joten luotettavuudesta ja solmujen vikaantumisesta voi tulla merkittäviä ongelmia.

A lokienhallinta-alusta voi valvoa kaikkia näitä ongelmia. Se voi myös käsitellä käyttöjärjestelmälokeja, Nginx- ja IIS-verkkopalvelinlokeja liikenneanalyysiä varten, sovelluslokeja ja AWS:ssä luotuja lokeja (Amazon Web Services).

Viime kädessä lokinhallinta auttaa DevOps insinöörit ja järjestelmänvalvojat tekevät parempia, datalähtöisiä päätöksiä. Siksi lokitietojen analysoinnista Elastic Stackin tai vastaavien työkalujen avulla on tullut olennainen osa tätä.

ELK vs. Splunk

Yleinen kysymys on, miten ELK-pino vertautuu muihin Splunk, suosittu kaupallinen vaihtoehto. Alla oleva taulukko esittää yhteenvedon tärkeimmistä eroista:

HIRVI Splunk
ELK on avoimen lähdekoodin työkalu. Splunk on kaupallinen työkalu.
ELK ei tarjoa Solaris siirrettävyys Kibanan ansiosta. Splunk tarjoukset Solaris siirrettävyys.
Käsittelynopeus on tiukasti rajoitettu. Tarjoaa tarkan ja nopean käsittelyn.
ELK on teknologiapino, joka on luotu yhdistämällä Elasticsearch, Logstashja Kibana. Splunk on patentoitu työkalu, joka tarjoaa sekä paikallisia että pilviratkaisuja.
ELK:ssa haku, analysointi ja visualisointi ovat mahdollisia vasta pinon määrittämisen jälkeen. Splunk on täydellinen tiedonhallintapaketti suoraan paketista.
ELK tarjoaa rajoitetun sisäänrakennetun integraation muiden työkalujen kanssa. Splunk on hyödyllinen integraatioiden määrittämiseen muiden työkalujen kanssa.

Asiakastapaukset

Monet tunnetut yritykset luottavat ELK Stackiin lokitietojen ja analytiikan suorittamiseen laajamittaisesti. Alla olevat esimerkit havainnollistavat, miten sitä käytetään tuotannossa.

Netflix

Netflix luottaa vahvasti ELK Stackiin asiakaspalvelutoimintojensa tietoturvalokien valvonnassa ja analysoinnissa. Alusta mahdollistaa Netflix indeksoida, tallentaa ja hakea asiakirjoja yli viidessätoista klusterissa, jotka koostuvat noin 800 solmusta.

LinkedIn

Ammattimainen verkostoitumissivusto LinkedIn käyttää ELK Stackia suorituskyvyn ja tietoturvan valvontaan. Sen tiimi integroi ELK:n Kafkaan reaaliaikaisen kuormituksen hallintaan, ja toiminta kattaa yli 100 klusteria kuudessa datakeskuksessa.

Ansalanka

Tripwire, maailmanlaajuinen tietoturva- ja tapahtumienhallinnan (SIEM) tarjoaja, käyttää ELK-pinoa tietopakettilokien analysoinnin tukemiseen.

Keskikova

Suosittu blogien julkaisualusta Medium käyttää ELK Stackia tuotanto-ongelmien vianmääritykseen ja havaitsemiseen DynamoDB kuumimmat kohdat. Pino auttaa yritystä tukemaan 25 miljoonaa yksittäistä lukijaa ja tuhansia uusia julkaisuja joka viikko.

ELK-pinon edut ja haitat

edut

ELK-pino tarjoaa useita etuja, jotka selittävät sen laajan käyttöönoton:

  • Se toimii parhaiten, kun yrityksen eri sovellusten lokit yhdistyvät yhdeksi ELK-instanssiksi.
  • Se tarjoaa rikkaita tietoja yhdestä yksittäisestä instanssista ja poistaa tarpeen kirjautua satoihin erillisiin tietolähteisiin.
  • Nopea asennus paikan päällä.
  • Helppo ottaa käyttöön ja skaalautuu sekä pysty- että vaakasuunnassa.
  • Elastic tarjoaa monia kieliohjelmia, mukaan lukien Rubyn, Python, PHP, Perl, .NET, Javaja JavaSkripti.
  • Kirjastoja on saatavilla monille ohjelmointi- ja skriptikielille.

Haitat

Vahvuuksistaan ​​huolimatta ELK-pinolla on muutamia haittoja, jotka on otettava huomioon:

  • Eri komponenttien hallinta voi vaikeutua siirryttäessä monimutkaisempaan kokoonpanoon.
  • Oppimiskäyrä on todellinen, joten odota jonkin verran kokeilua ja erehdystä kokemuksen karttuessa.

UKK

Beats-työkalut ovat kevyitä, avoimen lähdekoodin tiedonsiirtotyökaluja, jotka asennetaan agentteina palvelimille. Filebeat välittää lokitiedostoja ja Metricbeat kerää järjestelmämittareita. Ne lähettävät dataa suoraan Elasticsearchille tai sen kautta LogstashBeatsien lisääminen tiedonkeruuta varten johti siihen, että Elastic nimesi ELK Stackin uudelleen Elastic Stackiksi.

ELK on lyhenne sanoista Elasticsearch, Logstashja Kibana. Kun Elastic lisäsi valikoimaansa Beatsin, kevyiden datankuljetusratkaisujen tuoteperheensä, yhdistetyn tuotteen nimi muutettiin Elastic Stackiksi. Elastic Stack kuvaa siis samoja kolmea työkalua sekä Beatsia ja lisäominaisuuksia, kuten tietoturvaa ja koneoppimista.

Kyllä. Elasticsearch. Logstashja Kibana ovat ladattavissa ilmaiseksi. Vuodesta 2024 lähtien Elastic on tarjonnut Elasticsearchia ja Kibanaa avoimen lähdekoodin AGPLv3-lisenssillä SSPL- ja Elastic-lisenssien rinnalla. Edistyneet ominaisuudet, kuten koneoppiminen ja hälytykset, edellyttävät maksullista tilaustasoa.

Elasticsearch on skeemajoustava, dokumenttikeskeinen NoSQL-säilö, joka on rakennettu Apache Lucene -alustalle ja jota kyselyt tehdään REST-rajapinnan kautta. Relaatiotietokannat käyttävät kiinteitä taulukoita, rivejä ja SQL:ää ACID-tapahtumilla. Elasticsearch on optimoitu kokotekstihakuun ja lähes reaaliaikaiseen analytiikkaan tiukan transaktioyhtenmukaisuuden sijaan.

Tuotantosolmut tarvitsevat tyypillisesti vähintään 16 Gt RAM-muistia, ja JVM-keon on oltava noin 50 prosenttia muistista ja alle noin 30 Gt. Pienet testi- tai itsenäiset kokoonpanot toimivat vähemmällä muistilla. Beats ja Logstash tarvitsee paljon vähemmän resursseja kuin Elasticsearch.

Grok on Logstash suodatinlaajennus, joka jäsentää strukturoimattomat lokirivit strukturoiduiksi, nimetyiksi kentiksi käyttämällä säännöllisten lausekkeiden pohjalta rakennettuja uudelleenkäytettäviä malleja. Sitä käytetään laajalti esimerkiksitracaikaleimat, IP-osoitteet ja tilakoodit web-palvelimen ja sovelluslokeista ennen niiden indeksointia Elasticsearchissa.

Elasticsearch sisältää sisäänrakennetun koneoppimisen, joka mallintaa normaalia lokitietojen käyttäytymistä ja merkitsee poikkeamat automaattisesti. Nämä AIOps-ominaisuudet ryhmittelevät samankaltaisia ​​viestejä, havaitsevat epätavallisia määriä ja nopeuttavat perussyyanalyysiä, mikä lyhentää keskimääräistä ratkaisuaikaa. Insinöörien tulisi silti tarkistaa merkityt tapahtumat ennen niiden käsittelyä.

Kyllä. Työkaluja, kuten ChatGPT ja GitHub Copilot voi luonnostella Logstash grok-mallit, Elasticsearch Query DSL ja Kibanan asetukset lyhyestä kehotteesta. Testaa aina luodut putket, koska tekoäly saattaa viitata vanhentuneisiin kenttien nimiin tai vanhentuneeseen syntaksiin.

Tiivistä tämä viesti seuraavasti: