Pemantauan dan pengurusan log aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB

WBOY
Lepaskan: 2023-10-12 12:32:02
asal
662 orang telah melayarinya

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的监控和日志管理

Gunakan Docker Compose, Nginx dan MariaDB untuk melaksanakan pemantauan dan pengurusan log aplikasi PHP

Pemantauan dan pengurusan log adalah bahagian yang sangat penting semasa membangunkan dan mengendalikan aplikasi web. Menggunakan Docker Compose, Nginx dan MariaDB, kami boleh melaksanakan penyelesaian pemantauan dan pengurusan log yang lengkap.

Pertama, kita perlu menyediakan aplikasi PHP dan menulisnya sebagai imej Docker. Aplikasi PHP ini boleh menjadi halaman statik mudah atau aplikasi dinamik yang mengandungi kod PHP. Tidak kira yang mana satu, kita perlu membungkusnya ke dalam imej Docker.

Seterusnya, kita perlu menulis fail Docker Compose untuk menentukan keseluruhan persekitaran aplikasi kita. Dalam fail ini, kita perlu menentukan tiga perkhidmatan: Nginx, PHP dan MariaDB.

version: '3'

services:
  web:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./logs:/var/log/nginx

  php:
    image: your_php_image:latest
    volumes:
      - ./php:/var/www/html
    links:
      - db

  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=your_password
    volumes:
      - ./data:/var/lib/mariadb
Salin selepas log masuk

Dalam konfigurasi di atas, kami menentukan tiga perkhidmatan: web, php dan db. Perkhidmatan web menggunakan imej Nginx dan mengikat port 80 hos ke port 80 dalam bekas. Kami juga menentukan laluan pemasangan fail konfigurasi Nginx nginx.conf dan log direktori fail log.

Perkhidmatan php menggunakan imej PHP pakej kami sendiri, dan memasang direktori php dalam hos ke direktori /var/www/html dalam bekas, supaya aplikasi PHP kami boleh mengakses fail dalam direktori ini.

Perkhidmatan db menggunakan cermin MariaDB dan menetapkan kata laluan pengguna ROOT. Kami juga memasang direktori data untuk penyimpanan data pangkalan data yang berterusan.

Seterusnya, kami perlu menyediakan fail konfigurasi Nginx nginx.conf untuk mengkonfigurasi hos maya dan pengurusan log Nginx. Berikut ialah contoh mudah:

server {
    listen 80;
    server_name localhost;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        root /var/www/html;
        index index.html index.php;
    }

    location ~ .php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
        include fastcgi_params;
    }
}
Salin selepas log masuk

Fail konfigurasi di atas mentakrifkan hos maya bernama localhost, yang mendengar pada port 80. Kami mengkonfigurasi log akses dan log ralat ke direktori /var/log/nginx masing-masing.

Seterusnya, kita perlu menulis skrip untuk menghuraikan dan menyimpan log. Kita boleh menulis skrip mudah menggunakan PHP untuk mencapai fungsi ini. Berikut ialah contoh:

<?php

function save_log($log_file, $log_data) {
    // 解析日志数据
    // 存储到数据库中
}

$log_file = '/var/log/nginx/access.log';

$handle = fopen($log_file, "r");

if ($handle) {
    while (($line = fgets($handle)) !== false) {
        // 解析日志行,获取需要存储的数据
        $log_data = parse_log($line);

        // 存储日志数据
        save_log($log_file, $log_data);
    }

    fclose($handle);
}
?>
Salin selepas log masuk

Dalam skrip di atas, kami menggunakan gelung mudah untuk membaca fail log baris demi baris dan menyimpan data log yang dihuraikan ke dalam pangkalan data. Logik penghuraian dan penyimpanan khusus perlu ditulis mengikut situasi sebenar.

Akhir sekali, kami perlu menambahkan skrip ini pada aplikasi PHP kami untuk melaksanakan penghuraian log dan operasi penyimpanan dengan kerap. Kita boleh menggunakan crontab untuk melaksanakan pelaksanaan berjadual. Berikut ialah contoh:

# 每分钟执行一次日志解析脚本
* * * * * php /var/www/html/log_parser.php
Salin selepas log masuk

Tambahkan konfigurasi di atas pada crontab untuk melaksanakan skrip log_parser.php setiap minit.

Ringkasnya, menggunakan Docker Compose, Nginx dan MariaDB, kami boleh melaksanakan pemantauan dan pengurusan log aplikasi PHP dengan mudah. Dengan mengkonfigurasi hos maya dan pengurusan log Nginx, kami boleh menyimpan log akses dan log ralat dalam direktori tertentu. Kemudian, dengan menulis skrip yang menghuraikan log dan menambahkannya pada aplikasi PHP, kami boleh menghuraikan dan menyimpan data log ini secara tetap. Dengan cara ini, kami boleh memantau dan menyelesaikan masalah aplikasi dengan mudah.

Atas ialah kandungan terperinci Pemantauan dan pengurusan log aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!