首頁  >  文章  >  後端開發  >  透過Docker Compose、Nginx和MariaDB實現PHP應用程式的監控與追蹤

透過Docker Compose、Nginx和MariaDB實現PHP應用程式的監控與追蹤

WBOY
WBOY原創
2023-10-12 14:25:441137瀏覽

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的监控与追踪

透過Docker Compose、Nginx和MariaDB實現PHP應用程式的監控與追蹤

隨著雲端運算與容器技術的發展,越來越多的應用程式開始在Docker容器中進行部署。在這種情況下,如何對應用程式進行監控和追蹤成為一個重要的問題。本文將介紹如何透過Docker Compose、Nginx和MariaDB來實現PHP應用程式的監控與追踪,並給出具體的程式碼範例。

一、準備工作

在開始之前,需要準備好以下環境:

  1. Docker:確保已經安裝了Docker,並且可以正常運作。
  2. Docker Compose:確保已經安裝了Docker Compose,並且可以正常運作。
  3. Nginx:用於代理程式和負載平衡請求。
  4. MariaDB:用於儲存應用程式的資料。

二、建立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:用於收集和儲存監控指標資料。
  1. Grafana:用於視覺化監控指標資料。
  2. 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定期收集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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn