透過Docker Compose、Nginx和MariaDB實現PHP應用程式的監控與追蹤
隨著雲端運算與容器技術的發展,越來越多的應用程式開始在Docker容器中進行部署。在這種情況下,如何對應用程式進行監控和追蹤成為一個重要的問題。本文將介紹如何透過Docker Compose、Nginx和MariaDB來實現PHP應用程式的監控與追踪,並給出具體的程式碼範例。
一、準備工作
在開始之前,需要準備好以下環境:
二、建立Docker Compose檔案
在任意目錄下建立一個名為docker-compose.yml的文件,檔案內容如下:
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
在上述文件中,我們創建了兩個服務,一個是web服務,一個是db服務。 web服務將會建構應用程式的鏡像,並將80埠對應到宿主機上。 db服務使用mariadb鏡像,並指定了root密碼和資料庫名稱,並將資料儲存在宿主機的./data目錄下。
三、建立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服務。
四、建立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資料庫,並列印出連接成功的訊息。
五、建置與執行
在終端機中進入到與docker-compose.yml相同的目錄下,執行下列指令建置與執行容器:
$ docker-compose build $ docker-compose up -d
在瀏覽器中開啟http://localhost,應該可以看到連線成功的訊息。
六、監控與追蹤
為了實現PHP應用程式的監控與追踪,我們可以使用一些常用的工具,例如:
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定期收集web服務上的指標資料。 執行以下指令重新建置和執行容器,即可啟動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中文網其他相關文章!