Docker 環境で JMeter+Grafana+influxdb ビジュアル パフォーマンス監視プラットフォームを構築するチュートリアル

Docker 環境で JMeter+Grafana+influxdb ビジュアル パフォーマンス監視プラットフォームを構築するチュートリアル

背景:

jmeter ストレス テスト インターフェイスを使用したところ、ネイティブ モニタリングがあまりユーザー フレンドリーではないことがわかりました。オンラインで調べてみると、influxDB と grafana を組み合わせて作成されたレポートは非​​常に優れており、モニタリング結果も非常に快適で明確であることがわかりました。

序文:

InfluxDB: Go で書かれたオープンソースの分散時系列データベースです。現在、データベースは主に大量のタイムスタンプ付きデータを格納するために使用されています。 データ量が少ない場合はパフォーマンスは良好ですが、データ量が大きくなるとパフォーマンスの問題が発生します。しかし、数時間にわたるテストからデータを収集するだけで十分です。テストデータが数か月にわたる場合は、別のデータベースに変更することをお勧めします。

時系列データベース: 時間ラベル (時間の順序で変化する、つまり時間のシリアル化) を持つデータを処理します。時間ラベルを持つデータは、時系列データとも呼ばれます。時間を主キーとするSQLテーブルのようなものを想像してください

Grafana: Graphite、Elasticsearch、OpenTSDB、Prometheus、InfluxDB に適した、豊富なインジケーター ダッシュボードとグラフィカル エディターを備えたオープン ソース ソフトウェアです。簡単に言えば、オープンソースの WEB 可視化プラットフォームです。

原理:

jmeter ストレス テストはテスト データを生成し、その後、jmeter のバックエンド リスナーを介してテスト データを influxDB に非同期的に送信して保存します。grafana は influxDB からデータを取得し、ダッシュボードにテスト結果の関連データを表示します。

influxdb データベースにおける名詞の理解

influxDB の名詞従来のデータベースの概念
データベースデータベース
測定データベース内のテーブル
ポイントテーブル内のデータの行

Ubuntuに導入しました。

1. Dockerをインストールする

apt 公式ライブラリの docker バージョンは古い可能性があるので、まず古いバージョンをアンインストールします。

sudo apt-get 削除 docker docker-engine docker-ce docker.io

apt パッケージ インデックスを更新します。

sudo apt-getアップデート

apt が HTTPS 経由でリポジトリを使用できるようにするには、次のパッケージをインストールします。

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

公式の Docker GPG キーを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key を追加 -

安定したリポジトリを設定するには、次のコマンドを使用します。

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

apt パッケージ インデックスを再度更新します。

sudo apt-getアップデート

Docker CE の最新バージョンをインストールします。

sudo apt-get install -y docker-ce

Docker がインストールされているかどうかを確認します。

docker --バージョン

docker のバージョンを尋ねられたら、docker が正常にインストールされたことを意味します。

2. influxDBをインストールして設定する

2.1 Docker ViewでinfluxDBをインストールし、イメージをプルする

##イメージを表示する docker search influx 
 
## イメージ名に従ってイメージをプルする docker pull tutum/influxdb

イメージを実行してコンテナを生成する

## -d はサービスをバックグラウンドで実行します。コマンドは終了しますが、プログラムは実行を継続します。 docker run -d --name jmeter-influx -p 8086:8086 tutum/influxdb

--name jmeter-influx: 生成されたコンテナの名前を jmeter-influx として指定します。必要に応じて名前を付けることができます。

-p 8086:8086: ポートマッピングを指定、ホストポート: コンテナポート

tutum/influxdb: イメージ名。状況に応じて名前を付けることができます。

コンテナが正常に生成されたかどうかを確認する

## イメージが正常にインストールされているか確認する docker images 
 
## コンテナが正常に起動したかどうかを確認します docker ps 
 
## 成功と失敗を含む、開始されたすべてのコンテナを表示します。docker ps -a 

ブラウザはアドレス http://xxx.x.xxx.xxx:8086/ にアクセスできます。アドレスはサーバーの IP + マッピングされたアドレスです。

ページには 404 が表示されますが、アクセスできないわけではありません。

2.2 データベースを作成する

##InfluxdbのDockerコンテナに入る docker exec -it container id /bin/bash 
 
##オープン流入 
流入 
 
## データベースを表示し、jmeter データベースを作成します。show databases; 
データベース jmeter を作成します。 
データベースを表示します。 
jmeter を使用します。 
jmeter から * を選択します。 
出口; 

3. Grafanaのインストールと設定

3.1 dockerにGrafanaをインストールしてイメージを表示し、プルする

##イメージを表示 docker search grafana 
 
## イメージ名に従ってイメージをプルします docker pull grafana/grafana

イメージを実行してコンテナを生成する

## イメージを実行してコンテナを生成します。run -d --name my_grafana -p 3000:3000 grafana/grafana

3.2 GrafanaでinfluxDBを構成する

ブラウザはURL http://ip:portにアクセスし、ログインユーザー名とパスワードは両方ともadminです。

ログインに成功したら、データ ソースを追加します。ここでは influxDB を選択します。 influxDB_demoという名前のデータソースを正常に作成しました

先ほど作成したinfluxDBのjmeterデータベース情報を設定し、接続が成功するかどうかをテストします。

この時点で、データ ソースの構成は成功しています。すでに持っているので、これを削除しました。

3.3 Grafanaはテンプレートを使用してダッシュボードを作成します

