Docker Compose, Nginx 및 MariaDB를 통한 PHP 애플리케이션 모니터링 및 추적
클라우드 컴퓨팅 및 컨테이너 기술의 발전으로 점점 더 많은 애플리케이션이 Docker 컨테이너에 배포되기 시작했습니다. 이 경우 애플리케이션을 어떻게 모니터링하고 추적할지가 중요한 문제가 됩니다. 이 기사에서는 Docker Compose, Nginx 및 MariaDB를 통해 PHP 애플리케이션을 모니터링하고 추적하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
1. 준비
시작하기 전에 다음 환경을 준비해야 합니다.
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 애플리케이션을 모니터링하고 추적하기 위해 다음과 같은 몇 가지 일반적인 도구를 사용할 수 있습니다.
구체적인 구성 단계는 이 문서의 범위를 벗어나지만 구성을 위해 다음 샘플 코드를 참조할 수 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!