Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose) - Richten Sie Docker-Compose ein

Einführung

Vielen Dank! Ein Ingenieur, der für den Produktinspektionsprozess in der Abteilung Produktionstechnik verantwortlich ist. Dies ist eine Fortsetzung von Analysieren und Visualisieren von CSV-Protokollen mit Excel Elastic Stack (Docker-Compose) - Was ist Elastic Stack?.

Zielgruppe

Dieser Artikel richtet sich an Personen, die Elastic Stack noch nicht kennen und darüber nachdenken, ihn auszuprobieren.

Inhalt dieses Artikels

Mit Docker-Compose haben wir zusammengefasst, was Sie tun müssen, um Elastic Stack zu starten. Ich habe eine Reihe von Einstellungsdateien in GitLab eingefügt. Bitte beziehen Sie sich darauf.

Klicken Sie hier für das Repository-> Elastic-Stack

Dateiorganisation

Kibana, Elasticsearch, Logstash, Filebeat 4 Docker werden zusammen mit Docker-Compose gestartet. Wir haben in jedem Verzeichnis einen Konfigurationsordner erstellt und verschiedene Einstellungen vorbereitet.

file-structure.png

Docker-Compose-Einstellungen

docker-compose.yml


version: '3.7'
services:
  es01:
    build: ./elasticsearch
    container_name: es01
    environment:
      - node.name=es01
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      #Kommentieren Sie aus, wenn Sie die Daten beibehalten möchten
      #- esdata01:/usr/share/elasticsearch/data 
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elasticsearch/config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties
    #Wenn Sie auf den 9200 zugreifen möchten, kommentieren Sie
    #ports:
    #  - 9200:9200
    networks:
      - esnet

  kibana01:
    build: ./kibana
    container_name: kibana01
    links:
      - es01:elasticsearch
    ports:
      - 5601:5601
    networks:
      - esnet

  logstash01:
    build: ./logstash
    container_name: logstash01
    links:
      - es01:elasticsearch
    volumes:
      - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
      - ./logstash/config/log4j2.properties:/usr/share/logstash/config/log4j2.properties
      - ./logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml
      - ./logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
      - ./logstash/extra_patterns/date_jp:/opt/logstash/extra_patterns
    networks:
      - esnet

  filebeat01:
    build: ./beats/filebeat
    container_name: filebeat01
    links:
      - logstash01:logstash
    volumes:
      - ./beats/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml
      - ./beats/filebeat/logs/:/var/log/
    networks:
      - esnet

#Kommentieren Sie aus, wenn Sie die Daten beibehalten möchten
#volumes:
#  esdata01:
#    driver: local

networks:
  esnet:
    driver: bridge

Vorbereitung vor dem Start von Elasticsearch

Sie müssen vor dem Start vm.mem_map_count settings hinzufügen. Wenn die Kernelparameter nicht korrekt wiedergegeben werden, führen Sie Folgendes aus.

$ sudo sysctl --system

Wenn Sie es starten, ohne es einzustellen, tritt der folgende Fehler auf und es wird nicht gestartet.

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Logstash-Einstellungen

log4j2.properties Ich denke, dass die Datei log4j2.properties nach Bedarf festgelegt werden sollte, um das laufende Protokoll beim Start festzulegen. Wenn richtig eingestellt, denke ich, dass das Setup reibungslos sein wird. pipeline.yml logstash hat Eingabe (Eingabe) -> Verarbeitung (Filter) -> Ausgabe (Ausgabe) als eine Pipeline, aber wenn Sie verschiedene Protokolle eingeben möchten, verzweigen Sie im Filterprozess mit if-else. Muss verarbeitet werden. Durch Hinzufügen der Multipipeline-Einstellung können Sie mehrere Pipelines vorbereiten, ohne if-else zu verwenden. logstash.conf Die spezifische Verarbeitung wird hier beschrieben. Beschreiben Sie den Inhalt, den Sie ausführen möchten, in den drei Plug-Ins Eingabe, Filter und Ausgabe.

extra_patterns/date_jp Verwenden Sie diese Option, wenn Sie bei Verwendung des Grok-Filters ein benutzerdefiniertes Muster hinzufügen möchten. Überprüfen Sie Official custom_patterns. Da date_jp ein entsprechend angehängter Dateiname ist, können Sie einen beschreibenden Namen verwenden.

