Comment implémenter l'analyse et l'exploration de journaux distribuées dans les microservices PHP
Introduction :
Avec le développement rapide de la technologie Internet, de plus en plus d'applications sont construites via des microservices. Dans l'architecture des microservices, l'analyse et l'exploration des journaux constituent un élément très important. Elles peuvent nous aider à surveiller l'état de fonctionnement du système en temps réel, à découvrir les problèmes potentiels et à les gérer en temps opportun. Cet article présentera comment implémenter l'analyse et l'exploration de journaux distribuées dans les microservices PHP, et fournira des exemples de code spécifiques.
1. Créez un système de collecte de journaux
1. Choisissez l'outil de collecte de journaux approprié
La première étape pour implémenter l'analyse et l'exploration de journaux distribuées dans les microservices PHP consiste à choisir l'outil de collecte de journaux approprié. Les outils de collecte de journaux couramment utilisés incluent Logstash, Fluentd, Grafana, etc. Ces outils disposent de puissantes fonctions de collecte et d'analyse de journaux.
2. Ajoutez un plug-in de collecte de journaux à chaque microservice
Ajoutez un plug-in de collecte de journaux à chaque projet de microservice pour envoyer les journaux générés par le microservice à l'outil de collecte de journaux en temps réel. En prenant Logstash comme exemple, vous pouvez utiliser le plug-in Filebeat pour la collecte de journaux. Les étapes spécifiques sont les suivantes :
(1) Installez le plug-in Filebeat
Exécutez la commande suivante pour installer le plug-in Filebeat :
$ curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.2-darwin-x86_64.tar.gz $ tar xzvf filebeat-7.10.2-darwin-x86_64.tar.gz $ cd filebeat-7.10.2-darwin-x86_64/
(2) Configurez Filebeat
Créez un fichier de configuration nommé filebeat.yml et configurez-le au format suivant :
filebeat.inputs: - type: log paths: - /path/to/your/microservice/logs/*.log output.logstash: hosts: ["your_logstash_host:your_logstash_port"]
(3) Exécutez Filebeat
Exécutez la commande suivante pour démarrer Filebeat :
$ ./filebeat -e -c filebeat.yml
3. Configurez l'outil de collecte de journaux
Configurez le plug-in d'entrée dans Logstash pour recevoir les données de journal. de chaque microservice. Les étapes spécifiques sont les suivantes :
(1) Installer Logstash
Exécutez la commande suivante pour installer Logstash :
$ curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.10.2-darwin-x86_64.tar.gz $ tar xzvf logstash-7.10.2-darwin-x86_64.tar.gz $ cd logstash-7.10.2-darwin-x86_64/
(2) Configurer Logstash
Créez un fichier de configuration nommé logstash.conf et configurez-le au format suivant :
input { beats { port => your_logstash_port } } filter { # 编写日志过滤规则 } output { elasticsearch { hosts => ["your_elasticsearch_host:your_elasticsearch_port"] index => "your_index_name-%{+YYYY.MM.dd}" } }
(3) Exécutez Logstash
Exécutez la commande suivante pour démarrer Logstash :
$ ./logstash -f logstash.conf
4. Configurez Elasticsearch et Kibana
Elasticsearch et Kibana sont les composants principaux pour le stockage et l'affichage des données de journal. Les étapes spécifiques sont les suivantes :
(1) Installer Elasticsearch et Kibana
Référez-vous à la documentation officielle pour installer Elasticsearch et Kibana.
(2) Configurez Elasticsearch et Kibana
Modifiez les fichiers de configuration d'Elasticsearch et Kibana pour vous assurer qu'ils sont accessibles normalement.
(3) Configurer la sortie Logstash
Modifiez la configuration des hôtes de la partie sortie dans le fichier de configuration Logstash pour garantir que les données du journal sont correctement sorties vers Elasticsearch.
(4) Utilisez Kibana pour l'analyse et l'exploration des journaux
Ouvrez l'interface Web de Kibana, connectez-vous à l'instance Elasticsearch démarrée et utilisez le langage de requête KQL pour l'analyse et l'exploration des journaux.
2. Analyse et exploration des journaux
1. Utilisez Elasticsearch pour l'analyse des journaux
Elasticsearch fournit des fonctions de requête puissantes et vous pouvez analyser les données des journaux en écrivant des instructions de requête DSL. Voici un exemple de code utilisant Elasticsearch pour l'analyse des journaux :
$curl -X GET "localhost:9200/your_index_name/_search" -H 'Content-Type: application/json' -d' { "query": { "match": { "message": "error" } } }'
2. Utilisez Kibana pour l'exploration de journaux
Kibana fournit une interface intuitive et des fonctions d'affichage de graphiques riches, qui peuvent nous aider à effectuer l'exploration de journaux plus facilement. Voici un exemple de code pour utiliser Kibana pour l'exploration de journaux :
GET your_index_name/_search { "query": { "match": { "message": "error" } }, "aggs": { "level_count": { "terms": { "field": "level.keyword" } } } }
Le code ci-dessus interrogera les journaux contenant le mot-clé "error", effectuera des statistiques globales basées sur le niveau de journalisation et générera un graphique pour afficher la distribution du journal. niveau.
Conclusion :
En créant un système de collecte de journaux et en utilisant Elasticsearch et Kibana pour l'analyse et l'exploration des journaux, nous pouvons mieux surveiller et analyser l'état d'exécution des microservices en temps réel, découvrir les problèmes à temps et les gérer en conséquence, améliorant ainsi Stabilité et disponibilité des applications. J'espère que cet article vous aidera à comprendre comment implémenter l'analyse et l'exploration de journaux distribuées dans les microservices PHP.
Références :
[1] Elastic. (2021). Elastic Stack - Elasticsearch, Kibana, Beats et Logstash.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!