So installierst du FileBeat unter Ubuntu
Der Elastic Stack ist eine Kombination aus den vier Hauptkomponenten Elasticsearch, Logstash, Kibana und Beats. Filebeat ist eines der bekanntesten Mitglieder dieser Familie, das Event-Log-Daten sammelt, weiterleitet und zur Indizierung entweder an Elasticsearch oder Logstash weiterleitet. Filebeat hat viele Module, darunter Apache, Nginx, System, MySQL, auditd und viele mehr, die die Visualisierung gängiger Log-Formate auf einen einzigen Befehl reduzieren.
In diesem Tutorial zeigen wir dir, wie du Filebeat installierst und konfigurierst, um Ereignisprotokolle und SSH-Authentifizierungsereignisse an Logstash auf Ubuntu 18.04 weiterzuleiten.
Voraussetzungen
- Ein Server mit Ubuntu 18.04, auf dem Elasticsearch, Kibana und Logstash installiert und konfiguriert sind.
- Ein Root-Passwort ist auf deinem Server konfiguriert.
Erste Schritte
Bevor du beginnst, musst du dein System auf die neueste Version aktualisieren. Das kannst du tun, indem du den folgenden Befehl ausführst:
apt-get update -y apt-get upgrade -y
Sobald dein System aktualisiert ist, starte es neu, damit die Änderungen übernommen werden.
Filebeat installieren
Standardmäßig ist Filebeat nicht im Standard-Repository von Ubuntu 18.04 verfügbar. Daher musst du das Elastic Stack 7 APT Repository in dein System einfügen.
Installiere zunächst das erforderliche Paket mit dem folgenden Befehl:
apt-get install apt-transport-https -y
Als Nächstes lädst du den Elastic Stack-Schlüssel herunter und fügst ihn mit dem folgenden Befehl hinzu:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Als Nächstes fügst du das Elastic Stack 7 Apt Repository mit dem folgenden Befehl hinzu:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list
Als Nächstes aktualisierst du das Repository und installierst Filebeat mit dem folgenden Befehl:
apt-get update -y apt-get install filebeat -y
Sobald die Installation abgeschlossen ist, kannst du mit dem nächsten Schritt fortfahren.
Filebeat konfigurieren
Standardmäßig ist Filebeat so konfiguriert, dass es Ereignisdaten an Elasticsearc sendet. Hier werden wir Filebeat so konfigurieren, dass es Ereignisdaten an Logstash sendet. Du kannst dies tun, indem du die Datei /etc/filebeat/filebeat.yml bearbeitest:
nano /etc/filebeat/filebeat.yml
Kommentiere die Elasticsearch-Ausgabe aus und entkommentiere die Logstash-Ausgabe wie unten gezeigt:
#-------------------------- Elasticsearch output ------------------------------ # output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"] #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["localhost:5044"]
Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Aktiviere das Filebeat-Systemmodul
Filebeat wird standardmäßig mit vielen Modulen ausgeliefert. Du kannst alle Module mit dem folgenden Befehl auflisten:
filebeat modules list
Du solltest die folgende Ausgabe sehen:
Enabled: Disabled: apache auditd aws cef cisco coredns elasticsearch envoyproxy googlecloud haproxy ibmmq icinga iis iptables kafka kibana logstash mongodb mssql mysql nats netflow nginx osquery panw postgresql rabbitmq redis santa suricata system traefik zeek
In der Standardeinstellung sind alle Module deaktiviert. Daher musst du das Systemmodul aktivieren, um die vom Systemprotokollierungsdienst erstellten Protokolle zu sammeln und zu analysieren. Du kannst das Systemmodul mit dem folgenden Befehl aktivieren:
filebeat modules enable system
Anschließend kannst du das Systemmodul mit dem folgenden Befehl überprüfen:
filebeat modules list
Du solltest sehen, dass das Systemmodul jetzt aktiviert ist:
Enabled: system
Als Nächstes musst du das Systemmodul so konfigurieren, dass es die Authentifizierungsprotokolle nur liest. Das kannst du tun, indem du die Datei /etc/filebeat/modules.d/system.yml bearbeitest:
nano /etc/filebeat/modules.d/system.yml
Ändere die folgenden Zeilen:
- module: system # Syslog syslog: enabled: false ... # Authorization logs auth: enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. var.paths: ["/var/log/auth.log"]
Speichere und schließe die Datei, wenn du fertig bist.
Laden der Indexvorlage in Elasticsearch
Als Nächstes musst du die Vorlage manuell in Elasticsearch laden. Das kannst du mit dem folgenden Befehl tun:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Du solltest die folgende Ausgabe sehen:
Index setup finished.
Als Nächstes generierst du die Indexvorlage und installierst sie mit dem folgenden Befehl auf dem Elastic Stack Server:
filebeat export template > filebeat.template.json curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.0.1 -d@filebeat.template.json
Starte den Filebeat-Dienst und aktiviere ihn mit dem folgenden Befehl, damit er nach einem Neustart des Systems startet:
systemctl start filebeat systemctl enable filebeat
Du kannst den Status von Filebeat mit dem folgenden Befehl überprüfen:
systemctl status filebeat
Du solltest die folgende Ausgabe sehen:
? filebeat.service - Filebeat sends log files to Logstash or directly to Elasticsearch. Loaded: loaded (/lib/systemd/system/filebeat.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2019-11-26 06:45:18 UTC; 14s ago Docs: https://www.elastic.co/products/beats/filebeat Main PID: 13059 (filebeat) Tasks: 28 (limit: 463975) CGroup: /system.slice/filebeat.service ??13059 /usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml -path.home /usr/share/filebeat -path.config /etc/filebeat Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z INFO log/harvester.go:251 Harvester started for file: /va Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z INFO log/harvester.go:251 Harvester started for file: /va Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z INFO log/harvester.go:251 Harvester started for file: /va Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z INFO log/harvester.go:251 Harvester started for file: /va Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z INFO log/harvester.go:251 Harvester started for file: /va Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z INFO log/harvester.go:251 Harvester started for file: /va Nov 26 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.485Z INFO add_cloud_metadata/add_cloud_metadata.go:87 add_clou Nov 26 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.486Z INFO log/harvester.go:251 Harvester started for file: /va Nov 26 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.485Z INFO pipeline/output.go:95 Connecting to backoff(async(tc Nov 26 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.487Z INFO pipeline/output.go:105 Connection to backoff(async(t
Elasticsearch-Datenempfang testen
Überprüfe nun mit folgendem Befehl, ob Elasticsearch Daten empfängt oder nicht:
curl -X GET localhost:9200/_cat/indices?v
Du solltest die folgende Ausgabe sehen:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open .kibana_task_manager_1 fpHT_GhXT3i_w_0Ob1bmrA 1 0 2 0 46.1kb 46.1kb yellow open ssh_auth-2019.11 mtyIxhUFTp65WqVoriFvGA 1 1 15154 0 5.7mb 5.7mb yellow open filebeat-7.4.2-2019.11.26-000001 MXSpQH4MSZywzA5cEMk0ww 1 1 0 0 283b 283b green open .apm-agent-configuration Ft_kn1XXR16twRhcZE4xdQ 1 0 0 0 283b 283b green open .kibana_1 79FslznfTw6LfTLc60vAqA 1 0 8 0 31.9kb 31.9kb
Du kannst auch den ssh_auth-2019.05-Index mit dem folgenden Befehl überprüfen:
curl -X GET localhost:9200/ssh_auth-*/_search?pretty
Du solltest die folgende Ausgabe sehen:
{ "took" : 1, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 10000, "relation" : "gte" }, "max_score" : 1.0, "hits" : [ { "_index" : "ssh_auth-2019.11", "_type" : "_doc", "_id" : "g7OXpm4Bi50dVWRYAyK4", "_score" : 1.0, "_source" : { "log" : { "offset" : 479086, "file" : { "path" : "/var/log/elasticsearch/gc.log" } }, "event" : { "timezone" : "+00:00", "dataset" : "elasticsearch.server", "module" : "elasticsearch" },
Index auf Kibana hinzufügen
Melde dich jetzt in deinem Kibana-Dashboard an und klicke auf Indexmuster. Du solltest die folgende Seite sehen:
Klicke nun auf das Feld Indexmuster erstellen. Du solltest die folgende Seite sehen:
Füge den Index ssh_auth-* hinzu und klicke auf die Schaltfläche Nächster Schritt. Du solltest die folgende Seite sehen:
Wähle nun @timestamp aus und klicke auf die Schaltfläche Indexmuster erstellen. Du solltest die folgende Seite sehen:
Klicke jetzt auf die Registerkarte Entdecken im linken Bereich. Auf der folgenden Seite solltest du deine Daten sehen können:
Herzlichen Glückwunsch! Du hast Filebeat erfolgreich installiert und konfiguriert, um Ereignisdaten an Logstash zu senden. Nachdem du alle Daten erhalten hast, kannst du mit der Erstellung von Kibana-Dashboards fortfahren.