Elastic Cloud mit AWS FireLens: Schnellere Einblicke mit agentenloser Dateningestion

blog-thumb-cloud-aws.png

Mit Amazon Web Services (AWS) FireLens können Sie Container-Protokolle und Ereignisse jetzt direkt an Elastic Cloud übertragen. AWS FireLens ist ein Container-Logdaten-Router für die Amazon Elastic Container Service (Amazon ECS)-Starttypen: Amazon Elastic Compute Cloud (Amazon EC2) und AWS Fargate. Mit dieser Integration können DevOps- und DevSecOps-Experten die AWS-Protokollverwaltung vereinfachen, von der Übertragung und kosteneffizienten Aufbewahrung bis hin zur Überwachung und Analyse von Bedrohungen.

In diesem Blogeintrag beschreiben wir die ersten Schritte für eine agentenlose Dateningestion nach Elastic Cloud mit AWS FireLens.

Protokoll- und Ereignisübertragung vereinfachen

Die Übertragung von Containerprotokollen und -Ereignissen an unterschiedliche Ziele ist oft langwierig und komplex. Verabschieden Sie sich von zeitraubenden Aufgaben wie dem Senden von Protokollen an Cloudwatch, dem Verwalten von Fluent Bit Sidecar-Protokollaggregatoren, manuellen Softwareinstallationen oder der Entwicklung zusätzlichen Codes. Ab sofort können Sie mühelos eine Aufgabe konfigurieren, um Anwendungsprotokolle aus ECS nach Elastic Cloud zu übertragen.

Durchsuchen, Analysieren und Aufbewahren von Protokollen vereinfachen

Sobald Sie Daten aus FireLens streamen und in Elasticsearch speichern, können Sie diese Daten innerhalb von Minuten in Kibana durchsuchen und visualisieren. Sie können auch Logs, Metriken und Traces aus Ihren anderen Servern, virtuellen Computern und Containern an Elastic übertragen und in einer zentralen Ansicht analysieren.

Mit Elastic Observability erhalten Sie umfassende Einblicke in Ihre Anwendungen und sparen Zeit bei Ursachenanalysen. Analysieren Sie Traces, Logs und Metriken auf Codeebene im Handumdrehen, kartografieren Sie komplexe Dienstabhängigkeiten und nutzen Sie die Machine Learning-basierte Anomalieerkennung sowie automatisierte Korrelationen, um „unbekannte Unbekannte“ zu finden.

Mit Elastic Security können Sie die Erkennungszeit gegen null reduzieren. Nutzen Sie dieselben Daten außerdem für erweiterte Erkennung und Abwehr (eXtended Detection and Response, XDR). Mit einer Kombination aus SIEM- und Endpoint Security-Daten können Sie auch die neuesten Cybersicherheitsbedrohungen vermeiden, erkennen und abwehren.

Wenn die Datenmenge zunimmt, garantieren die automatischen Skalierungsfunktionen und das Index-Lifecycle-Management von Elastic, dass keine Daten verloren gehen und eine Balance aus Leistung und Speicherkosten hergestellt wird.

Erste Schritte mit Elastic und AWS FireLens

Sehen wir uns zunächst ein Beispiel an, in dem FireLens eingesetzt wird, um Containerprotokolle aus Amazon ECS nach Elastic Cloud weiterzuleiten. Dieses Diagramm zeigt eine Referenzarchitektur mit FireLens und einem Container in Amazon ECS. Die Containerprotokolle werden nach Elastic Cloud weitergeleitet.
Containerprotokolle aus Amazon ECS nach Elastic Cloud weiterleiten

Konfiguration der FireLens-Aufgabe:

1. Konfigurieren Sie eine Aufgabendefinition. Sie finden eine Beispieldefinition in den Amazon ECS FireLens-Beispielen in GitHub.

2. Aktualisieren und ersetzen Sie die AWS Identity and Access Management (IAM)-Rollen durch Ihre eigenen Werte für RoleArn,executionRoleArn IAM roles, Elastic Cloud_Auth and Cloud_ID. Sie finden eine aktualisierte Aufgabendefinition und eine Readme-Datei für die Implementierung dieser Lösung im GitHub-Repository. Sie können auch die unten gezeigten Aufgabendetails als Beispiel verwenden.
{
   "family": "firelens-EC2-elastic",
   "taskRoleArn": "CHANGE ME",
   "executionRoleArn": "CHANGE ME",
   "containerDefinitions": [{
           "name": "log_router",
           "image": "amazon/aws-for-fluent-bit:latest",
           "essential": true,
           "firelensConfiguration": {
               "type": "fluentbit",
               "options": {
                   "enable-ecs-log-metadata": "true"
               }
           },
           "logConfiguration": {
               "logDriver": "awslogs",
               "options": {
                   "awslogs-create-group": "true",
                   "awslogs-group": "firelens-container",
                   "awslogs-region": "us-east-2",
                   "awslogs-stream-prefix": "firelens"
               }
           },
           "memoryReservation": 50
       },
       {
           "name": "nginx-test",
           "image": "nginx",
           "portMappings": [{
               "containerPort": 80
           }],
           "essential": true,
           "environment": [],
           "logConfiguration": {
               "logDriver": "awsfirelens",
               "secretOptions": [
                       {
                               "valueFrom": "CHANGE ME",
                               "name": "Cloud_Auth"
                       }
               ],
               "options": {
                   "Name": "es",
                   "Port": "9243",
                   "Tag_Key tags": "tags",
                   "Include_Tag_Key": "true",
                   "Cloud_ID": "CHANGE ME",
                   "Index": "elastic_firelens”,
                   "tls": "On",
                   "tls.verify": "Off"
               }
           },
           "memoryReservation": 100
       }
   ]
}

