Elasticsearch 8.x: Fleet Server + Logstash-Ausgabe

Veröffentlicht am 31.12.2023

« Alle Vorträge ansehen Kontaktieren Sie uns
Elasticsearch 8.x: Fleet Server + Logstash Output

Einführung

Wir werden den Flottenserver so konfigurieren, dass er #logstash als Ausgabe verwendet.

Diese Dokumentation setzt voraus, dass Sie Elasticsearch und Kibana bereits eingerichtet haben. Wenn nicht, können Sie hier klicken für Öffentlich signierte Zertifikate Setup. Wenn Sie verwenden möchten Selbstsignierte Zertifikate, hier klicken Wird noch bekannt gegeben.

Diese Dokumentation setzt voraus, dass Sie sich frühere Videos zu Elastic Agents, Agent Policies und Fleet Server angesehen haben.

Anforderungen

Logstash-Ausgabeserver [05:40]

Öffnen Sie das Terminal des Elasticsearch-Servers. Erstellen Sie eine Datei mit dem folgenden Befehl:

cd /usr/share/elasticsearch/bin vi make-certs.sh

und fügen Sie den folgenden Befehl hinzu, ersetzen Sie die DNS Variable mit dem Serverdomänennamen:

./elasticsearch-certutil cert \ --name logstash \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --dns <your.host.name.here> \ --pem

Speichern Sie die Datei und führen Sie den folgenden Befehl aus:

chmod 755 make-certs.sh ./make-certs.sh

alt text

SSL-Zertifikat für Logstash generieren

und drücken Sie die Eingabetaste, wenn Sie zur Eingabe der gewünschten Ausgabe aufgefordert werden. Gehen Sie nun in das Verzeichnis, in dem das Zertifikat komprimiert wurde, und entpacken Sie es:

cd .. unzip certificate-bundle.zip

alt text

Zertifikat für Logstash entpacken

Gehen Sie zum Logstash-Server-Terminal und führen Sie die folgenden Befehle aus:

mkdir -p /etc/certs/logstash cd /etc/certs/logstash/

Kopieren Sie dann den Inhalt vom Elasticsearch-Server mit dem folgenden Befehl:

