Analysez et visualisez les journaux CSV avec Excel Elastic Stack (docker-compose) - Configurez avec docker-compose

introduction

Merci! Un ingénieur en charge du processus d'inspection des produits au sein du département d'ingénierie de production. Ceci est une continuation de Analyse et visualisation des journaux csv avec Excel Elastic Stack (docker-compose) --Qu'est-ce qu'Elastic Stack.

Public cible

Cet article est destiné à ceux qui découvrent Elastic Stack et qui envisagent de l'essayer.

Contenu de cet article

Avec docker-compose, nous avons résumé ce que vous devez faire pour lancer Elastic Stack. J'ai mis un ensemble de fichiers de paramètres dans GitLab, veuillez donc vous y référer.

Cliquez ici pour le dépôt-> élastique-stack

organisation des fichiers

Kibana, Elasticsearch, Logstash, Filebeat 4 Dockers seront lancés avec Docker-compose. Nous avons créé un dossier de configuration dans chaque répertoire et préparé divers paramètres.

file-structure.png

paramètres de composition du menu fixe

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:
      #Décommentez si vous souhaitez conserver les données
      #- 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
    #Si vous souhaitez accéder au 9200, décommentez
    #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

#Décommentez si vous souhaitez conserver les données
#volumes:
#  esdata01:
#    driver: local

networks:
  esnet:
    driver: bridge

Préparation avant de démarrer Elasticsearch

Vous devez ajouter vm.mem_map_count settings avant de lancer. Si les paramètres du noyau ne sont pas reflétés correctement, exécutez ce qui suit.

$ sudo sysctl --system

Si vous le démarrez sans le configurer, l'erreur suivante se produira et il ne démarrera pas.

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

paramètres de logstash

log4j2.properties Je pense que le fichier log4j2.properties doit être défini comme nécessaire pour définir le journal en cours d'exécution au démarrage. S'il est réglé correctement, je pense que la configuration sera fluide. pipeline.yml logstash a input (input) -> processing (filter) -> output (output) comme un pipeline, mais lorsque vous souhaitez entrer divers journaux, dans le processus de filtrage, branchez en utilisant if-else. Doit être traité. En ajoutant le paramètre multipipeline, vous pouvez préparer plusieurs pipelines sans utiliser if-else. logstash.conf Le traitement spécifique est décrit ici. Décrivez le contenu que vous souhaitez exécuter dans les trois plug-ins d'entrée, de filtre et de sortie.

extra_patterns/date_jp Utilisez cette option lorsque vous souhaitez ajouter un motif personnalisé lors de l'utilisation du filtre Grok. Vérifiez Official custom_patterns. Puisque date_jp est un nom de fichier attaché de manière appropriée, vous pouvez utiliser un nom descriptif.

paramètres de filebeat

filebeat.yml Cela peut être réalisé en définissant enabled sur true et en le définissant sur * .csv dans les paramètres lorsque vous souhaitez lire le fichier csv.

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 transfère normalement le contenu du fichier ligne par ligne, mais en ajoutant le paramètre multiligne, plusieurs lignes peuvent être transférées avec \ n des délimiteurs basés sur les règles définies. Reportez-vous au Résumé des paramètres multilignes qui gère plusieurs lignes avec Filebeat Je l'ai reçu.

 ### 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

dossier logs

Il s'agit d'un dossier pour saisir des exemples de journaux pour les tests.

Commencez

Vous pouvez vérifier le début de kibana en démarrant docker et en accédant à http: // localhost: 5601 après un certain temps. Si vous regardez le journal de démarrage de kibana, vous pouvez voir qu'il a démarré.

$ sudo docker-compose up -d

Confirmation des données

Sélectionnez Gestion des index-> Gestion de la pile. image.png

Ajoutez un modèle d'index à partir de Kibana-> Modèles d'index.

image.png

Les données capturées par filebeat sont filebeat-7.9.2, vous pouvez donc ajouter les données capturées par Index Pattern en saisissant filebeat- * etc. dans le nom du pattern d'index. Vous pouvez créer un modèle d'index contenant plusieurs sources de données à l'aide d'astérisques.

image.png

Sélectionnez le champ à utiliser pour le champ d'heure. @timestamp est l'horodatage par défaut. Si @timestamp n'est pas traité par logstash etc., l'heure à laquelle le journal a été importé est automatiquement définie.

image.png

Sélectionnez Kibana-> Découvrir pour l'index et modifiez la plage horaire pour qu'elle corresponde au journal. image.png

Enfin, confirmez que les données ont été importées et que vous avez terminé.

image.png

finalement

J'ai expliqué le fichier de configuration lors du démarrage avec docker-compose. À l'avenir, j'aimerais vous présenter comment analyser les dates telles que l'heure du Japon et comment gérer les fichiers csv.

Recommended Posts

Analysez et visualisez les journaux CSV avec Excel Elastic Stack (docker-compose) - Configurez avec docker-compose
Analysez et visualisez les journaux CSV avec Excel Elastic Stack (docker-compose) - Recevez des entrées de plusieurs battements avec Pipeline-to-Pipeline de Logstash
Analyse et visualisation des journaux CSV avec Excel Elastic Stack (docker-compose) - Qu'est-ce qu'Elastic Stack?
Analysez et visualisez les journaux csv avec Excel Elastic Stack (docker-compose) - Deux façons de gérer Logstash OutOfMemoryError
Analysez et visualisez les journaux csv avec Excel Elastic Stack (docker-compose) --Parse "année / mois / jour, heure: minute: seconde" en multiligne avec filtre grok et traitez-le comme du temps japonais
Analysez et visualisez les journaux csv avec Excel Elastic Stack (docker-compose) - Divisez PipelineFilter en 3 fichiers [entrée / filtre / sortie] pour améliorer la maintenabilité et la réutilisation
Analysez et visualisez les journaux csv avec Excel Elastic Stack (docker-compose) - (1ère ligne: date, 2ème ligne et lignes suivantes: données csv) la date est ajoutée à chaque ligne après la 2ème ligne en tant que champ d'horodatage.
Configurer Django sur Ubuntu 16.04 avec PostgreSQL et Gunicorn sur ECS
Configurer GitLab avec docker
[Note] Comment redémarrer le conteneur Windows configuré avec docker-compose
Construisez Zabbix5.0 avec docker-compose officiel, surveillez SNMPTRAP et définissez les notifications Slack