Falls Sie Amazon ECS Fargate Containerprotokolle versenden möchten, ersetzen Sie die ersten Zeilen durch die folgende Konfiguration.

{
    "family": "firelens-fargate-elastic",
    "taskRoleArn": "",
    "taskRoleArn": "CHANGE ME",
    "executionRoleArn": "CHANGE ME",
    "cpu": "512",
    "memory": "1024",
    "requiresCompatibilities": [
        "FARGATE"
    ],

Konfigurationsschritte:

1. Überprüfen Sie, ob ECS CLI und AWS CLI installiert sind. Falls nicht, folgen Sie zunächst dieser AWS-Installationsanleitung.

2. Öffnen Sie eine neue Datei mit dem Namen „enable-fluent-log-driver.sh“ und speichern Sie die folgenden Informationen, um den Fluentd-Protokolltreiber im ECS Agent zu aktivieren:

#!/bin/bash
echo "ECS_AVAILABLE_LOGGING_DRIVERS=[\"awslogs\",\"fluentd\"]" >> 
/etc/ecs/ecs.config
3. Erstellen Sie einen EC2- oder Fargate-Cluster in ECS mit den folgenden Befehlen:
ecs-cli up \
--size 2 \
--instance-type t2.medium \
--extra-user-data enable-fluent-log-driver.sh \
--keypair <changeme> \
--capability-iam \
--region=us-east-2 \
--ecs-profile=<changeme> \
--cluster-config <changeme>

4. Speichern Sie die Aufgabendefinition in einer lokalen Datei mit dem Namen „task_definition.json“ und registrieren Sie die Datei mit de AWS CLI:

aws ecs register-task-definition --cli-input-json file://task_definition.json

5. ECS-Dienst erstellen:

aws ecs create-service --cluster cluster-name --service-name demo-service --task-definition firelens-example-cloudwatch --desired-count 1 --launch-type 
"EC2"

6. Sobald der Dienst ausgeführt wird, sollten die ersten Protokolle über Kibana in Elasticsearch angezeigt werden. Die folgende Abbildung zeigt eine Abfrage, die in Elastic ausgeführt und in Kibana visualisiert werden kann.

Sobald der Dienst ausgeführt wird, sollten die ersten Protokolle über Kibana in Elasticsearch angezeigt werden. Die folgende Abbildung zeigt eine Abfrage, die in Elastic ausgeführt und in Kibana visualisiert werden kann.

In Kibana können Sie außerdem die Daten aus Ihren Elastic-Indizes visualisieren. Anschließend können Sie Dashboards erstellen, um verwandte Visualisierungen für Ihre in Elastic ausgeführten Abfragen anzuzeigen. Wenn Sie Elastic-Aggregationen zum Extrahieren und Verarbeiten der Daten verwenden, können Sie anschließend Spitzen, Senken und Trends in Ihren Daten mit Diagrammen und Grafiken abbilden. Die folgende Abbildung zeigt ein Beispiel für ein Kibana-Dashboard.

Die folgende Abbildung zeigt ein Beispiel für ein Kibana-Dashboard.

Die Partnerschaft zwischen Elastic und AWS umfasst technische Integrationen wie FireLens zur Vereinfachung der Dateningestion, und mit Elastic erhalten DevOps- und DevSecOps-Experten eine einheitliche GUI mit integrierten Sicherheits- und Compliancekontrollen. Mit den vorkonfigurierten AWS-Integrationen und Dashboards von Elastic können Sie die Einblicke in Ihre AWS- und lokalen Umgebungen vereinheitlichen und sich einen besseren Überblick über die Leistung und Integrität von Infrastruktur, Anwendungen und Geschäftsvorgängen verschaffen.

Fazit

Sind Sie bereit, Ihre Dateningestion zu vereinfachen und sämtliche Containerprotokolle und -Ereignisse in einer zentralen Ansicht zu verwalten? Die Elastic-Lösungen werden ständig weiterentwickelt, um Ihnen ein reibungsloses Erlebnis zu bieten, damit Sie überall und frei nach Ihren Wünschen arbeiten können. Diese vereinfachte Integration mit AWS ist nur das jüngste Beispiel für diese Weiterentwicklung. Elastic Cloud macht den Elastic Stack noch wertvoller, damit Sie schneller mehr erledigen und unsere Plattform optimal nutzen können. Weitere Informationen zu anderen AWS-Integrationen finden Sie in der Elastic-Integrationsbibliothek. Falls Sie noch nie mit Elastic und AWS gearbeitet haben, besuchen Sie den AWS Marketplace (Elastic) oder elastic.co. Falls Sie nächste Woche an der Veranstaltung „AWS re:Invent“ teilnehmen, besuchen Sie unseren Stand mit der Nummer 1567.

Die Entscheidung über die Veröffentlichung der in diesem Dokument beschriebenen Leistungsmerkmale und Funktionen oder deren Zeitpunkt liegt allein bei Elastic. Es ist möglich, dass nicht bereits verfügbare Leistungsmerkmale oder Features nicht rechtzeitig oder überhaupt nicht veröffentlicht werden.