Docker Compose, Nginx 및 MariaDB를 통한 PHP 애플리케이션 모니터링 및 추적
클라우드 컴퓨팅 및 컨테이너 기술의 발전으로 점점 더 많은 애플리케이션이 Docker 컨테이너에 배포되기 시작했습니다. 이 경우 애플리케이션을 어떻게 모니터링하고 추적할지가 중요한 문제가 됩니다. 이 기사에서는 Docker Compose, Nginx 및 MariaDB를 통해 PHP 애플리케이션을 모니터링하고 추적하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
1. 준비
시작하기 전에 다음 환경을 준비해야 합니다.
- Docker: Docker가 설치되어 있고 정상적으로 실행될 수 있는지 확인하세요.
- Docker Compose: Docker Compose가 제대로 설치되어 실행되고 있는지 확인하세요.
- Nginx: 요청 프록시 및 로드 밸런싱에 사용됩니다.
- 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 애플리케이션을 모니터링하고 추적하기 위해 다음과 같은 몇 가지 일반적인 도구를 사용할 수 있습니다.
- Prometheus: 모니터링 지표 데이터를 수집하고 저장하는 데 사용됩니다.
- Grafana: 모니터링 지표 데이터를 시각화하는 데 사용됩니다.
- 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

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

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

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

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

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

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

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


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
