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

推薦する

左右の幅を固定し、中央の幅を適応させたHTMLレイアウトのソリューションの詳細な説明

この記事では、次のように、誰にでも共有できる左右幅固定のミドルアダプティブ HTML レイアウトソリ...

Node.js で MySQL データベースにバッチデータを挿入する方法

プロジェクト(nodejs)では、一度に複数のデータをデータベースに挿入する必要があります。データベ...

Vueはシンプルなタイマーコンポーネントを実装します

プロジェクトを実行すると、リアルタイム更新、広告アニメーションの連続表示などの要件に遭遇することは避...

CocosCreator 入門チュートリアル: TS で初めてのゲームを作る

目次前提TypeScript と JavaScriptコードエディタの選択TypeScriptを学ぶ...

webpackの遅延読み込みとプリロードの詳細な説明

目次通常の読み込み遅延読み込みプリロードプリロードを使用しないプリロードの使用要約する通常の読み込み...

Zabbix redis 自動ポート検出スクリプトは json 形式を返します

自動検出を行う際には、ポートなどの情報を取得してjson形式で返すスクリプトが必ず存在します。Red...

ウェブデザインを改善するための 8 つの CSS ツールを共有する

ウェブサイトのデザインを編集または変更する必要がある場合、CSS が重要な役割を果たします。 CSS...

MySQLがブール型を返すいくつかの状況について簡単に説明します。

mysqlはブール型を返します最初のケースでは、直接戻ります select id='22a...

Vueはボタン切り替え画像を実装します

この記事では、ボタン切り替え画像を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Win10 での MySQL 8.0.16 のインストールと設定のチュートリアル

1. MySQL 8.0.16を解凍する次の図に示すように、解凍後にdadaフォルダとmy.ini構...

Reactマウスの複数選択機能の設定方法

一般的に、リストには選択機能があり、単一選択、二重選択、複数選択が非常に一般的です。カスタム ループ...

XshellがvirtualBox仮想マシンに接続できない問題の解決策

まず、VirtualBox仮想マシンのネットワーク設定モードについて説明します。NAT+ホストオンリ...

Linux ipcsコマンドの使用

1. コマンドの紹介ipcs コマンドは、Linux のプロセス間通信機能の状態を報告するために使用...

CentOS に Redis と MySQL をインストールする

1|0MySQL(MariaDB) 1|11. 説明MariaDB データベース管理システムは My...

Nginx の負荷分散アルゴリズムとフェイルオーバー分析

概要Nginx ロード バランシングは、アップストリーム サーバー (実際のビジネス ロジックによっ...