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データベースでの値の追加、変更、削除、クリアの例

推薦する

Node.js+express+socket でオンラインのリアルタイム多人数チャットルームを実現

この記事では、オンラインリアルタイム多人数チャットルームを実現するためのNode.js+expres...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを 2 回忘れてしまいましたか?最初、私はアンインストールして再インストールす...

Docker で Docker0 ブリッジのデフォルトのネットワーク セグメントを変更する方法

1. 背景Docker サービスが開始されると、デフォルトで docker0 ブリッジが作成され (...

Intellij IDEA による Docker イメージの展開方法の手順の迅速な実装

目次1. Dockerはリモートアクセスを可能にする2. Intellij IDEAにDockerプ...

JSコードコンパイラMonacoの使い方

序文私が必要としているのは、構文の強調表示、関数プロンプト、自動行折り返し、およびコードの折りたたみ...

Vue codemirrorはオンラインコードコンパイラの効果を実現します

序文Web 上でオンライン コード コンパイルの効果を実現したい場合は、 CodeMirrorを再度...

mysql5.7でbinlogを使用してデータを復元する方法

ステップ1: MySQLでbinlogが有効になっていることを確認する '%log_bin%...

Linux 7.7 でスワップ パーティション SWAP を設定する方法

Linux システムの Swap パーティション、つまり swap パーティションは、一般に仮想メモ...

TypeScriptジェネリックの使用

目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...

Nginx ロケーション ディレクティブ URI マッチング ルールの詳細な概要

1. はじめにロケーション命令は、http モジュールのコア構成です。事前に定義された URL マッ...

中国のウェブサイトユーザーエクスペリエンスランキング

<br />ユーザーエクスペリエンスは中国のウェブサイトでますます重視されており、ユーザ...

Linux で ss コマンドと zabbix を組み合わせてソケットを監視する方法の詳細な説明

目次序文1. ssコマンド2. Zabbix監視マシンの全体的なソケットステータス2.1. スクリプ...

JS と Nodejs におけるイベント駆動型開発についての簡単な説明

目次イベント駆動型とパブリッシュ・サブスクライブ型ブラウザの JavaScript ではイベント駆動...

ウェブページの広告デザインにおけるウェブデザインの寸法とルール

1. 800*600 未満の場合、Web ページの幅が 778 以内であれば、水平スクロール バーは...

Javascriptのクロージャとアプリケーションの詳細な説明

目次序文1. クロージャとは何ですか? 1.1 クロージャは条件コードを満たす1.2 クロージャ生成...