>  기사  >  백엔드 개발  >  Docker Compose, Nginx 및 MariaDB를 통해 PHP 애플리케이션 모니터링 및 추적

Docker Compose, Nginx 및 MariaDB를 통해 PHP 애플리케이션 모니터링 및 추적

WBOY
WBOY원래의
2023-10-12 14:25:441096검색

通过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으로 문의하세요.