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.
Cet article est destiné à ceux qui découvrent Elastic Stack et qui envisagent de l'essayer.
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
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.
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
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]
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.
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
Il s'agit d'un dossier pour saisir des exemples de journaux pour les tests.
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
Sélectionnez Gestion des index-> Gestion de la pile.
Ajoutez un modèle d'index à partir de Kibana-> Modèles d'index.
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.
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.
Sélectionnez Kibana-> Découvrir pour l'index et modifiez la plage horaire pour qu'elle corresponde au journal.
Enfin, confirmez que les données ont été importées et que vous avez terminé.
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