Maison > développement back-end > tutoriel php > Pratique de surveillance conteneurisée et de gestion des journaux par microservice PHP

Pratique de surveillance conteneurisée et de gestion des journaux par microservice PHP

WBOY
Libérer: 2024-05-08 12:06:01
original
659 Les gens l'ont consulté

Surveillance de la conteneurisation des microservices PHP et surveillance de la gestion des journaux : utilisez Prometheus et Grafana pour surveiller l'utilisation des ressources, le nombre de demandes et la latence. Gestion des journaux : collectez, analysez et visualisez les journaux à l'aide de la pile ELK (ElasticSearch, Logstash, Kibana). Déployez l'agent Filebeat pour envoyer les journaux à ElasticSearch.

PHP 微服务容器化监控与日志管理实战

Pratique de surveillance de la conteneurisation des microservices PHP et de gestion des journaux

Dans l'architecture distribuée moderne, la conteneurisation des microservices est devenue une pratique populaire. Cet article explique comment utiliser Prometheus et Grafana pour surveiller les microservices PHP et utiliser ELK Stack pour la gestion des journaux.

Surveillance

1. Installez Prometheus

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack
Copier après la connexion

2 Installez Grafana

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana grafana/grafana
Copier après la connexion

3. Configurez le tableau de bord Grafana
Créez le tableau de bord Grafana suivant, en utilisant Prometheus comme source de données :

- Graph: Pod 资源使用情况,监控 CPU 和内存使用
- Gauge: 容器请求数,监控每秒处理的请求数
- Scatter Plot: 请求延迟,绘制请求延迟与时间的关系
Copier après la connexion

Gestion des journaux

1. Installez ELK Stack

docker-compose up
Copier après la connexion

2. Configurez ELK Stack
Créez un modèle d'index dans Kibana pour analyser les journaux PHP. Les champs peuvent inclure :

- timestamp
- level
- message
- ...
Copier après la connexion

3. Déployez l'agent de journal
Par exemple, vous pouvez utiliser Filebeat pour déployer dans chaque pod de microservice et envoyer les journaux à ElasticSearch.

filebeat:
  inputs:
    - type: log
      paths:
        - /var/log/*.log
  output.logstash:
    hosts: ["logstash:5044"]
Copier après la connexion

Cas pratique

Ce qui suit est un exemple de fichier Dockerfile de microservice PHP pour la surveillance et la journalisation :

FROM php:8.0-fpm

# Copy application code
COPY . /var/www/html

# Install dependencies
RUN composer install

# Prometheus Exporter
RUN wget https://github.com/prometheus/client_php/releases/download/2.4.2/prometheusclient-php-2.4.2.phar -O /usr/local/bin/promexp --quiet

# Logstash Filebeat
RUN wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.1.0-linux-x86_64.tar.gz -O /tmp/filebeat.tar.gz --quiet
RUN tar -zxf /tmp/filebeat.tar.gz -C /usr/local/bin/

# Start application
CMD ["php", "-S", "0.0.0.0:80"]
Copier après la connexion

Conclusion

En mettant en œuvre les mesures de surveillance et de gestion des journaux ci-dessus, vous pouvez prendre le contrôle des opérations du microservice PHP. Obtenez une compréhension approfondie des conditions et identifiez et résolvez rapidement tout problème, améliorant ainsi la stabilité et les performances des applications.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal