Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの監視とログ管理を実装する
Web アプリケーションを開発および運用する場合、監視とログ管理は非常に重要な重要な部分です。 Docker Compose、Nginx、MariaDB を使用すると、完全な監視およびログ管理ソリューションを実装できます。
まず、PHP アプリケーションを準備し、Docker イメージとして記述する必要があります。この PHP アプリケーションは、単純な静的ページ、または PHP コードを含む動的アプリケーションにすることができます。どちらであっても、Docker イメージにパッケージ化する必要があります。
次に、アプリケーションの環境全体を定義するために Docker Compose ファイルを作成する必要があります。このファイルでは、Nginx、PHP、MariaDB の 3 つのサービスを定義する必要があります。
version: '3' services: web: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf - ./logs:/var/log/nginx php: image: your_php_image:latest volumes: - ./php:/var/www/html links: - db db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=your_password volumes: - ./data:/var/lib/mariadb
上記の構成では、web、php、db の 3 つのサービスを定義しました。 Web サービスは Nginx イメージを使用し、ホストのポート 80 をコンテナ内のポート 80 にバインドします。また、Nginx 構成ファイル nginx.conf のマウント パスとログ ファイル ディレクトリ logs も指定しました。
php サービスは、独自のパッケージ化された PHP イメージを使用し、ホストの php ディレクトリをコンテナ内の /var/www/html ディレクトリにマウントし、PHP アプリケーションがこのディレクトリにアクセスできるようにします。
db サービスは MariaDB ミラーを使用し、ROOT ユーザーのパスワードを設定します。また、データベース データを永続的に保存するためのデータ ディレクトリもマウントしました。
次に、Nginx の仮想ホストとログ管理を構成するための Nginx 構成ファイル nginx.conf を準備する必要があります。簡単な例を次に示します。
server { listen 80; server_name localhost; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { root /var/www/html; index index.html index.php; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; include fastcgi_params; } }
上記の構成ファイルは、ポート 80 でリッスンする localhost という名前の仮想ホストを定義します。アクセスログとエラーログをそれぞれ /var/log/nginx ディレクトリに設定しました。
次に、ログを解析して保存するスクリプトを作成する必要があります。 PHP を使用して簡単なスクリプトを作成すると、この機能を実現できます。以下に例を示します。
<?php function save_log($log_file, $log_data) { // 解析日志数据 // 存储到数据库中 } $log_file = '/var/log/nginx/access.log'; $handle = fopen($log_file, "r"); if ($handle) { while (($line = fgets($handle)) !== false) { // 解析日志行,获取需要存储的数据 $log_data = parse_log($line); // 存储日志数据 save_log($log_file, $log_data); } fclose($handle); } ?>
上記のスクリプトでは、単純なループを使用してログ ファイルを 1 行ずつ読み取り、解析されたログ データをデータベースに保存します。特定の解析および保存ロジックは、実際の状況に応じて作成する必要があります。
最後に、ログ解析とストレージ操作を定期的に実行するために、このスクリプトを PHP アプリケーションに追加する必要があります。 crontab を使用してスケジュールされた実行を実装できます。以下に例を示します。
# 每分钟执行一次日志解析脚本 * * * * * php /var/www/html/log_parser.php
上記の設定を crontab に追加して、log_parser.php スクリプトを毎分実行します。
要約すると、Docker Compose、Nginx、MariaDB を使用すると、PHP アプリケーションの監視とログ管理を簡単に実装できます。 Nginxの仮想ホストとログ管理を設定することで、アクセスログやエラーログを指定したディレクトリに保存することができます。次に、ログを解析するスクリプトを作成して PHP アプリケーションに追加することで、このログ データを定期的に解析して保存できます。こうすることで、アプリケーションの監視とトラブルシューティングを簡単に行うことができます。
以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションの監視とログ管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。