Maison développement back-end tutoriel php 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

Oct 03, 2023 am 08:38 AM
php elasticsearch 实时监控 关键词提取:

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"
    }
}
Copier après la connexion

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.";
}
?>
Copier après la connexion

É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 "索引创建失败.";
}
?>
Copier après la connexion

É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 "数据发送失败.";
}
?>
Copier après la connexion

É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 "未找到监控数据.";
}
?>
Copier après la connexion

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 de ce site Web
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

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Date et heure de CakePHP

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Configuration du projet CakePHP

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Téléchargement de fichiers CakePHP

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Routage CakePHP

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

Discuter de CakePHP

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Comment configurer Visual Studio Code (VS Code) pour le développement PHP

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

Guide rapide CakePHP

See all articles