Filebeat logs an elasticsearch schicken

MarekLanger

Mitglied
Hallo,

ich habe mein backend als Container laufen und es ermöglicht mir mithilfe von log4j2 das loggen von error in ein erstellten volume : Logfiles
Jetzt stehe ich vor folgendem Problem.
Ich möchte Filebeat ebenfalls innerhalb eines container laufen lassen, welches auf mein erstellten volume: Logfile zugreift und die einzelnen logs an mein elasticsearch schickt.

Ich habe leider noch nicht genau die Doku verstanden:
Java:
docker run -d \
  --name=filebeat \
  --user=root \
  --volume="$(pwd)/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
  --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  docker.elastic.co/beats/filebeat:7.10.2 filebeat -e -strict.perms=false \
  -E output.elasticsearch.hosts=["elasticsearch:9200"]

1. Benötige ich überhaupt user?
2. Lasse ich die Volumes da stehen und füge mein eigentliches Zielvolume: Logfile hinzu?

Für Tipps oder Lösungsvorschläge wäre ich sehr dankbar.
 

mrBrown

Super-Moderator
Mitarbeiter
Ins blaue geraten, ohne die Doku gesucht zu haben:

1. Benötige ich überhaupt user?
Wahrscheinlich ja, steht da vermutlich nicht grundlos.

2. Lasse ich die Volumes da stehen und füge mein eigentliches Zielvolume: Logfile hinzu?
Ja, die Volumes brauchst du, und nein, dein eigene Volume für Logfile brauchst du nicht.
Der zieht sich die Logs vermutlich automatisch über die Docker-API (nutzt also STDOUT/STDERR der jeweiligen Container), deshalb die Nutzung von var/run/docker.sock
 

Ähnliche Java Themen


Oben