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 で RR レベルでデッドロック問題に遭遇しました。興味深いと思ったので、調べて...

Linux カーネル デバイス ドライバー 高度な文字デバイス ドライバーのメモ

/****************** * 高度な文字デバイス ドライバー ***********...

MySQLトランザクションとSpring分離レベルの実装原理の詳細な説明

1. トランザクションはACID特性を持つ原子性: トランザクションは、トランザクションによって分割...

Dockerコンテナオーケストレーション実装プロセス分析

実際の開発環境や本番環境では、コンテナを独立して実行することはあまりなく、複数のコンテナを一緒に実行...

MySQL で union all を使用してユニオンソートを取得する方法

プロジェクトでは、何らかの不可逆的な理由により、テーブルに保存されたデータがページの表示要件を満たす...

Dockerがコンテナを作成した後にホスト名を変更する詳細なプロセス

後悔を癒す薬は世の中にある、考えてみる気さえあれば!コンテナを再作成する必要はもうありません。 m2...

docker compose helloworld を使い始めるための詳細なプロセス

前提条件Compose は、Docker コンテナをオーケストレーションするためのツールです。Doc...

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...

DockerコンテナがJupyterにアクセスできない問題の解決策

このプロジェクトでは、環境を構築するために Docker コンテナを使用します。Dockerfile...

JSデータ型検出のさまざまな方法の概要

目次背景データ型を決定する方法は何ですか? 1. typeof を使用して基本データ型を決定します。...

JS にこれがあるのはなぜですか?

目次1. 需要2. 解決策3. 最初の改善4.砂糖を加える5. 理解不能6. 問題点7. オブジェク...

Nginx の起動に失敗した場合のいくつかのエラー処理の詳細な説明

Nginx を Web サーバーとして使用する際に、次の問題が発生しました。 1. nginxの起動...

HTMLウェブページの基本概念の簡単な分析

ウェブページとは何ですか? HTML ドキュメントがブラウザカーネルによってレンダリングされた後に表...

CentOSはexpectを使用してスクリプトやコマンドをバッチでリモート実行します

サーバーへのファイルのアップロード、ソフトウェアのインストール、コマンドやスクリプトの実行、サービス...

HTML フォームとフォーム内部タグの使用

コードをコピーコードは次のとおりです。 <html> <ヘッド> <t...