Elastisk søk

Visualiser Apache-logger med ELK Stack

Visualiser Apache-logger med ELK Stack

Overvåking og analyse av logger for ulike infrastrukturer i sanntid kan være en kjedelig jobb. Når du arbeider med tjenester som webservere som kontinuerlig logger data, kan prosessen være komplisert og nesten umulig.

Å vite hvordan du bruker verktøy for å overvåke, visualisere og analysere logger i sanntid, kan hjelpe deg med å spore og feilsøke problemer og overvåke mistenkelige systemaktiviteter.

Denne opplæringen vil diskutere hvordan du kan bruke en av de beste sanntids loggsamlingene og analyseverktøyene - ELK. Ved å bruke ELK, kjent som Elasticsearch, Logstash og Kibana, kan du samle inn, logge og analysere data fra en apache-webserver i sanntid.

Hva er ELK Stack?

ELK er et akronym som brukes til å referere til tre hoved open source-verktøy: Elasticsearch, Logstash og Kibana.

Elasticsearch er et åpen kildekodeverktøy utviklet for å finne treff i en stor samling datasett ved hjelp av et utvalg av spørrespråk og -typer. Det er et lett og raskt verktøy som kan håndtere terabyte data enkelt.

Logstash motor er en kobling mellom serversiden og Elasticsearch, slik at du kan samle inn data fra et utvalg kilder til Elasticsearch. Den tilbyr kraftige API-er som er integrerbare med applikasjoner som er utviklet på forskjellige programmeringsspråk.

Kibana er den siste delen av ELK-stakken. Det er et datavisualiseringsverktøy som lar deg analysere dataene visuelt og generere innsiktsfulle rapporter. Det tilbyr også grafer og animasjoner som kan hjelpe deg med å samhandle med dataene dine.

ELK stack er veldig kraftig og kan gjøre utrolige dataanalyser ting.

Selv om de forskjellige konseptene vi vil diskutere i denne opplæringen, vil gi deg en god forståelse av ELK-stakken, bør du vurdere dokumentasjonen for mer informasjon.

Elasticsearch: https: // linkfy.til / Elasticsearch-Reference

Logstash: https: // linkfy.til / LogstashReference

Kibana: https: // linkfy.til / KibanaGuide

Slik installerer du Apache?

Før vi begynner å installere Apache og alle avhengigheter, er det greit å merke seg noen få ting.

Vi testet denne opplæringen på Debian 10.6, men det vil også fungere med andre Linux-distribusjoner.

Avhengig av systemkonfigurasjonen din, trenger du sudo- eller root-tillatelser.

ELK stack kompatibilitet og brukervennlighet kan variere avhengig av versjoner.

Det første trinnet er å sikre at systemet ditt er oppdatert:

sudo apt-get oppdatering
sudo apt-get oppgradering

Neste kommando er å installere apache2-webserveren. Hvis du vil ha en minimal apache installert, fjern dokumentasjonen og verktøyene fra kommandoen nedenfor.

sudo apt-get install apache2 apache2-utils apache2-doc -y
sudo service apache2 start

Nå skal du ha en Apache-server som kjører på systemet ditt.

Slik installerer du Elasticsearch, Logstash og Kibana?

Vi må nå installere ELK-stakken. Vi installerer hvert verktøy individuelt.

Elasticsearch

La oss starte med å installere Elasticsearch. Vi skal bruke apt til å installere det, men du kan få en stabil utgivelse fra den offisielle nedlastingssiden her:

https: // www.elastisk.co / nedlastinger / elasticsearch

Elasticsearch krever Java for å kjøre. Heldigvis kommer den nyeste versjonen med en OpenJDK-pakke, og fjerner bryet med å installere den manuelt. Hvis du trenger å utføre en manuell installasjon, kan du se følgende ressurs:

https: // www.elastisk.co / guide / no / elasticsearch / reference / current / setup.html # jvm-versjon

I neste trinn må vi laste ned og installere den offisielle elastiske APT-signeringsnøkkelen ved hjelp av kommandoen:

wget -qO - https: // gjenstander.elastisk.co / GPG-KEY-elasticsearch | sudo apt-key add -

Før du fortsetter, kan det hende du trenger en apt-transport-https-pakke (påkrevd for pakker som serveres over https) før du fortsetter installasjonen.

sudo apt-get install apt-transport-https

Legg nå til passende repoinformasjon til kildene.liste.d-fil.

ekko “deb https: // gjenstander.elastisk.co / pakker / 7.x / apt stabil hoved ”| sudo tee / etc / apt / sources.liste.d / elastikk-7.x.liste

Oppdater deretter pakkelisten på systemet ditt.

sudo apt-get oppdatering

Installer Elasticsearch ved å bruke kommandoen nedenfor:

sudo apt-get install elasticsearch

Etter å ha installert Elasticsearch, start og aktiver en start ved oppstart med systemctl-kommandoene:

sudo systemctl daemon-reload
sudo systemctl aktiver elastisk søk.service
sudo systemctl start elasticsearch

Tjenesten kan ta litt tid å starte. Vent noen minutter og bekreft at tjenesten er i gang med kommandoen:

sudo systemctl status elasticsearch.service

Bruk cURL til å teste om Elasticsearch API er tilgjengelig, som vist i JSON-utdata nedenfor:

curl -X GET "localhost: 9200 /?ganske"

