Att övervaka och analysera loggar för olika infrastrukturer i realtid kan vara ett mycket tråkigt jobb. När vi hanterar tjänster som webbservrar som ständigt loggar data kan processen vara mycket komplicerad och nästan omöjlig.
Att veta hur man använder verktyg för att övervaka, visualisera och analysera loggar i realtid kan hjälpa dig att spåra och felsöka problem och övervaka misstänkta systemaktiviteter.
Denna handledning diskuterar hur du kan använda en av de bästa realtidsloggsamlingarna och analysverktygen - ELK. Med ELK, allmänt känt som Elasticsearch, Logstash och Kibana, kan du samla in, logga och analysera data från en apache-webbserver i realtid.
Vad är ELK Stack?
ELK är en akronym som används för att hänvisa till tre huvudverktyg med öppen källkod: Elasticsearch, Logstash och Kibana.
Elasticsearch är ett verktyg för öppen källkod som är utvecklat för att hitta matchningar i en stor samling datauppsättningar med ett urval av frågespråk och -typer. Det är ett lätt och snabbt verktyg som kan hantera terabyte data enkelt.
Logstash motorn är en länk mellan serversidan och Elasticsearch, så att du kan samla in data från ett urval av källor till Elasticsearch. Det erbjuder kraftfulla API: er som är integrerade med applikationer som utvecklats på olika programmeringsspråk med lätthet.
Kibana är den sista delen av ELK-stacken. Det är ett datavisualiseringsverktyg som låter dig analysera data visuellt och generera insiktsfulla rapporter. Det erbjuder också grafer och animationer som kan hjälpa dig att interagera med dina data.
ELK stack är mycket kraftfull och kan göra otroliga dataanalys saker.
Även om de olika begreppen som vi kommer att diskutera i den här handledningen kommer du att få en bra förståelse för ELK-stacken, överväg dokumentationen för mer information.
Elasticsearch: https: // linkfy.till / Elasticsearch-Reference
Logstash: https: // linkfy.till / LogstashReference
Kibana: https: // linkfy.till / KibanaGuide
Hur man installerar Apache?
Innan vi börjar installera Apache och alla beroenden är det bra att notera några saker.
Vi testade den här guiden på Debian 10.6, men det fungerar också med andra Linux-distributioner.
Beroende på din systemkonfiguration behöver du sudo- eller root-behörigheter.
ELK-stackkompatibilitet och användbarhet kan variera beroende på versioner.
Det första steget är att säkerställa att ditt system är fullständigt uppdaterad:
sudo apt-get-uppdateringsudo apt-get uppgradering
Nästa kommando är att installera apache2-webbservern. Om du vill ha en minimal apache installerad tar du bort dokumentationen och verktygen från kommandot nedan.
sudo apt-get install apache2 apache2-utils apache2-doc -ysudo service apache2 start
Nu bör du ha en Apache-server som körs på ditt system.
Hur man installerar Elasticsearch, Logstash och Kibana?
Vi måste nu installera ELK-stacken. Vi installerar varje verktyg separat.
Elasticsearch
Låt oss börja med att installera Elasticsearch. Vi kommer att använda apt för att installera det, men du kan få en stabil release från den officiella nedladdningssidan här:
https: // www.elastisk.co / nedladdningar / elasticsearch
Elasticsearch kräver att Java körs. Lyckligtvis levereras den senaste versionen med ett OpenJDK-paket, vilket tar bort besväret med att installera det manuellt. Om du behöver göra en manuell installation, se följande resurs:
https: // www.elastisk.co / guide / sv / elasticsearch / reference / current / setup.html # jvm-version
I nästa steg måste vi ladda ner och installera den officiella elastiska APT-signeringsnyckeln med kommandot:
wget -qO - https: // artefakter.elastisk.co / GPG-KEY-elasticsearch | sudo apt-key add -
Innan du fortsätter kan du behöva ett apt-transport-https-paket (krävs för paket som serveras via https) innan du fortsätter med installationen.
sudo apt-get install apt-transport-httpsLägg nu till apt repo-informationen till källorna.lista.d-fil.
echo “deb https: // artefakter.elastisk.co / paket / 7.x / apt stabil huvud ”| sudo tee / etc / apt / sources.lista.d / elastisk-7.x.lista
Uppdatera sedan paketlistan på ditt system.
sudo apt-get-uppdateringInstallera Elasticsearch med kommandot nedan:
sudo apt-get install elasticsearchEfter att ha installerat Elasticsearch, starta och aktivera en start vid start med systemctl-kommandona:
sudo systemctl daemon-reloadsudo systemctl aktivera elasticsearch.service
sudo systemctl start elasticsearch
Tjänsten kan ta ett tag att starta. Vänta några minuter och bekräfta att tjänsten är igång med kommandot:
sudo systemctl status elasticsearch.serviceAnvänd cURL och testa om Elasticsearch API är tillgängligt, som visas i JSON-utdata nedan:
curl -X GET "localhost: 9200 /?Söt""name": "debian",
"cluster_name": "elasticsearch",
"cluster_uuid": "VZHcuTUqSsKO1ryHqMDWsg",
"version":
"nummer": "7.10.1 ",
"build_flavor": "standard",
"build_type": "deb",
"build_hash": "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date": "2020-12-05T01: 00: 33.671820Z ",
"build_snapshot": falskt,
"lucene_version": "8.7.0 ",
"minimum_wire_compatibility_version": "6.8.0 ",
"minimum_index_compatibility_version": "6.0.0-beta1 "
,
“Tagline”: “Du vet, för sökning”
Hur man installerar Logstash?
Installera logstash-paketet med kommandot:
sudo apt-get install logstashHur man installerar Kibana?
Ange kommandot nedan för att installera kibana:
sudo apt-get install kibanaSå här konfigurerar du Elasticsearch, Logstash och Kibana?
Så här konfigurerar du ELK-stacken:
Hur man konfigurerar Elasticsearch?
I Elasticsearch beställs data i index. Var och en av dessa index har en eller flera skärvor. A shard är en fristående sökmotor som används för att hantera och hantera index och frågor för en delmängd i ett kluster inom Elasticsearch. En skärva fungerar som en förekomst av ett Lucene-index.
Standard Elasticsearch-installation skapar fem skärvor och en replik för varje index. Detta är en bra mekanism när du är i produktion. I denna handledning kommer vi dock att arbeta med en skärva och inga repliker.
Börja med att skapa en indexmall i JSON-format. I filen kommer vi att ställa in antalet skärvor till en och noll repliker för matchande indexnamn (utvecklingsändamål).
I Elasticsearch hänvisar en indexmall till hur du instruerar Elasticsearch att ställa in indexet under skapandet.
Inuti json-mallfilen (index_template.json), ange följande instruktioner:
"mall":"*",
"inställningar":
"index":
"number_of_shards": 1,
"number_of_replicas": 0
Använd cURL och applicera json-konfigurationen på mallen som kommer att tillämpas på alla skapade index.
curl -X PUT http: // localhost: 9200 / _template / default -H 'Content-Type: application / json' -d @index_template.json"erkänt": sant
En gång tillämpad kommer Elasticsearch att svara med ett erkänt: sant uttalande.
Hur man konfigurerar Logstash?
För att Logstash ska samla in loggar från Apache, måste vi konfigurera den för att titta på eventuella ändringar i loggarna genom att samla in, bearbeta och sedan spara loggarna i Elasticsearch. För att det ska hända måste du ställa in samlingsloggvägen i Logstash.
Börja med att skapa Logstash-konfiguration i filen / etc / logstash / conf.d / apache.konf
inmatningfil
sökväg => '/ var / www / * / logs / access.logga'
typ => "apache"
filtrera
grok
match => "meddelande" => "% COMBINEDAPACHELOG"
utdata
elasticsearch
Se nu till att aktivera och starta logstash-tjänsten.
sudo systemctl aktivera logstash.servicesudo systemctl starta logstash.service
Hur man aktiverar och konfigurerar Kibana?
För att aktivera Kibana, redigera huvudet .yml-konfigurationsfil i / etc / kibana / kibana.yml. Leta reda på följande poster och avmarkera dem. När du är klar använder du systemctl för att starta Kibana-tjänsten.
server.port: 5601server.värd: "localhost"
sudo systemctl aktiverar kibana.service && sudo systemctl start kibana.service
Kibana skapar indexmönster baserat på den bearbetade data. Därför måste du samla in loggar med Logstash och lagra dem i Elasticsearch, som Kibana kan använda. Använd curl för att generera loggar från Apache.
När du har loggar från Apache, starta Kibana i din webbläsare med adressen http: // localhost: 5601, som startar Kibana indexsida.
I huvudsak måste du konfigurera det indexmönster som används av Kibana för att söka efter loggar och generera rapporter. Som standard använder Kibana logstash * -indexmönstret, som matchar alla standardindex som genereras av Logstash.
Om du inte har någon konfiguration klickar du på skapa för att börja visa loggarna.
Hur man visar Kibana-loggar?
När du fortsätter att utföra Apache-förfrågningar samlar Logstash loggarna och lägger till dem i Elasticsearch. Du kan visa dessa loggar i Kibana genom att klicka på alternativet Upptäck i den vänstra menyn.
På fliken Discover kan du visa loggarna när servern genererar dem. Klicka på rullgardinsmenyn för att visa detaljerna i en logg.
Läs och förstå data från Apache-loggarna.
Hur man söker efter loggar?
I Kibana-gränssnittet hittar du ett sökfält som låter dig söka efter data med hjälp av frågesträngar.
Exempel: status: aktiv
Läs mer om ELK-frågesträngar här:
https: // www.elastisk.co / guide / sv / elasticsearch / reference / 5.5 / fråga-dsl-fråga-sträng-fråga.html # query-string-syntax
Eftersom vi har att göra med Apache-loggar är en möjlig matchning en statuskod. Sök därför:
svar: 200Den här koden söker efter loggar med statuskoden 200 (OK) och visar den för Kibana.
Hur man visualiserar loggar?
Du kan skapa visuella instrumentpaneler i Kibana genom att välja fliken Visualisera. Välj vilken typ av instrumentpanel som ska skapas och välj ditt sökindex. Du kan använda standard för teständamål.
Slutsats
I den här guiden diskuterade vi en översikt över hur man använder ELK-stacken för att hantera loggar. Det finns dock mer i dessa tekniker som den här artikeln kan täcka. Vi rekommenderar att du utforskar på egen hand.