influxdb データ ソースを構成すると、テスト データを取得できます。次に、取得したデータを表示する必要があります。これは、Grafana グラフィックスの役割でもあります。

公式サイトからjmeterに対応したダッシュボードテンプレートをダウンロードする

ダウンロードアドレス: https://grafana.com/grafana/dashboards

左側と右側のデータ ソースから influxDB を選択し、名前で jmeter を検索して必要なプラグインを確認します。

Grafanaでテンプレートをインポートする

+ サイン --> インポート --> JSON ファイルをアップロード --> ダウンロードした jmeter プラグインを選択し、関連情報を設定

name: ダッシュボードの名前。自分で定義できます

フォルダ: フォルダディレクトリ、つまりこのダッシュボードが保存されるディレクトリ。デフォルトはOKです。

DB名: 先ほど設定したinfluxdbデータソース

測定名: influxDB データベース名

バックエンド送信間隔: 間隔時間

情報を設定したら、[インポート]をクリックしてダッシュボードページを表示します。

4. Jmeter の設定とインターフェースのストレス テスト

JMeterテストのインターフェースでバックエンドリスナーを構成する

このリスナーを構成する

バックエンドリスナーの実装: バックエンドリスナーの実装はinfluxdbで選択します

influxdbUrl: IP、ポート、データベース名を influxdb の IP とポート、および対応するデータベースの名前に変更します。

このインターフェースをjmeterで実行した後、grafanaの対応するダッシュボードでデータを確認します。

これで、JMeter+Grafana+influxdb ビジュアル パフォーマンス モニタリング プラットフォームを Docker 環境で構築するチュートリアルに関するこの記事は終了です。Docker でのビジュアル パフォーマンス モニタリング プラットフォームの構築の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • PrometheusとGrafanaを使用したMySQLサーバーのパフォーマンス監視の詳細な説明
  • Grafanaのインストールと使用に関する詳細なチュートリアル
  • Grafana を使用して Docker コンテナの監視チャートを表示し、電子メールアラートルールを設定する (図)
  • Prometheus+Grafana を使用した Springboot アプリケーションの監視に関するチュートリアルの詳細な説明
  • Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する
  • docker ベースで Prometheus+Grafana を構築する手順の詳細説明
  • Influx+Grafana のカスタム Python データ収集の概要といくつかの落とし穴
  • SpringBoot+Prometheus+Grafanaでアプリケーション監視とアラームを実装するための詳細な手順
  • Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法
  • Prometheus+Grafanaによるnginxの監視方法を分析する
  • PrometheusはGrafanaディスプレイを使用してMySQLを監視します
  • Ubuntu で Grafana を使用して Docker を監視する方法
  • Docker を使用した JMeter+Grafana+Influxdb 監視プラットフォームの構築に関する詳細なチュートリアル
  • dockerを使用してGrafana+Prometheus構成をデプロイする
  • ELKとGrafanaが共同でnginxログを分析するための視覚的なモニタリングを開発
  • Grafana のパスワードを忘れても大丈夫です。Grafana の管理者パスワードをリセットする 2 つの方法

<<:  Tik Tok サブスクリプション ボタンのアニメーション効果を実現する CSS

>>:  MySQLデータベースでの値の追加、変更、削除、クリアの例

推薦する

MySQLデータベーステーブルの定期バックアップの実装の詳細な説明

Mysqlデータベーステーブルの定期的なバックアップの実装0. 背景実際の開発環境では、フロントエン...

純粋な CSS を使用して 3D 回転効果を実装するサンプル コード

3D効果を実現するには、主にCSSのpreserve-3dプロパティとperspectiveプロパテ...

JavaScript イベント ループのケース スタディ

js のイベント ループJavaScript はシングルスレッドなので、同じイベントで実行できるメソ...

MySQLループは数千万のデータを挿入する

1. テストテーブルを作成する テーブル `mysql_genarate` を作成します ( `id...

docker を使用して Kong クラスター操作を構築する

docker コンテナの下に kong クラスターを構築するのは非常に簡単です。公式サイトの紹介も非...

docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...

Ubuntu 20.04 をインストールした後に行うべきこと (初心者向けガイド)

Ubuntu 20.04 がリリースされ、多くの新機能が導入されましたが、慣れていない機能も多くあ...

LinuxサーバーでRabbitMQ管理ページにアクセスできない問題を解決

私のプロジェクトの特定の機能ではサーバーが rabbitmq にメッセージを送信する必要があるため、...

MySQL 最適化戦略 (推奨)

要約すれば: 1. データベースの設計とテーブルの作成時にパフォーマンスを考慮する2. SQLの記述...

IframeとFRAMEの違いの分析

1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...

JavaScript における call、apply、bind の実装原則の詳細な説明

目次序文電話使用法成し遂げるシンプルな実装バージョン:アップグレード版:適用する使用法成し遂げるバイ...

HTML(CSSスタイル仕様)を読む必要があります

CSS スタイル仕様1. クラスセレクター2. タグセレクター3. IDセレクター4. CSSスタイ...

RHEL8 /CentOS8 でマルチノード Elastic Stack クラスターを構築する方法

一般的に ELK スタックとして知られる Elastic スタックは、Elasticsearch、L...

PID を作成できないために MySQL が起動できない問題を解決する方法

問題の説明MySQL 起動エラー メッセージは次のとおりです。 mysqld を起動します (sys...

Linuxにgitをインストールする方法

1. はじめにGit は、規模の大小を問わずあらゆるプロジェクトを俊敏かつ効率的に処理するために使用...