"name": "debian",
"cluster_name": "elasticsearch",
"cluster_uuid": "VZHcuTUqSsKO1ryHqMDWsg",
"versjon":
"nummer": "7.10.1",
"build_flavor": "standard",
"build_type": "deb",
"build_hash": "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date": "2020-12-05T01: 00: 33.671820Z ",
"build_snapshot": false,
"lucene_version": "8.7.0 ",
"minimum_wire_compatibility_version": "6.8.0 ",
"minimum_index_compatibility_version": "6.0.0-beta1 "
,
“Tagline”: “You Know, for Search”

Hvordan installere Logstash?

Installer logstash-pakken ved hjelp av kommandoen:

sudo apt-get install logstash

Hvordan installere Kibana?

Skriv inn kommandoen nedenfor for å installere kibana:

sudo apt-get install kibana

Slik konfigurerer du Elasticsearch, Logstash og Kibana?

Slik konfigurerer du ELK-stakken:

Hvordan konfigurere Elasticsearch?

I Elasticsearch blir data ordnet i indekser. Hver av disse indeksene har en eller flere skjær. A shard er en selvstendig søkemotor som brukes til å håndtere og administrere indekser og spørsmål for en delmengde i en klynge innen Elasticsearch. En skjær fungerer som en forekomst av en Lucene-indeks.

Standard Elasticsearch-installasjon oppretter fem skjær og en kopi for hver indeks. Dette er en god mekanisme når du er i produksjon. Imidlertid vil vi i denne opplæringen jobbe med ett skjær og ingen replikaer.

Start med å lage en indeksmal i JSON-format. I filen vil vi sette antall skjær til en og ingen kopier for samsvarende indeksnavn (utviklingsformål).

I Elasticsearch refererer en indeksmal til hvordan du instruerer Elasticsearch i å sette opp indeksen under opprettelsesprosessen.

Inne i json malfilen (index_template.json), skriv inn følgende instruksjoner:


"mal":"*",
"innstillinger":
"indeks":
"number_of_shards": 1,
"number_of_replicas": 0


Bruk cURL til å bruke json-konfigurasjonen i malen, som vil bli brukt på alle indeksene som er opprettet.

krøll -X PUT http: // localhost: 9200 / _template / standardinnstillinger -H 'Content-Type: application / json' -d @index_template.json
"anerkjent": sant

Når den er brukt, vil Elasticsearch svare med en anerkjent: sann uttalelse.

Hvordan konfigurere Logstash?

For at Logstash skal samle logger fra Apache, må vi konfigurere den til å se på eventuelle endringer i loggene ved å samle inn, behandle og deretter lagre loggene i Elasticsearch. For at det skal skje, må du sette opp banen for samlelogg i Logstash.

Start med å opprette Logstash-konfigurasjon i filen / etc / logstash / conf.d / apache.konf

inngang
fil
sti => '/ var / www / * / logs / access.Logg'
type => "apache"


filter
grok
match => "message" => "% COMBINEDAPACHELOG"


utgang
elastiksøk

Sørg nå for å aktivere og starte logstash-tjenesten.

sudo systemctl aktiver logstash.service
sudo systemctl start logstash.service

Hvordan aktivere og konfigurere Kibana?

For å aktivere Kibana, rediger hovedmenyen .yml-konfigurasjonsfil som ligger i / etc / kibana / kibana.yml. Finn følgende oppføringer og fjern merking av dem. Når du er ferdig, bruk systemctl for å starte Kibana-tjenesten.

server.port: 5601
server.vert: "localhost"
sudo systemctl aktiver kibana.service && sudo systemctl start kibana.service

Kibana oppretter indeksmønstre basert på de behandlede dataene. Derfor må du samle logger ved hjelp av Logstash og lagre dem i Elasticsearch, som Kibana kan bruke. Bruk curl for å generere logger fra Apache.

Når du har logger fra Apache, kan du starte Kibana i nettleseren din ved å bruke adressen http: // localhost: 5601, som starter Kibana indeksiden.

I hovedsak må du konfigurere indeksmønsteret som brukes av Kibana for å søke etter logger og generere rapporter. Som standard bruker Kibana logstash * -indeksmønsteret, som samsvarer med alle standardindeksene generert av Logstash.

Hvis du ikke har noen konfigurasjon, klikker du på Create for å begynne å se på loggene.

Hvordan vise Kibana-logger?

Når du fortsetter å utføre Apache-forespørsler, vil Logstash samle loggene og legge dem til i Elasticsearch. Du kan se disse loggene i Kibana ved å klikke på Discover-alternativet i menyen til venstre.

Oppdag-fanen lar deg se loggene mens serveren genererer dem. For å se detaljene i en logg, klikker du bare på rullegardinmenyen.

Les og forstå dataene fra Apache-loggene.

Hvordan søke etter logger?

I Kibana-grensesnittet finner du en søkefelt som lar deg søke etter data ved hjelp av spørringsstrenger.

Eksempel: status: aktiv

Lær mer om ELK-søkestrenger her:

https: // www.elastisk.co / guide / no / elasticsearch / reference / 5.5 / spørring-dsl-spørring-streng-spørring.html # query-string-syntax

Siden vi har å gjøre med Apache-logger, er en mulig kamp en statuskode. Derfor, søk:

svar: 200

Denne koden vil søke etter logger med statuskoden 200 (OK) og vise den til Kibana.

Hvordan visualisere logger?

Du kan opprette visuelle dashboards i Kibana ved å velge kategorien Visualiser. Velg hvilken type dashbord du vil opprette, og velg søkeindeksen. Du kan bruke standardverdien til testformål.

Konklusjon

I denne guiden diskuterte vi en oversikt over hvordan du bruker ELK-stakken til å administrere logger. Imidlertid er det mer i disse teknologiene som denne artikkelen kan dekke. Vi anbefaler å utforske på egen hånd.

Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...