Filebeat-Einstellungen

filebeat.yml Dies kann erreicht werden, indem in den Einstellungen aktiviert auf true und in den Einstellungen auf * .csv gesetzt wird, wenn Sie die CSV-Datei lesen möchten.

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/*.csv

filebeat überträgt normalerweise den Inhalt der Datei zeilenweise. Durch Hinzufügen der Einstellung für mehrere Zeilen können jedoch mehrere Zeilen zusammen mit \ n Trennzeichen basierend auf den festgelegten Regeln übertragen werden. Siehe Zusammenfassung der mehrzeiligen Einstellungen, die mehrere Zeilen mit Filebeat verarbeiten Ich habe es erhalten.

 ### Multiline options

  # Multiline can be used for log messages spanning multiple lines. This is common
  # for Java Stack Traces or C-Line Continuation

  # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
  #multiline.pattern: ^\[
  multiline.pattern: (End)

  # Defines if the pattern set under pattern should be negated or not. Default is false.
  #multiline.negate: false
  multiline.negate: true

  # Match can be set to "after" or "before". It is used to define if lines should be append to a pattern
  # that was (not) matched before or after or as long as a pattern is not matched based on negate.
  # Note: After is the equivalent to previous and before is the equivalent to to next in Logstash
  #multiline.match: after
  multiline.match: before

Protokollordner

Dies ist ein Ordner zum Eingeben von Beispielprotokollen zum Testen.

Anlaufen

Sie können den Start von Kibana überprüfen, indem Sie Docker starten und nach einer Weile auf "http: // localhost: 5601" zugreifen. Wenn Sie sich das Kibana-Startprotokoll ansehen, können Sie sehen, dass es gestartet wurde.

$ sudo docker-compose up -d

Bestätigung der Daten

Wählen Sie Indexverwaltung-> Stapelverwaltung. image.png

Indexmuster aus Kibana-> Indexmuster hinzufügen.

image.png

Die von Filebeat erfassten Daten sind Filebeat-7.9.2. Sie können also die von Index Pattern erfassten Daten hinzufügen, indem Sie Filebeat- * usw. in den Namen des Indexmusters eingeben. Mithilfe von Sternchen können Sie ein Indexmuster erstellen, das mehrere Datenquellen enthält.

image.png

Wählen Sie das Feld aus, das für das Zeitfeld verwendet werden soll. @timestamp ist der Standardzeitstempel. Wenn @timestamp nicht von logstash usw. verarbeitet wird, wird die Zeit, zu der das Protokoll importiert wurde, automatisch festgelegt.

image.png

Wählen Sie Kibana-> Discover für den Index und ändern Sie den Zeitbereich entsprechend dem Protokoll. image.png

Bestätigen Sie abschließend, dass die Daten importiert wurden und Sie fertig sind.

image.png

Schließlich

Ich habe die Einstellungsdatei beim Starten von Docker-Compose erklärt. In Zukunft möchte ich vorstellen, wie man Daten wie die japanische Zeit analysiert und wie man mit CSV-Dateien umgeht.

Recommended Posts

Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose) - Richten Sie Docker-Compose ein
Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose) - Empfangen Sie Eingaben von mehreren Beats mit Pipeline-to-Pipeline von Logstash
Analysieren und Visualisieren von CSV-Protokollen mit Excel Elastic Stack (Docker-Compose) - Was ist Elastic Stack?
Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose) - Zwei Möglichkeiten, mit Logstash OutOfMemoryError umzugehen
Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose)
Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose) - Teilen Sie PipelineFilter in 3 Dateien [Eingabe / Filter / Ausgabe], um die Wartbarkeit und Wiederverwendbarkeit zu verbessern
Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose) - (1. Zeile: Datum, 2. und nachfolgende Zeilen: CSV-Daten) Datum wird jeder Zeile nach der 2. Zeile als Zeitstempelfeld hinzugefügt.
Richten Sie Django mit PostgreSQL und Gunicorn auf ECS unter Ubuntu 16.04 ein
Richten Sie GitLab mit Docker ein
[Hinweis] So starten Sie den mit Docker-Compose eingerichteten Windows-Container neu
Erstellen Sie Zabbix5.0 mit offiziellem Docker-Compose, überwachen Sie SNMPTRAP und legen Sie Slack-Benachrichtigungen fest