찾다
백엔드 개발PHP 튜토리얼Docker Compose, Nginx 및 MariaDB를 통해 PHP 애플리케이션 모니터링 및 추적

通过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 파일 만들기

파일 내용은 다음과 같습니다.

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

위 파일에서는 두 가지 서비스를 만들었습니다. 하나는 웹 서비스입니다. , 하나는 db 서비스입니다. 웹 서비스는 애플리케이션의 이미지를 구축하고 포트 80을 호스트에 매핑합니다. db 서비스는 mariadb 이미지를 사용하고, 루트 비밀번호와 데이터베이스 이름을 지정하고, 호스트의 ./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;
        }
    }
}

위 파일에서는 포트에서 수신하도록 Nginx를 구성했습니다. 80, 그리고 요청을 web이라는 Docker 서비스로 전달합니다.

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"

docker-compose.yml과 동일한 디렉터리에 다음 내용이 포함된 prometheus.yml이라는 파일을 만듭니다.

global:
  scrape_interval: 15s

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

위 파일에서는 Prometheus가 구성됩니다. 웹 서비스에서 지표 데이터를 정기적으로 수집합니다.

다음 명령을 실행하여 Prometheus 및 Grafana를 시작하여 컨테이너를 다시 빌드하고 실행합니다.

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

브라우저에서 http://localhost:3000을 열고 기본 사용자 이름과 비밀번호(admin/admin)를 사용하여 Grafana에 로그인합니다. Prometheus 데이터 소스를 구성하고 대시보드를 생성하여 모니터링 지표 데이터를 시각화합니다.

Zipkin 구성은 공식 문서 및 관련 샘플 코드를 참고하여 완성할 수 있습니다.

요약

Docker Compose, Nginx 및 MariaDB를 사용하면 PHP 애플리케이션용 모니터링 및 추적 환경을 쉽게 구축할 수 있습니다. Prometheus 및 Grafana를 구성하면 애플리케이션 모니터링 지표 데이터를 수집하고 시각화할 수 있습니다. Zipkin을 구성하면 애플리케이션에서 요청을 추적할 수 있습니다. 위의 내용은 간단한 예이므로 실제 필요와 환경에 따라 사용자 정의하고 조정할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 Docker Compose, Nginx 및 MariaDB를 통해 PHP 애플리케이션 모니터링 및 추적의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何在FastAPI中实现请求日志记录和监控如何在FastAPI中实现请求日志记录和监控Jul 30, 2023 am 08:29 AM

如何在FastAPI中实现请求日志记录和监控引言:FastAPI是一个基于Python3.7+的高性能Web框架,它提供了许多强大的功能和特性,包括自动化的请求和响应模型验证、安全性、性能优化等。在实际开发中,我们经常需要在应用程序中记录请求日志以便进行排错和监控分析。本文将介绍如何在FastAPI中实现请求日志记录和监控,并提供相应的代码示例。一、安装依

Linux下的实时日志监控与分析Linux下的实时日志监控与分析Jul 29, 2023 am 08:06 AM

Linux下的实时日志监控与分析在日常的系统管理和故障排查中,日志是一个非常重要的数据来源。通过对系统日志的实时监控和分析,我们可以及时发现异常情况并进行相应的处理。本文将介绍Linux下如何进行实时日志监控和分析,并提供相应的代码示例。一、实时日志监控在Linux下,最常用的日志系统是rsyslog。通过配置rsyslog,我们可以实现将不同应用程序的日志

win10监控摄像头打开照片的方法win10监控摄像头打开照片的方法Jul 10, 2023 pm 09:41 PM

如果我们手头没有手机,只有电脑,但我们必须拍照,我们可以使用电脑内置的监控摄像头拍照,那么如何打开win10监控摄像头,事实上,我们只需要下载一个相机应用程序。打开win10监控摄像头的具体方法。win10监控摄像头打开照片的方法:1.首先,盘快捷键Win+i打开设置。2.打开后,进入个人隐私设置。3.然后在相机手机权限下打开访问限制。4.打开后,您只需打开相机应用软件。(如果没有,可以去微软店下载一个)5.打开后,如果计算机内置监控摄像头或组装了外部监控摄像头,则可以拍照。(因为人们没有安装摄

如何使用Golang实现Web应用程序监控如何使用Golang实现Web应用程序监控Jun 24, 2023 am 09:00 AM

在当今的互联网时代,Web应用程序的高效稳定运行是非常重要的。然而,应用程序可能会出现故障或崩溃,影响用户体验。为了确保应用程序的正常运行,我们需要对其进行监控。本文将探讨如何使用Golang实现Web应用程序监控。一、Golang的Web应用程序监控工具Golang拥有非常适合Web应用程序监控的工具。其中最流行的就是Prometheus。Promethe

基于go-zero实现微服务调用链监控基于go-zero实现微服务调用链监控Jun 23, 2023 am 09:53 AM

随着微服务架构的广泛应用,调用链监控已经成为了保障微服务健康运行的重要手段。而基于go-zero框架实现微服务调用链监控,则是更加高效可靠的实现方式。一、调用链监控的基本概念微服务架构中,一个请求可能经过多个微服务组件的调用,这些调用形成了一条调用链。而一旦某一个环节出现问题,整个服务甚至整个系统都有可能受到影响。因此,调用链监控这个技术,就是通过记录整条调

Nginx监控实时状态配置,实时查看网站运行Nginx监控实时状态配置,实时查看网站运行Jul 04, 2023 pm 05:18 PM

Nginx监控实时状态配置,实时查看网站运行引言:Nginx是一款非常流行的反向代理服务器,其高性能和高并发能力使得它成为了许多网站的首选。为了保证网站的稳定运行,我们需要时刻监控Nginx的运行状态。本篇文章将介绍如何配置Nginx实时状态监控,并通过示例代码来让读者更好地理解。一、安装Nginx状态监控模块要实现Nginx的实时状态监控,需要在Nginx

如何在Linux上设置高可用的网络存储监控如何在Linux上设置高可用的网络存储监控Jul 07, 2023 pm 12:07 PM

如何在Linux上设置高可用的网络存储监控在现代的IT环境中,网络存储是一个关键组件,用于存储和管理海量的数据。为了确保数据的可靠性和高可用性,对网络存储的监控和故障恢复是非常重要的。本文将介绍如何在Linux上设置高可用的网络存储监控,并提供代码示例。第一步:安装监控工具在Linux上,我们可以使用一个开源的监控工具来监控网络存储,比如Nagios。首先,

Nginx性能监控与安全分析辅助工具Nginx性能监控与安全分析辅助工具Jun 10, 2023 pm 02:41 PM

随着互联网的发展,web应用程序的性能监控以及安全分析越来越受到重视。nginx作为一款高性能的Web服务器和反向代理工具,其在性能监控和安全分析方面也受到广泛的关注和应用。本文将介绍一些Nginx性能监控和安全分析的辅助工具。Nginx性能监控工具NginxAmplifyNginxAmplify是Nginx公司推出的一款性能监控工具。该工具可以

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경