Inleiding
Effectief beheren van web server logbestanden is cruciaal voor het behoud van de prestaties van uw website, het oplossen van problemen en het verkrijgen van inzichten in gebruikersgedrag. Apache is een van de meest populaire web servers. Het genereert toegangs- en foutlogbestanden die nuttige informatie bevatten. Om deze logbestanden efficiënt te beheren en te analyseren, kunt u Logstash gebruiken om ze te verwerken en door te sturen naar DigitalOcean’s Managed OpenSearch voor indelen en visualisatie.
In deze handleiding zullen we u doorsturen hoe u Logstash kunt installeren op een Droplet, hem configureert om uw Apache logbestanden te verzamelen en ze naar Managed OpenSearch stuurt voor analyse.
Vereisten
- Droplets met een Apache Webserver geïnstalleerd.
- Gemanaged OpenSearch Cluster
Stap 1 – Installatie van Logstash
Logstash kan geïnstalleerd worden met de binaire bestanden of via de pakketbronnen. Om gemakkelijker te kunnen beheren en bij te werken, wordt het gebruik van pakketbronnen over het algemeen aanbevolen.
In dit gedeelte zullen we u doorsturen hoe u Logstash kunt installeren op uw Droplet, zowel met de APT als de YUM pakketbeheerders.
Laten we de OS identificeren:
Voor systeem op basis van APT (Ubuntu/Debian)
Download en installeer de Publieke Handtekeningtoets:
U moet misschien het pakket apt-transport-https
op Debian installeren voordat u doorgaat:
Sla de repository definitie op in /etc/apt/sources.list.d/elastic-8.x.list
:
Gebruik de methode echo
zoals hierboven beschreven om de Logstash repository toe te voegen. Gebruik add-apt-repository
niet, want dit zal ook een deb-src
item toevoegen, maar we bieden geen bronpakket aan. Als u het deb-src
item heeft toegevoegd, zult u een foutmelding zien die er ongeveer uitziet:
Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)
Verwijder alleen het deb-src
item uit het bestand /etc/apt/sources.list
en de installatie zou zoals verwacht moeten werken.
Voer sudo apt-get update
uit en de repository is klaar voor gebruik. U kunt hem installeren met:
Voor systemen gebaseerd op YUM (CentOS/RHEL)
Download en installeer de openbare handtekeningssleutel:
Voeg het volgende toe aan uw bestand /etc/yum.repos.d/logstash.repo
. U kunt ‘tee’ gebruiken om het bestand bij te werken en te maken.
Uw opslagplaats is klaar voor gebruik. U kunt hem installeren met:
Voor meer informatie, raadpleeg de Installeren van Logstashhandleiding.
Stap 2 – Configureren van Logstash om logboeken naar OpenSearch te verzenden
Een Logstash pijpleiding bestaat uit drie hoofdstadia: invoer, filter en uitvoer. Logstash pijpleidingen gebruiken plugins. U kunt gemeenschapsplug-ins gebruiken of u kunt uw eigen maken.
-
Invoer: In deze fase worden gegevens verzameld van verschillende bronnen. Logstash ondersteunt veel invoerplug-ins om gegevensbronnen zoals logbestanden, databases, berichtenwachtrijen en clouddiensten te kunnen verwerken.
- Filter: In deze fase worden de in de invoerfase verzamelde gegevens verwerkt en veranderd. Filters kunnen de gegevens wijzigen, verrijkken en opbouwen om ze handiger en gemakkelijker te kunnen analyseren.
- Uitvoer: In deze fase worden de verwerkt gegevens naar een bestemming verzonden. Bestemmingen kunnen bestaan uit databases, bestanden en gegevensopslag zoals OpenSearch.
Stap 3 – Installeren van de Open Search Uitvoer Plugin
Het OpenSearch uitvoerplugin kan worden geïnstalleerd door de volgende opdracht uit te voeren:
Meer informatie vindt u op dit logstash-output-opensearch-plugin archief.
Nu laten we een pijpleiding aanmaken:
Maak een nieuw bestand aan in de map /etc/logstash/conf.d/ genaamd apache_pipeline.conf
en kopieer het volgende inhoud.
Vervang <OpenSearch_Host>
door de hostname van uw OpenSearch-server en <OpenSearch_Password>
door uw OpenSearch-wachtwoord.
Laat ons de bovenstaande configuratie uitleggen.
-
INPUT: Hiermee wordt een bron voor gebeurtenissen geconfigureerd. Het ‘file’ input plugin wordt hier gebruikt.
-
path => “/var/log/apache2/access.log” : Geeft de weg naar het Apache toegangslogbestand dat Logstash vanaf deze plek zal lezen
Zorg ervoor dat de Logstash-dienst toegang heeft tot de invoerpaden.
-
start_position => “beginning”: Geeft aan waar Logstash moet beginnen met het lezen van het logbestand. “beginning” betekent dat Logstash moet beginnen met het verwerken van het bestand vanaf het begin, in plaats van vanaf het einde.
-
sincedb_path => “/dev/null”: Specificeert het pad naar een sincedb-bestand. Sincedb-bestanden worden door Logstash gebruikt om de huidige positie in logbestanden bij te houden, zodat het kan hervatten waar het was gebleven in geval van herstarts of storingen.
-
tags => “apache_access”: Wijst een tag toe aan gebeurtenissen die vanuit deze invoer worden gelezen. Tags zijn nuttig voor het identificeren en filteren van gebeurtenissen binnen Logstash, vaak gebruikt in de uitvoer- of filterfasen van de configuratie. We gebruiken tags voor het laatste
-
FILTER: wordt gebruikt om gebeurtenissen te verwerken.
Beginnen met condities:
Dit controleert of de tag
apache_access
bestaat in het [tags] veld van de inkomende logboekgebeurtenissen. We gebruiken deze conditie om de juiste GROK-filter toe te passen op Apache toegang en foutlogboeken. -
Grok-filter (voor Apache toegangslogboeken):
Het Grok-filter
%{HTTPD_COMBINEDLOG}
is een voorgedefinieerd patroon in Logstash dat gebruikt wordt om de Apache gecombineerde toegangslogboekindeling te parsen. Dit extracteert velden zoals IP-adres, tijdstip, HTTP-methode, URI, statuscode, etc., uit het berichtveld van inkomende gebeurtenissen. -
Mutatiefilter
Verwijderen
(optioneel): Na het parsen van de Apache-logbestanden gebruiken we mutate-remove om bepaalde velden te verwijderen. -
Andere voorwaarde: De else-blok wordt uitgevoerd als de tag
apache_access
niet in [tags] aanwezig is. Dit else-blok bevat een ander GROK-filter voor Apache foutenlogboeken.Dit GROK-filter
%{HTTPD24_ERRORLOG}
doorloopt berichten die overeenkomen met het Apache foutenlogboekformaat. Het extraheert velden relevant voor foutenlogboeken zoals timestampe, logniveau, foutmelding, enzovoort.GROK- patronen zijn te vinden op: https://github.com/logstash-plugins/logstash-patterns-core/tree/main/patterns.
-
UITVOER: De uitvoerplug-in zendt gebeurtenissen naar een bepaalde bestemming.
Het uitvoerblok begint met een if-conditie. We gebruiken hier if-condities
Deze if-conditie wordt gebruikt om logs naar OpenSearch te routeren naar twee aparte indexen,
apache_error
enapache_access
.Laten we de OpenSearch Uitvoerplug-in bekijken:
hosts => "https://XXX:25060" Uw OpenSearch Hostnaam user => "doadmin" Uw OpenSearch Gebruikersnaam password => "XXXXX" OpenSearch Wachtwoord index => "apache_error" Indexnaam in OpenSearch ssl_certificate_verification => true SSL-certificaatverificatie ingeschakeld
Stap 4 – Start Logstash
Zodra de Pipeline is geconfigureerd, start de Logstash dienst:
Stap 5 – Probleemoplossing
Controleer de Connectiviteit
U kunt controleren of Logstash kan verbinden met OpenSearch door de verbindingsondersteuning te testen:
Vervang `
Data Ingestie
Zorg ervoor dat data correct geindexeerd wordt in OpenSearch:
Vervang `
Firewall en Netwerk Configuratie
Verzeker u ervan dat de firewallregels en netwerkinstellingen toestaan dat er verkeer tussen Logstash en OpenSearch wordt doorgevoerd op poort 25060
.
Logs
De Logstash-logbestanden zijn te vinden op /var/log/logstash/logstash-plain.log
Voor details, raadpleeg Probleemoplossing.
Conclusie
In deze handleiding zijn we doorheen het instellen van Logstash om Apache-logbestanden te verzamelen en door te sturen naar OpenSearch gegaan. Hier is een snel overzicht van wat we hebben besproken:
Logstash installeren: We hebben beschreven hoe u Logstash kunt installeren op uw Droplet, afhankelijk van uw Linux-distributie, met behulp van APT of YUM pakketbeheerders.
Logstash configureren: We hebben een Logstash-configuratiebestand aangemaakt en aangepast om ervoor te zorgen dat Apache-logbestanden correct worden geparsed en naar OpenSearch worden verzonden.
Verificatie in OpenSearch: We hebben een indexpatroon in OpenSearch Dashboards ingesteld om te controleren of uw logbestanden correct zijn geïndexeerd en zichtbaar zijn voor analyse.
Na de uitvoering van deze stappen zou u nu een functionele setup moeten hebben waarin Logstash Apache-logbestanden verzameld en naar OpenSearch verzendt.
Source:
https://www.digitalocean.com/community/tutorials/forward-apache-logs-to-opensearch-via-logstash