scp root@<IP ADDRESS OR SERVER DNS>:/usr/share/elasticsearch/logstash/* ./

unten ist ein Beispielbefehl:

scp root@es.evermight.net:/usr/share/elasticsearch/logstash/* ./

Kopieren Sie dann auch die Zertifizierungsstelle auf den Logstash-Server:

scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

Führen Sie dann den folgenden Befehl aus, um den Logstash-Schlüssel in pkcs8 zu konvertieren:

openssl pkcs8 -inform PEM -in logstash.key -topk8 -nocrypt -outform PEM -out logstash.pkcs8.key

Lassen Sie uns nun Logstash auf dem Logstash-Server installieren:

apt-get update && apt dist-upgrade -y && apt-get install vim curl gnupg gpg; wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg; sudo apt-get install apt-transport-https; echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list; sudo apt-get update && sudo apt-get install logstash

Öffnen Sie eine Datei zur Konfiguration

vi fleet-output.conf

und fügen Sie den folgenden Inhalt in die Datei ein:

input { elastic_agent { port => 5044 ssl_enabled => true ssl_certificate_authorities => ["/etc/certs/ca/ca.crt"] ssl_certificate => "/etc/certs/logstash/logstash.crt" ssl_key => "/etc/certs/logstash/logstash.pkcs8.key" ssl_client_authentication => "required" } } output { file { path => "fleet-output.txt" } }

und speichern. Führen Sie nun den folgenden Befehl aus:

/usr/share/logstash/bin/logstash -f /root/fleet-output.conf

Lassen Sie uns nun eine Pipeline-Konfiguration für Logstash erstellen:

mkdir config; cd config/; vi pipelines.yml

Und fügen Sie den folgenden Inhalt ein:

- pipeline.id: elastic-agent-pipeline path.config: "/root/fleet-output.conf"

und speichern. Jetzt erneut ausführen

cd ~; /usr/share/logstash/bin/logstash

Testlizenz aktivieren [19:40]

Melden Sie sich in Ihrem Browser bei Kibana an. Gehen Sie zu Stack-Management > Lizenzverwaltung, und klicken Sie auf Starten Sie eine 30-tägige Testversion.

alt text 30 Tage kostenlos testen

und es sollte einen Erfolg wie diesen anzeigen:

alt text 30 Tage kostenlose Testversion Erfolgreich aktiviert

Fleet Server: Wichtige Hinweise [21:00]

Wir werden zwei Ausgaben für Fleet Server konfigurieren, und zwar:

Fleet Server: Elasticsearch-Ausgabe [25:00]

Gehe zu Fleet > settings, und klicken Sie auf das Stiftsymbol zum Bearbeiten. Siehe das Bild unten.

alt text Fleet-Server-Ausgabe bearbeiten

Gehen Sie nun zum Elasticsearch-Server und führen Sie den folgenden Befehl aus, um den Fingerabdruck des Zertifikats abzurufen.

cd /etc/elasticsearch/certs/ca openssl x509 -fingerprint -sha256 -noout -in ca.crt | awk -F"=" {' print $2 '} | sed s/://g

Erstellen Sie ein Skript.

ca.sh

und fügen Sie den folgenden Inhalt hinzu

echo 'ssl:'; echo ' certificate_authorities:'; echo ' - |'; cat ca.crt | sed 's/^/ /'

und speichern Sie es. Führen Sie nun die Datei aus

chmod 755 ca.sh ./ca.sh

Es sollte ähnlich wie der Screenshot unten aussehen;

alt text Certificate in YML style

Kopieren Sie die Ausgaben und fügen Sie sie in Ihr Kibana auf der Erweiterter YML-Konfigurationsbereich

Es sollte ungefähr wie der Screenshot unten aussehen:

alt text Fleet Server-Konfiguration

Klicken Sie dann auf Einstellungen speichern und anwenden, und klicken Sie dann auf Speichern und bereitstellen.

Flottenserver: Logstash-Ausgabe [27:43]

Klicken Sie auf Add Output im Flotte > Agent, um die Ausgabe für Logstash hinzuzufügen. Geben Sie einen Namen wie logstash, und wählen Sie für den Typ logstash, geben Sie die IP-Adresse oder den DNS des Logstash-Servers ein, z. B.lg.evermight.net:5044, für die Server-SSL-Zertifizierungsstellen einfügen in ca.crt Dateiinhalte beim Ausdrucken und Sie können einen Befehl wie

cat ca.crt

Erstellen Sie auf Ihrem Elastcsearch-Server-Terminal eine Datei und befolgen Sie die folgenden Schritte, um das Client-SSL-Zertifikat zu erhalten:

cd /usr/share/elasticsearch/bin vi client-cert.sh

und fügen Sie den folgenden Inhalt ein:

./elasticsearch-certutil cert \ --name client \ --ca-cert /etc/elasticsearch/ca/ca.crt \ --ca-key /etc/elasticsearch/ca/ca.key \ --pem

und führen Sie den folgenden Befehl aus

chmod 755 client-cert.sh

Wenn Sie dazu aufgefordert werden, geben Sie ihm den Namen client.zip Gehen Sie nun in das Verzeichnis, in dem das Zertifikat komprimiert wurde, und entpacken Sie es:

cd .. unzip client.zip

Gehen Sie nun in das entpackte Verzeichnis und kopieren Sie den Inhalt der client.crt Datei:

cd client cat client.crt

und fügen Sie es in das Client-SSL-Zertifikat Abschnitt. Für die Client-SSL-Zertifikatschlüssel, kopieren Sie den Inhalt der client.key und fügen Sie es ein.

cat client.key

Then click on Einstellungen speichern und anwendenDie beiden gespeicherten Ausgaben sehen ähnlich aus wie im folgenden Screenshot:

alt text Fleet-Server-Ausgaben

Fleet Server: Installieren [32:01]

Gehen Sie zum Flottenserver-Terminal und führen Sie den folgenden Befehl aus:

apt-get update && apt dist-upgrade -y && apt-get install -y vim curl gnupg gpg;

und erstellen Sie einige Verzeichnisse:

cd /etc/; mkdir certs; cd certs/; mkdir ca; mkdir fl.evermight.net; cd ca

Führen Sie nun diesen Befehl auf dem Fleet-Server-Terminal aus, um die Zertifikate vom Elastic-Server auf den Fleet-Server zu kopieren

scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

Gehen Sie nun zurück zum Elastic-Server und führen Sie die folgenden Befehle aus:

cd ~ vi fleet-cert.sh

Fügen Sie den folgenden Inhalt in die Datei ein

mkdir /root.ft.evermight.net/ /usr/share/elasticsearch/bin/elasicsearch-certutil cert \ --out /root/ft.evermight.net/fleet.zip \ --name fleet \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --dns ft.evermight.net \ --pem

und speichern Sie die Datei. Führen Sie nun die folgenden Befehle aus:

chmod +x fleet-cert.sh; ./fleet-cert.sh

Gehen Sie nun in das Verzeichnis, in dem das Zertifikat komprimiert wurde, und entpacken Sie es:

cd ft.evermight.net/; unzip fleet.zip;

Gehen Sie nun zurück zum Flottenserver-Terminal und führen Sie den folgenden Befehl aus:

mv fl.evermight.net ft.evermight.net; cd ft.evermight.net

Führen Sie nun diesen Befehl auf dem Fleet-Server-Terminal aus, um die Zertifikate vom Elastic-Server auf den Fleet-Server zu kopieren

scp root@es.evermight.net:/root/ft.evermight.net/fleet/* ./

Kehren Sie nun zu Ihrem Kibana zurück und erstellen Sie die Flottenserverrichtlinie. Klicken Sie auf Flottenserver hinzufügen wie im folgenden Screenshot gezeigt:

alt text Einen Flottenserver hinzufügen

Gehe zu Fortschrittlich, und klicken Sie auf Richtlinie erstellen wie im Bild unten gezeigt:

alt text Flottenserverrichtlinie erstellen

Für die Auswählen eines Bereitstellungsmodus für die Sicherheit, klicken Sie auf production.

Für die Fügen Sie Ihren Fleet Server-Host hinzu, geben Sie im Abschnitt „Name“ Folgendes ein:fleet, und im URL-Abschnitt,https://ft.evermight.net:8220.

Then click on Host hinzufügen. Klicken Sie dann auf Generieren eines Service-Tokens. Kopieren Sie die Befehle auf der Installieren Sie Fleet Server auf einem zentralen Host Abschnitt:

alt text Installieren Sie Fleet Server auf einem zentralen Host-Befehl

und erstellen Sie auf dem Flottenserver-Terminal eine Datei:

cd ~ vi install.sh

und fügen Sie den kopierten Inhalt ein und nehmen Sie die entsprechenden Änderungen vor, wie im folgenden Screenshot gezeigt:

alt text Bearbeiteter Befehl „Fleet Server auf einem zentralen Host installieren“

Ändern Sie dann die Berechtigung der Datei und führen Sie sie aus.

chmod +x install.sh ./install.sh

Klicken Sie bei der entsprechenden Aufforderung auf „Ja“.

Gehen Sie jetzt in Kibana zu Flotte > Agent, und aktualisieren Sie die Seite. Sie sollten eine ähnliche Ausgabe wie im folgenden Screenshot sehen:

alt text Elastic Agent erfolgreich installiert

Elastic Agent: Website unter Linux [40:33]

Gehen Sie zum Server-Terminal der Website. Installieren Sie Apache dort:

apt-get install -y apache-2

Rufen Sie die IP-Adresse des Computers in Ihrem Browser auf. Falls Sie sie vergessen haben, können Sie sie mit dem folgenden Befehl abrufen:

ip a

Gehen Sie in Kibana zu Integrationen > Integrationen durchsuchen, und suchen Sie nach Apache, und klicken Sie auf das Ergebnis, wie im folgenden Screenshot gezeigt:

alt text Apache-Suche

Klicken Sie auf Apache-HTTP-Server hinzufügen in der oberen rechten Ecke.

alt text Apache hinzufügen

Auf der Wo kann diese Integration hinzugefügt werden? Abschnitt unter Neue Gastgeber, klicken Sie auf Erweiterte Optionen. Scrollen Sie nach unten zu Ausgabe für Integrationen und ändern von Standard Zu logstash. Scrollen Sie nach unten zu Ausgabe für die Agentenüberwachung und ändern von Standard Zu logstash.

Then click on save and continue, und wählen Sie dann Fügen Sie Elastic Agent zu Ihren Hosts hinzu.

Kopieren Sie dann den Befehl, damit er vom Flottenserver verwaltet wird, wie im folgenden Screenshot gezeigt:

alt text Befehl zur Verwaltung durch die Flotte

Gehen Sie zum Website-Server-Terminal und führen Sie diesen Befehl aus, um die Zertifikate vom Elastic-Server auf den Website-Server zu kopieren

mkdir -p /etc/certs/ca; cd /etc/certs/ca/; scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

Erstellen Sie eine Datei zum Ausführen der Installation

cd ~ vi install-agent.sh

und fügen Sie den kopierten Inhalt ein und nehmen Sie die entsprechenden Änderungen vor, wie im folgenden Screenshot gezeigt:

alt text Bearbeiteter Befehl

Ändern Sie dann die Berechtigung der Datei und führen Sie sie aus.

chmod 755 install-agent.sh ./install-agent.sh

Und geben Sie „Ja“ ein, wenn Sie dazu aufgefordert werden.

Elastic Agent: Ereignisprotokolle unter Windows [47:50]

Öffnen Sie ein Bash-ähnliches Terminal auf dem Windows-Rechner/Server und kopieren Sie die Zertifikatsdatei

mkdir certs cd certs scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

Gehen Sie zur Windows-Suchleiste und suchen Sie nach Ereignisanzeige und führen Sie es als Administrator aus, wie im folgenden Screenshot gezeigt:

alt text Führen Sie die Ereignisanzeige als Administrator aus

Wenn es geöffnet wird, gehen Sie zu Anwendungs- und Dienstprotokolle > Microsoft > WMI-Aktivität > Betriebsbereit.

Gehen Sie in Kibana zu Integrationen > Integrationen durchsuchen, und suchen Sie nach windows, und klicken Sie auf das Ergebnis, wie im folgenden Screenshot gezeigt:

alt text Benutzerdefinierte Suche im Windows-Ereignisprotokoll

Klicken Sie auf Benutzerdefiniertes Windows-Ereignisprotokoll hinzufügen in der oberen rechten Ecke.

alt text Benutzerdefiniertes Windows-Ereignisprotokoll hinzufügen

Gehen Sie zurück zur Ereignisanzeige auf Ihrem Windows-Computer und kopieren Sie die Protokollname wie im Screenshot unten gezeigt, und fügen Sie es in das Benutzerdefinierte Windows-Ereignisprotokolle Abschnitt auf Ihrer Kibana-Seite.

alt text

Ereignisanzeige-Protokollnamen kopieren

Auf der Wo kann diese Integration hinzugefügt werden? Abschnitt unter Neue Gastgeber, klicken Sie auf Erweiterte Optionen.

Scrollen Sie nach unten zu Ausgabe für Integrationen und ändern von Standard Zu logstash. Scrollen Sie nach unten zu Ausgabe für die Agentenüberwachung und ändern von Standard Zu logstash.

Then click on save and continue, und wählen Sie dann Fügen Sie Elastic Agent zu Ihren Hosts hinzu.

Kopieren Sie dann den Befehl, damit er vom Flottenserver verwaltet wird, wie im folgenden Screenshot gezeigt:

alt text Befehl für das Windows-Ereignisprotokoll zur Verwaltung durch die Flotte

Gehen Sie zu einem Texteditor auf Ihrem Windows-Computer und bearbeiten Sie den kopierten Befehl wie im folgenden Screenshot gezeigt:

alt text Bearbeiteter Befehl

Öffnen und ausführen Powershell Führen Sie den Befehl als Administrator aus, fügen Sie ihn ein und führen Sie ihn aus. Geben Sie bei der entsprechenden Aufforderung „Ja“ ein.