ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡する

Docker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡する

WBOY
WBOYオリジナル
2023-10-12 14:25:441137ブラウズ

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

Docker Compose、Nginx、MariaDB による PHP アプリケーションの監視と追跡

クラウド コンピューティングとコンテナ テクノロジーの発展に伴い、Docker へのデプロイを開始するアプリケーションがますます増えています。容器。この場合、アプリケーションをどのように監視および追跡するかが重要な問題になります。この記事では、Docker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡する方法を紹介し、具体的なコード例を示します。

1. 準備

開始する前に、次の環境を準備する必要があります:

  1. Docker: Docker がインストールされ、正常に実行できることを確認します。
  2. Docker Compose: Docker Compose がインストールされ、適切に実行されていることを確認してください。
  3. Nginx: プロキシと負荷分散リクエストに使用されます。
  4. MariaDB: アプリケーション データの保存に使用されます。

2. Docker Compose ファイルの作成

任意のディレクトリに docker-compose.yml という名前のファイルを作成します。ファイルの内容は次のとおりです:

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

上記のファイルでは、2 つのサービスを作成しました。1 つは Web サービス、もう 1 つは DB サービスです。 Web サービスはアプリケーションのイメージを構築し、ポート 80 をホストにマップします。 db サービスは mariadb イメージを使用し、root パスワードとデータベース名を指定して、データをホストの ./data ディレクトリに保存します。

3. Nginx 設定ファイルの作成

docker-compose.yml と同じディレクトリに nginx.conf という名前のファイルを作成します。ファイルの内容は次のとおりです:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name localhost;

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

In 上記のファイルでは、ポート 80 でリッスンし、リクエストを web という名前の Docker サービスに転送するように Nginx を構成しました。

4. PHP アプリケーション コードの作成

docker-compose.yml と同じディレクトリに、index.php という名前のファイルを作成します。ファイルの内容は次のとおりです:

<?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();
?>

上記のファイルでは、mysqli 拡張機能を介して MariaDB データベースに接続し、接続成功のメッセージを出力します。

5. ビルドと実行

ターミナルで docker-compose.yml と同じディレクトリに移動し、次のコマンドを実行してコンテナーをビルドして実行します:

$ docker-compose build
$ docker-compose up -d

参照 サーバーで http://localhost を開くと、接続成功のメッセージが表示されるはずです。

6. 監視と追跡

PHP アプリケーションの監視と追跡を実装するには、次のような一般的なツールを使用できます:

  1. Prometheus: 使用監視メトリクス データを収集して保存します。
  2. Grafana: モニタリング指標データを視覚化するために使用されます。
  3. Zipkin: アプリケーション内のリクエストを追跡するために使用されます。

具体的な構成手順はこの記事の範囲を超えていますが、構成については次のサンプル コードを参照できます。

次のサービスを docker-compose.yml に追加します。

  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"

次の内容を含む prometheus.yml という名前のファイルを docker-compose.yml と同じディレクトリに作成します。

上記のファイルでは、Web サービス上のインジケーター データを定期的に収集するように Prometheus を構成しました。

次のコマンドを実行してコンテナを再構築して実行し、Prometheus と Grafana を起動します。

global:
  scrape_interval: 15s

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

デフォルトのユーザー名とパスワードを使用して、ブラウザで http://localhost:3000 を開きます ( admin/ admin) を使用して Grafana にログインし、Prometheus データ ソースを構成し、モニタリング メトリック データを視覚化するためのダッシュボードを作成します。

Zipkin の設定については、公式ドキュメントと関連サンプルコードを参照して完了してください。

概要

Docker Compose、Nginx、MariaDB を通じて、PHP アプリケーションの監視および追跡環境を簡単に構築できます。 Prometheus と Grafana を構成することで、アプリケーション監視指標データを収集して視覚化できます。 Zipkin を構成すると、アプリケーション内のリクエストを追跡できます。上記は簡単な例であり、実際のニーズや環境に応じてカスタマイズおよび調整できます。この記事がお役に立てば幸いです!

以上がDocker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。