Heim  >  Artikel  >  Backend-Entwicklung  >  Überwachen und verfolgen Sie PHP-Anwendungen über Docker Compose, Nginx und MariaDB

Überwachen und verfolgen Sie PHP-Anwendungen über Docker Compose, Nginx und MariaDB

WBOY
WBOYOriginal
2023-10-12 14:25:441135Durchsuche

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的监控与追踪

Überwachung und Verfolgung von PHP-Anwendungen über Docker Compose, Nginx und MariaDB

Mit der Entwicklung von Cloud Computing und Container-Technologie werden immer mehr Anwendungen in Docker-Containern bereitgestellt. In diesem Fall wird die Überwachung und Nachverfolgung von Anwendungen zu einem wichtigen Thema. In diesem Artikel wird vorgestellt, wie PHP-Anwendungen über Docker Compose, Nginx und MariaDB überwacht und verfolgt werden, und es werden konkrete Codebeispiele gegeben.

1. Vorbereitung

Bevor Sie beginnen, müssen Sie die folgende Umgebung vorbereiten:

  1. Docker: Stellen Sie sicher, dass Docker installiert wurde und normal ausgeführt werden kann.
  2. Docker Compose: Stellen Sie sicher, dass Docker Compose installiert ist und ordnungsgemäß ausgeführt wird.
  3. Nginx: wird für Proxy- und Lastausgleichsanfragen verwendet.
  4. MariaDB: wird zum Speichern von Daten für Anwendungen verwendet.

2. Erstellen Sie eine Docker Compose-Datei

Erstellen Sie eine Datei mit dem Namen docker-compose.yml in einem beliebigen Verzeichnis. Der Dateiinhalt lautet wie folgt:

version: '3'
services:
  web:
    build: .
    ports:
    - "80:80"
  db:
    image: mariadb
    environment:
    - MYSQL_ROOT_PASSWORD=root
    - MYSQL_DATABASE=test_db
    volumes:
    - ./data:/var/lib/mysql

In der obigen Datei haben wir zwei Dienste erstellt, einer ist ein Webdienst , einer davon ist der Datenbankdienst. Der Webdienst erstellt ein Image der Anwendung und ordnet Port 80 dem Host zu. Der DB-Dienst verwendet das Mariadb-Image, gibt das Root-Passwort und den Datenbanknamen an und speichert die Daten im Verzeichnis ./data des Hosts.

3. Erstellen Sie eine Nginx-Konfigurationsdatei

Erstellen Sie eine Datei mit dem Namen nginx.conf im selben Verzeichnis wie docker-compose.yml. Der Dateiinhalt lautet wie folgt:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name localhost;

        location / {
            proxy_pass http://web;
        }
    }
}

In der obigen Datei haben wir Nginx so konfiguriert, dass es den Port überwacht 80, Und leiten Sie die Anfrage an den Docker-Dienst namens web weiter.

4. PHP-Anwendungscode erstellen

Erstellen Sie eine Datei mit dem Namen index.php im selben Verzeichnis wie docker-compose.yml. Der Dateiinhalt lautet wie folgt:

<?php
$dbhost = 'db';
$dbuser = 'root';
$dbpass = 'root';
$dbname = 'test_db';

$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

if($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
}

echo "连接成功";
$conn->close();
?>

In der obigen Datei stellen wir über MySQL eine Verbindung zu MariaDB her Erweiterungsdatenbank und drucken Sie eine Meldung über die erfolgreiche Verbindung aus. 5. Erstellen und ausführen In der Lage sein, es zu einer erfolgreichen Verbindungsmeldung zu sehen.

6. Überwachung und Nachverfolgung

Um PHP-Anwendungen zu überwachen und zu verfolgen, können wir einige gängige Tools verwenden, wie zum Beispiel:

Prometheus: wird zum Sammeln und Speichern von Überwachungsindikatordaten verwendet.

Grafana: Wird zur Visualisierung von Überwachungsindikatordaten verwendet.

Zipkin: Wird zum Verfolgen von Anfragen in Anwendungen verwendet.
  1. Die spezifischen Konfigurationsschritte gehen über den Rahmen dieses Artikels hinaus, wir können uns jedoch für die Konfiguration auf den folgenden Beispielcode beziehen.
  2. Fügen Sie die folgenden Dienste in docker-compose.yml hinzu:
  3. $ docker-compose build
    $ docker-compose up -d
  4. Erstellen Sie eine Datei mit dem Namen prometheus.yml im selben Verzeichnis wie docker-compose.yml mit folgendem Inhalt:
  prometheus:
    image: prom/prometheus
    volumes:
    - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
    - "9090:9090"

  grafana:
    image: grafana/grafana
    volumes:
    - ./grafana-data:/var/lib/grafana
    ports:
    - "3000:3000"

In der obigen Datei ist Prometheus konfiguriert um regelmäßig Indikatordaten über den Webdienst zu sammeln.

Starten Sie Prometheus und Grafana, indem Sie den folgenden Befehl ausführen, um den Container neu zu erstellen und auszuführen:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'php-app'
    static_configs:
    - targets: ['web:80']

Öffnen Sie http://localhost:3000 in Ihrem Browser und melden Sie sich mit dem Standardbenutzernamen und -kennwort (admin/admin) bei Grafana an. Dann Konfigurieren Sie die Prometheus-Datenquelle und erstellen Sie Dashboards, um Überwachungsmetrikdaten zu visualisieren.

Was die Konfiguration von Zipkin betrifft, können Sie sich zur Vervollständigung auf die offizielle Dokumentation und die zugehörigen Beispielcodes beziehen.

Zusammenfassung

Mit Docker Compose, Nginx und MariaDB können wir ganz einfach eine Überwachungs- und Tracking-Umgebung für PHP-Anwendungen erstellen. Durch die Konfiguration von Prometheus und Grafana können Sie Indikatordaten zur Anwendungsüberwachung sammeln und visualisieren. Durch die Konfiguration von Zipkin können Sie Anfragen in Ihrer Anwendung verfolgen. Das Obige ist ein einfaches Beispiel. Sie können es entsprechend Ihren tatsächlichen Anforderungen und Ihrer Umgebung anpassen und anpassen. Ich hoffe, dieser Artikel hilft Ihnen!

Das obige ist der detaillierte Inhalt vonÜberwachen und verfolgen Sie PHP-Anwendungen über Docker Compose, Nginx und MariaDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn