Zephyrnet-logo

Lever gedecomprimeerde Amazon CloudWatch-logboeken aan Amazon S3 en Splunk met behulp van Amazon Data Firehose | Amazon-webservices

Datum:

Je kunt gebruiken Amazon Data-brandslang om loggebeurtenissen van uw applicaties en services die zijn vastgelegd in te verzamelen en te leveren Amazon CloudWatch-logboeken aan jouw Amazon eenvoudige opslagservice (Amazon S3) bucket- en Splunk-bestemmingen, voor gebruiksscenario's zoals gegevensanalyse, beveiligingsanalyse, probleemoplossing voor applicaties enz. CloudWatch Logs worden standaard geleverd als met gzip gecomprimeerde objecten. Mogelijk wilt u dat de gegevens worden gedecomprimeerd, of wilt u dat logboeken worden afgeleverd bij Splunk, waarvoor gedecomprimeerde gegevensinvoer vereist is, voor applicatiemonitoring en -audit.

AWS heeft een functie uitgebracht ter ondersteuning van de decompressie van CloudWatch-logboeken in Firehose. Met deze nieuwe functie kunt u in Firehose een optie opgeven om CloudWatch Logs te decomprimeren. U hoeft geen aanvullende verwerkingen meer uit te voeren met behulp van AWS Lambda of nabewerking om gedecomprimeerde logboeken te verkrijgen, en kan gedecomprimeerde gegevens aan Splunk leveren. Bovendien kunt u optionele Firehose-functies gebruiken, zoals conversie van recordindelingen om CloudWatch-logboeken naar Parquet of ORC te converteren, en dynamische partities om streamingrecords automatisch te groeperen op basis van sleutels in de gegevens (bijvoorbeeld per maand) en de gegroepeerde records af te leveren aan de overeenkomstige Amazon S3-voorvoegsels.

In dit bericht bekijken we hoe u de decompressiefunctie voor Splunk- en Amazon S3-bestemmingen kunt inschakelen. We beginnen met Splunk en vervolgens Amazon S3 voor nieuwe streams, daarna behandelen we migratiestappen om van deze functie te profiteren en uw bestaande pijplijn te vereenvoudigen.

Decomprimeer CloudWatch-logboeken voor Splunk

U kunt een abonnementsfilter in CloudWatch-logboekgroepen gebruiken om gegevens rechtstreeks naar Firehose of via te verwerken Amazon Kinesis-gegevensstromen.

Opmerking: Voor de decompressiefunctie van CloudWatch Logs heeft u een HTTP-gebeurtenisverzamelaar (HEC) gegevensinvoer gemaakt in Splunk, met indexerbevestiging ingeschakeld en de Bron Type. Dit is vereist om het juiste brontype voor de gedecomprimeerde logboeken toe te wijzen. Neem bij het maken van de HEC-invoer de brontypetoewijzing op (bijvoorbeeld aws:cloudtrail).

Voer de volgende stappen uit om een ​​Firehose-leveringsstroom voor de decompressiefunctie te maken:

  1. Geef uw bestemmingsinstellingen op en selecteer Ruw eindpunt als eindpunttype.

U kunt een onbewerkt eindpunt gebruiken voor de decompressiefunctie om zowel onbewerkte als JSON-geformatteerde gebeurtenisgegevens op te nemen in Splunk. VPC Flow Logs-gegevens zijn bijvoorbeeld onbewerkte gegevens, en AWS CloudTrail gegevens zijn in JSON-formaat.

  1. Voer het HEC-token in voor Verificatietoken.
  2. Om de decompressiefunctie in te schakelen, deselecteert u Transformeer bronrecords met AWS Lambda voor Transformeer records.
  3. kies Schakel decompressie in en Schakel berichtextractie in For Decomprimeer bronrecords uit Amazon CloudWatch Logs.
  4. kies Schakel berichtextractie in voor de Splunk-bestemming.

Functie voor het extraheren van berichten

Na decompressie hebben CloudWatch-logboeken de JSON-indeling, zoals weergegeven in de volgende afbeelding. U kunt zien dat de gedecomprimeerde gegevens metadata-informatie bevatten, zoals logGroup, logStream en subscriptionFilters, en de feitelijke gegevens zijn opgenomen in de message veld onder logEvents (Het volgende voorbeeld toont een voorbeeld van CloudTrail-gebeurtenissen in de CloudWatch-logboeken).

Wanneer u berichtextractie inschakelt, extraheert Firehose alleen de inhoud van de berichtvelden en voegt de inhoud samen met een nieuwe regel ertussen, zoals weergegeven in de volgende afbeelding. Nu de metagegevens van CloudWatch Logs met deze functie zijn uitgefilterd, zal Splunk met succes de daadwerkelijke loggegevens parseren en toewijzen aan het brontype dat is geconfigureerd in het HEC-token.

Als u deze CloudWatch-evenementen in realtime op uw Splunk-bestemming wilt bezorgen, kunt u bovendien gebruiken nul buffering, een nieuwe functie die onlangs in Firehose is gelanceerd. U kunt deze functie gebruiken om 0 seconden in te stellen als bufferinterval of een tijdsinterval tussen 0 en 60 seconden om gegevens binnen enkele seconden in realtime bij de Splunk-bestemming af te leveren.

Met deze instellingen kunt u nu naadloos gedecomprimeerde CloudWatch-loggegevens in Splunk opnemen met behulp van Firehose.

Decomprimeer CloudWatch-logboeken voor Amazon S3

De decompressiefunctie van CloudWatch Logs voor een Amazon S3-bestemming werkt vergelijkbaar met Splunk, waar u gegevenstransformatie kunt uitschakelen met Lambda en de opties voor decompressie en berichtextractie kunt inschakelen. U kunt de decompressiefunctie gebruiken om de loggegevens als tekstbestand naar de Amazon S3-bestemming te schrijven, of u kunt deze gebruiken met andere Amazon S3-bestemmingsfuncties, zoals conversie van recordindelingen met behulp van Parquet of ORC, of ​​dynamische partities om de gegevens te partitioneren.

Dynamische partitie met decompressie

Voor Amazon S3-bestemmingen ondersteunt Firehose dynamische partities, waardoor u streaminggegevens continu kunt partitioneren door sleutels binnen gegevens te gebruiken, en vervolgens de gegevens gegroepeerd op deze sleutels kunt afleveren in overeenkomstige Amazon S3-voorvoegsels. Hierdoor kunt u krachtige, kostenefficiënte analyses uitvoeren op streaminggegevens in Amazon S3 met behulp van services zoals Amazone Athene, Amazon EMR, Amazon Roodverschuivingsspectrum en Amazon QuickSight. Door uw gegevens te partitioneren, wordt de hoeveelheid gescande gegevens geminimaliseerd, worden de prestaties geoptimaliseerd en worden de kosten van uw analysequery's op Amazon S3 verlaagd.

Met de nieuwe decompressiefunctie kunt u dynamische partities uitvoeren zonder enige Lambda-functie voor het toewijzen van de partitiesleutels op CloudWatch Logs. U kunt de Inline parsing voor JSON optie, scan de gedecomprimeerde loggegevens en selecteer de partitiesleutels. De volgende schermafbeelding toont een voorbeeld waarbij inline parseren is ingeschakeld voor CloudTrail-logboekgegevens met een partitieschema geselecteerd voor account-ID en AWS-regio in het CloudTrail-record.

Conversie van recordformaten met decompressie

Voor CloudWatch Logs-gegevens kunt u de conversiefunctie voor recordindelingen gebruiken voor gedecomprimeerde gegevens voor de Amazon S3-bestemming. Firehose kan het invoergegevensformaat converteren van JSON naar Apache Parket or Apache-ORC voordat u de gegevens opslaat in Amazon S3. Parquet en ORC zijn kolomvormige gegevensindelingen die ruimte besparen en snellere query's mogelijk maken in vergelijking met rijgerichte indelingen zoals JSON. U kunt de functies voor conversie van recordformaten gebruiken onder de Records transformeren en converteren instellingen om de CloudWatch-logboekgegevens naar Parquet- of ORC-indeling te converteren. De volgende schermafbeelding toont een voorbeeld van conversie-instellingen voor recordindelingen voor de Parquet-indeling met behulp van een AWS lijm schema en tabel voor CloudTrail-loggegevens. Wanneer de dynamische partitie-instellingen zijn geconfigureerd, werkt de conversie van recordformaten samen met dynamische partities om de bestanden in het uitvoerformaat te maken met een partitiemapstructuur in de doel-S3-bucket.

Migreer bestaande leveringsstromen voor decompressie

Als u een bestaande Firehose-stream die Lambda gebruikt voor decompressie naar deze nieuwe decompressiefunctie van Firehose wilt migreren, raadpleegt u de stappen in Decompressie in- en uitschakelen.

Prijzen

De decompressiefunctie van Firehose decomprimeert de gegevens en brengt kosten in rekening per GB gedecomprimeerde gegevens. Om de decompressieprijzen te begrijpen, raadpleegt u Amazon Data Firehose-prijzen.

Opruimen

Om te voorkomen dat er in de toekomst kosten in rekening worden gebracht, verwijdert u de resources die u hebt gemaakt in de volgende volgorde:

  1. Verwijder het CloudWatch Logs-abonnementsfilter.
  2. Verwijder de Firehose-bezorgstroom.
  3. Verwijder de S3-buckets.

Conclusie

De decompressie- en berichtextractiefunctie van Firehose vereenvoudigt de levering van CloudWatch Logs aan Amazon S3- en Splunk-bestemmingen zonder dat codeontwikkeling of extra verwerking nodig is. Voor een Amazon S3-bestemming kunt u Parquet- of ORC-conversie en dynamische partitiemogelijkheden op gedecomprimeerde gegevens gebruiken.

Raadpleeg de volgende bronnen voor meer informatie:


Over de auteurs

Ranjit Kalidasan is een Senior Solutions Architect bij Amazon Web Services, gevestigd in Boston, Massachusetts. Hij is een Partner Solutions Architect en helpt ISV-beveiligingspartners samen met AWS oplossingen te bouwen en op de markt te brengen. Hij heeft meer dan 25 jaar ervaring in de informatietechnologie en helpt wereldwijde klanten bij het implementeren van complexe oplossingen voor beveiliging en analyse. U kunt verbinding maken met Ranjit op LinkedIn.

Phaneendra Vuliyaragoli is Product Management Lead voor Amazon Data Firehose bij AWS. In deze rol leidt Phaneendra de product- en go-to-market-strategie voor Amazon Data Firehose.

spot_img

Laatste intelligentie

spot_img