Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan Elasticsearch dalam PHP untuk membina pemantauan masa nyata dan papan pemuka

Gunakan Elasticsearch dalam PHP untuk membina pemantauan masa nyata dan papan pemuka

王林
王林asal
2023-10-03 08:38:09832semak imbas

PHP 中使用 Elasticsearch 构建实时监控与仪表盘

Menggunakan Elasticsearch dalam PHP untuk membina pemantauan masa nyata dan papan pemuka

Ikhtisar:
Dengan perkembangan pesat Internet, permintaan untuk pemantauan sistem dan analisis data masa nyata semakin tinggi dan lebih tinggi. Elasticsearch ialah enjin carian sumber terbuka yang berkuasa yang boleh digunakan bukan sahaja untuk carian teks penuh, tetapi juga untuk penyimpanan dan analisis data masa nyata. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk membina pemantauan masa nyata dan papan pemuka, serta menyediakan contoh kod khusus.

Langkah 1: Pasang Elasticsearch
Mula-mula, kita perlu memasang Elasticsearch. Anda boleh memuat turun versi yang sesuai untuk sistem pengendalian anda dari laman web rasmi Elasticsearch (https://www.elastic.co/downloads/elasticsearch), dan memasang serta mengkonfigurasinya mengikut dokumentasi rasmi. Selepas pemasangan selesai, pastikan perkhidmatan Elasticsearch sedang berjalan.

Langkah 2: Pasang pustaka klien Elasticsearch PHP
Untuk menggunakan Elasticsearch dengan mudah, kami perlu memasang pustaka klien Elasticsearch PHP. Anda boleh memasangnya menggunakan Composer, alat pengurusan pergantungan PHP. Anda boleh mencipta fail composer.json dalam direktori akar projek anda dan menambah kandungan berikut:

{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}

Kemudian, jalankan arahan composer install pada baris arahan untuk memasang perpustakaan klien Elasticsearch PHP.

Langkah Tiga: Sambung ke Elasticsearch
Dalam kod PHP anda, anda perlu menyambung ke contoh Elasticsearch. Berikut ialah contoh kod:

<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

// 连接到本地的 Elasticsearch 实例
$client = ClientBuilder::create()->setHosts(['localhost:9200'])->build();

// 检查 Elasticsearch 是否连接成功
$response = $client->ping();
if ($response) {
    echo "成功连接到 Elasticsearch.";
} else {
    echo "无法连接到 Elasticsearch.";
}
?>

Langkah 4: Buat indeks dan pemetaan
Dalam Elasticsearch, indeks ialah tempat data disusun dan disimpan. Kita perlu mencipta indeks dan menentukan pemetaan indeks (tentukan struktur data). Berikut ialah contoh kod:

<?php
// 创建一个索引
$params = [
    'index' => 'monitoring',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ],
        'mappings' => [
            'properties' => [
                'timestamp' => ['type' => 'date'],
                'metric' => ['type' => 'keyword'],
                'value' => ['type' => 'float']
            ]
        ]
    ]
];

// 发送请求
$response = $client->indices()->create($params);

if ($response['acknowledged']) {
    echo "索引创建成功.";
} else {
    echo "索引创建失败.";
}
?>

Langkah 5: Hantar data pemantauan
Kini, kami boleh menghantar data pemantauan ke Elasticsearch. Berikut ialah contoh kod:

<?php
// 准备要发送的数据
$data = [
    'timestamp' => date('Y-m-d H:i:s'),
    'metric' => 'cpu_usage',
    'value' => 75.3
];

// 发送数据
$params = [
    'index' => 'monitoring',
    'body' => $data
];

$response = $client->index($params);

if ($response['result'] == 'created') {
    echo "数据发送成功.";
} else {
    echo "数据发送失败.";
}
?>

Langkah 6: Pertanyaan dan paparan data
Akhir sekali, kami boleh menanyakan data daripada Elasticsearch dan memaparkan data pemantauan pada halaman web. Berikut ialah contoh kod:

<?php
// 查询最近一小时的监控数据
$params = [
    'index' => 'monitoring',
    'body' => [
        'query' => [
            'range' => [
                'timestamp' => [
                    'gte' => 'now-1h'
                ]
            ]
        ],
        'sort' => [
            'timestamp' => 'asc'
        ]
    ]
];

$response = $client->search($params);

// 处理查询结果
if (isset($response['hits']['hits'])) {
    foreach ($response['hits']['hits'] as $hit) {
        echo "时间:" . $hit['_source']['timestamp'] . ", ";
        echo "指标:" . $hit['_source']['metric'] . ", ";
        echo "值:" . $hit['_source']['value'] . "<br>";
    }
} else {
    echo "未找到监控数据.";
}
?>

Ringkasan:
Artikel ini memperkenalkan cara menggunakan PHP dan Elasticsearch untuk membina pemantauan masa nyata dan papan pemuka. Dengan memasang Elasticsearch dan pustaka klien Elasticsearch PHP, menyambung kepada Elasticsearch, mencipta indeks dan pemetaan, menghantar data pemantauan, dan bertanya serta memaparkan data, kami boleh membina sistem pemantauan masa nyata yang berkuasa dengan mudah. Saya harap artikel ini akan membantu anda memahami cara menggunakan Elasticsearch dalam PHP untuk membina pemantauan masa nyata dan papan pemuka.

Atas ialah kandungan terperinci Gunakan Elasticsearch dalam PHP untuk membina pemantauan masa nyata dan papan pemuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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