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

推薦する

Linux で利用可能なネットワーク インターフェイスを表示する方法

序文Linux システムをインストールした後の最も一般的なタスクは、ネットワーク構成です。もちろん、...

HTTP サーバーとクライアントのやり取りをシミュレートする Node.js+postman

目次1. NodeがHTTPサーバーを構築する2. HTTPサーバーがリクエストを取得する1. Po...

Linux (Ubuntu 18.04) に vim エディタをインストールする方法

デスクトップ システムをダウンロードするには、Ubuntu の公式 Web サイト (https:/...

MySQL の最適化: 高品質の SQL 文を書く方法

序文インターネット上にはデータベースの最適化に関する情報や方法が数多くありますが、その多くは品質にば...

Linux suse11でルートパスワードを忘れた場合に変更する方法の簡単な分析

SUSE Linuxでルートパスワードを忘れた場合の解決方法SUSE (Linux オペレーティング...

Vue プロジェクトで axios をカプセル化する方法 (http リクエストの統合管理)

1. 要件Vue.js フレームワークを使用してフロントエンド プロジェクトを開発する場合、サーバ...

JS を使用してバイナリ ツリー トラバーサル アルゴリズムのサンプル コードを実装する

目次序文1. バイナリツリー1.1. 二分木の走査1.2. jsを使用してバイナリツリーを表現する1...

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨てテキストを自動的に切り捨てるスタイル コードを実装するには、次のコー...

HTML CSS3は画像表示効果を引き伸ばさない

1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...

役に立つメタ設定方法(必読)

<meta name="viewport" content="...

Centos7 ベースの Varnish キャッシュ プロキシ サーバーを展開する

1. ワニスの概要1. ワニスの紹介Varnish は、新しいソフトウェア アーキテクチャを使用し、...

MySQLクエリ条件の一般的な使用法の詳細な説明

この記事では、例を使用して、MySQL クエリ条件の一般的な使用方法を説明します。ご参考までに、詳細...

MySQL交換パーティションの詳細な例

MySQL交換パーティションの詳細な例序文exchange パーティションを紹介する前に、まず my...

Vueプロジェクトを大画面に適応させる方法の例

レムの簡単な分析まず、remはCSS単位です。pxの固定ピクセル単位と比較すると、remはより柔軟性...

MySQL5.7 並列レプリケーションの原理と実装

データ操作とメンテナンスに少しでも知識のある人なら、MySQL 5.5 以前では再生に単一の SQL...