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.

Das könnte dich auch interessieren …