Maison  >  Article  >  développement back-end  >  Utilisez Elasticsearch en PHP pour créer une surveillance et des tableaux de bord en temps réel

Utilisez Elasticsearch en PHP pour créer une surveillance et des tableaux de bord en temps réel

王林
王林original
2023-10-03 08:38:09832parcourir

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

Utiliser Elasticsearch en PHP pour créer une surveillance et des tableaux de bord en temps réel

Présentation :
Avec le développement rapide d'Internet, la demande de surveillance du système et d'analyse des données en temps réel est de plus en plus élevée. Elasticsearch est un puissant moteur de recherche open source qui peut être utilisé non seulement pour la recherche en texte intégral, mais également pour le stockage et l'analyse de données en temps réel. Cet article explique comment utiliser PHP et Elasticsearch pour créer une surveillance et des tableaux de bord en temps réel, et fournit des exemples de code spécifiques.

Étape 1 : Installer Elasticsearch
Tout d’abord, nous devons installer Elasticsearch. Vous pouvez télécharger la version adaptée à votre système d'exploitation sur le site officiel d'Elasticsearch (https://www.elastic.co/downloads/elasticsearch), puis l'installer et la configurer conformément à la documentation officielle. Une fois l'installation terminée, assurez-vous que le service Elasticsearch est en cours d'exécution.

Étape 2 : Installer la bibliothèque client PHP Elasticsearch
Afin d'utiliser Elasticsearch de manière pratique, nous devons installer la bibliothèque client PHP Elasticsearch. Vous pouvez l'installer à l'aide de Composer, un outil de gestion des dépendances PHP. Vous pouvez créer un fichier composer.json dans le répertoire racine de votre projet et ajouter le contenu suivant :

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

Ensuite, exécutez la commande composer install sur la ligne de commande pour installer la bibliothèque client PHP Elasticsearch.

Troisième étape : Connectez-vous à Elasticsearch
Dans votre code PHP, vous devez vous connecter à l'instance Elasticsearch. Voici un exemple de code :

<?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.";
}
?>

Étape 4 : Créer des index et des mappages
Dans Elasticsearch, les index sont l'endroit où les données sont organisées et stockées. Nous devons créer un index et définir le mappage d'index (définir la structure des données). Voici un exemple de code :

<?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 "索引创建失败.";
}
?>

Étape 5 : Envoyer les données de surveillance
Maintenant, nous pouvons envoyer des données de surveillance à Elasticsearch. Voici un exemple de code :

<?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 "数据发送失败.";
}
?>

Étape 6 : Requête et affichage des données
Enfin, nous pouvons interroger les données d'Elasticsearch et afficher les données de surveillance sur la page Web. Voici un exemple de code :

<?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 "未找到监控数据.";
}
?>

Résumé :
Cet article explique comment utiliser PHP et Elasticsearch pour créer une surveillance et des tableaux de bord en temps réel. En installant Elasticsearch et la bibliothèque client Elasticsearch PHP, en vous connectant à Elasticsearch, en créant des index et des mappages, en envoyant des données de surveillance, ainsi qu'en interrogeant et en affichant les données, nous pouvons facilement créer un puissant système de surveillance en temps réel. J'espère que cet article vous aidera à comprendre comment utiliser Elasticsearch en PHP pour créer une surveillance et des tableaux de bord en temps réel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn