Maison >développement back-end >tutoriel php >Comment implémenter l'analyse et l'exploration de journaux distribués dans les microservices PHP

Comment implémenter l'analyse et l'exploration de journaux distribués dans les microservices PHP

PHPz
PHPzoriginal
2023-09-24 09:42:26772parcourir

Comment implémenter lanalyse et lexploration de journaux distribués dans les microservices PHP

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn