PHP で Elasticsearch を使用してリアルタイムのモニタリングとダッシュボードを構築する
概要:
インターネットの急速な発展に伴い、システムのモニタリングとリアルタイムのダッシュボードの需要が高まっています。 -時間データ分析は増加しています。 Elasticsearch は、全文検索だけでなく、リアルタイムのデータ ストレージと分析にも使用できる強力なオープン ソースの検索エンジンです。この記事では、PHP と Elasticsearch を使用してリアルタイム監視とダッシュボードを構築する方法を紹介し、具体的なコード例を示します。
ステップ 1: Elasticsearch をインストールする
まず、Elasticsearch をインストールする必要があります。 Elasticsearch 公式 Web サイト (https://www.elastic.co/downloads/elasticsearch) からオペレーティング システムに適したバージョンをダウンロードし、公式ドキュメントに従ってインストールおよび設定できます。インストールが完了したら、Elasticsearch サービスが実行されていることを確認します。
ステップ 2: Elasticsearch PHP クライアント ライブラリをインストールする
Elasticsearch を便利に使用するには、Elasticsearch PHP クライアント ライブラリをインストールする必要があります。 PHP の依存関係管理ツールである Composer を使用してインストールできます。プロジェクトのルート ディレクトリにcomposer.json ファイルを作成し、次のコンテンツを追加できます。
{ "require": { "elasticsearch/elasticsearch": "^7.0" } }
次に、コマンド ラインで composer install
コマンドを実行して、Elasticsearch PHP クライアント ライブラリをインストールします。 。
ステップ 3: Elasticsearch に接続する
PHP コードで、Elasticsearch インスタンスに接続する必要があります。以下はサンプル コードです。
<?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."; } ?>
ステップ 4: インデックスとマッピングを作成する
Elasticsearch では、インデックスはデータが整理および保存される場所です。インデックスを作成し、インデックス マッピングを定義する (データの構造を定義する) 必要があります。以下はサンプル コードです:
<?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 "索引创建失败."; } ?>
ステップ 5: モニタリング データの送信
これで、モニタリング データを Elasticsearch に送信できます。以下はサンプル コードです:
<?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 "数据发送失败."; } ?>
ステップ 6: データのクエリと表示
最後に、Elasticsearch からデータをクエリし、Web ページ上に監視データを表示できます。サンプル コードは次のとおりです:
<?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 "未找到监控数据."; } ?>
概要:
この記事では、PHP と Elasticsearch を使用してリアルタイムの監視とダッシュボードを構築する方法を紹介します。 Elasticsearch と Elasticsearch PHP クライアント ライブラリをインストールし、Elasticsearch に接続し、インデックスとマッピングを作成し、監視データを送信し、データをクエリして表示することで、強力なリアルタイム監視システムを簡単に構築できます。この記事が、PHP で Elasticsearch を使用してリアルタイムのモニタリングとダッシュボードを構築する方法を理解するのに役立つことを願っています。
以上がPHP で Elasticsearch を使用してリアルタイムのモニタリングとダッシュボードを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。