influxdb + Grafana + JMeterの構造を監視

インストールInfluxDB

InfluxDBはじめに

InfluxDBはゴー言語、イベントやメトリクスデータベースは、外部依存関係で書かれたオープンソースの分散タイミングです。

同様のデータベースでは、そうでElasticsearch、グラファイトとを持っています。

特長

時系列に基づいて、時間(など最大値、最小値、合計、など)に関連したサポート関連の機能は、
測:あなたは、大量のデータにリアルタイムで計算することができ
たイベントに基づいて:それはイベントに基づいて、任意のイベントデータをサポートしています。それはすべてのイベントをサポートしていますデータ

InfluxDBの主な特徴

非構造化(フリーモード):あなたは、任意の数の列ことができる
スケーラブルな
サポート最小値、最大値、合計、カウント数、平均値、中央値の統計サポート最小値、最大値、合計、カウント数、容易にし、一連の機能平均値、中央値とのシリーズを機能、容易統計
ネイティブHTTPのサポート、組み込みのHTTP APIネイティブHTTPのサポート、組み込みのHTTP API
の強力なSQLのようなSQL構文の強力なような構文を
簡単に使いやすさのために構築された使用の管理インターフェイスへの組み込みの管理インタフェース、

ご注意ください

内蔵管理インターフェイスバージョン1.2の後、使用できなくなります。
クラスタリング機能バージョン1.2の後、使用できなくなりました。

InfluxDBと従来のデータベースの比較

InfluxDB用語 従来のデータベースの概念
データベース データベース
測定 データベーステーブル
点数 データのテーブル行

 

InfluxDBのユニークな特徴

ポイント

データベース内のデータの伝統的な行に相当するポイント、次の表に示すように:

OINTプロパティ 従来のデータベースの概念
時間(タイムスタンプ) データベース内の各データ記録時、メインインデックス(自動的に生成)
フィールド(フィールドデータ) 種々の値(NOインデックスプロパティ)の記録値が記録されている:温度、湿度、
タグ(タグ) 面積、標高:様々なインデックス属性があります。

ご注意ください

  • influxdbでは、フィールドが存在している必要があります。フィールドがインデックス化されていないため。クエリとしてフィールドを使用する場合は、すべてのフィールド値は、クエリに一致する、パフォーマンスがタグよりも少ないスキャンします。SQL列の同等の分野に関するアナロジーがインデックス化されていません。
  • タグがインデックス化されているので、タグは、インデックス付きの列のSQLと等価のタグオプションですが、強くあなたがそれを使うことをお勧めします。タグの値は、文字列タイプにすることができます。

シリーズ

InfluxDBは、いくつかの同等のデータ・セットは、同じデータベース、保持ポリシー、測定、同一のデータが同一の系列に属するタグセットに、同じ一連のデータは、物理的に時系列順に一緒に格納されます。

> を選択 * からの学生の
名前:学生の
時間をstuid値をスコア
 ---- ----- ----- -----
 1542848518465067760  89     S123
 1542850528630385278  79     S123
 1542850533581732431  69     S123
 1542850536266169940  39     S123
 1542850676477097687  99     S123
 1542874869654197110        S124   100 
1542874898710687064        S125   60 
>ショーシリーズから学生の
キー
 --- 
学生、stuid =S123 
学生、stuid = S124 
学生、stuid = S125

shardshardと保持ポリシーが関連付けられています。各シャードでストレージポリシーの多くが存在することになる、各データ・シャード特定の期間を格納し、繰り返さない。
例えばデータ7つのshard0 -8点が落ちる、8 -9点のデータを落下shard1ありますインチ
ストレージエンジン、別々のキャッシュ、WAL、TSMファイルの基礎となるシャードTSMにそれぞれ対応します。

パッケージ

キャッシュ、WAL、TSMファイル、圧縮機:1.TSMストレージエンジンは、いくつかのコンポーネントから構成されています。

キャッシュ:memtablでキャッシュ同等LSMツリー。実際にキャッシュにデータを書き込むとしているときは、データを挿入し、WALはメモリにキャッシュデータのWALファイルキャッシュに考えることができるとき。InfluxDBが起動したら、それはとてもシステムに障害が発生した場合でも、それはデータの損失は発生しませんことを、再構築キャッシュ、すべてのWALファイルを横断します。
データ・キャッシュは、制御に使用されるパラメータがあり、無限の成長はない場合、データ・キャッシュの後に多くのメモリを占有TSMファイルに書き込まれますかmaxSizeの。指定しない場合、デフォルトの上限は25メガバイトで、データキャッシュがしきい値に達するたびの後、現在のキャッシュは、スナップショットになり、その後、現在のキャッシュの内容を空にして、書き込み用の新しいWALファイルを作成します最後に残ったWALファイルが削除され、データのスナップショットは、新しいTSMファイルを書かソートされます。

2.WAL:コンテンツメモリキャッシュWAL同じファイル、その役割は永続的なデータであり、システムクラッシュがデータファイルに書き込まれないことがありTSM WALファイルによって復元しました。

3.TSMファイル:2GBの最大の単一のTSMファイルのサイズ、データの格納に使用。

4.Compactor:圧縮機のコンポーネントが統合されたデータを圧縮する必要があるかどうかを確認します1秒間隔で、バックグラウンドで継続的に実行されます。

主に二つの操作のために

  1. 一つは、データ・キャッシュのサイズがしきい値に達するとされ、スナップショット、その後、新しいTSMファイルをダンプします。
  2. 別のは、単一のファイルとして各文書は、その最大サイズに達したファイルの数を減らすために、及びデータ消去動作のいくつかはこの時点で終了するように、合成電流TSMファイル、小さなTSM aの複数に結合されたファイルです。

インストール

環境:CentOS6.8_x64
InfluxDBバージョン:1.7.0

InfluxDBインストール

wgetのHTTPS:// dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm 
のrpm -ivh influxdb- 1.70 .x86_64.rpm

インストール手順の後に生成されたInfluxDB文書:

ファイルの下には/ usr / binに
  • influxd influxdbサーバ
  • 流入influxdbコマンドラインクライアント
  • ビューツールを検査influx_
  • influx_stressストレステストツール
  • influx_tsmデータベース変換ツール(b1はフォーマットまたはBZ1 tsm1データベース形式から変換)
/ var / libに/ influxdbフォルダ

TSMでの最終的なデータ・ストレージ・保存データファイルは、** **終了

メタデータを格納するためにメタデータベース

WALストア先行書き込みログファイル

の/ etc / influxdb次のファイル

influxdbデータベース構成ファイルinfluxdb.conf

詳細なプロファイルパラメータ:https://blog.csdn.net/zx711166/article/details/84325865

設定を変更

InfluxDBがメインの設定JMeterの格納されたデータベースとポート番号の設定を変更し、あなたがUI開いているポートを必要とする、[HTTP]、[[グラファイト]]ノード、(デフォルトではオンになっている)をtrueに変更し有効に、バインドアドレス変更見つかりましたバインドされたIPとポート:

vimの/etc/influxdb/influxdb.conf
#グラファイトを検索し、そのポートでライブラリを変更するには、以下の結果を変更します。 
[[グラファイト] 
  [有効] = trueに
  データベース = JMeterの
  バインド -address = :2003 
  プロトコル = TCP 
  一貫性 -Level = ワン

#[HTTP] 

       HTTPエンドポイント内#DeterminesのモデルタイプIS 有効。

       有効 = trueに      

       で使用されるHTTPサービスでは、bindaddressに#を。

       バインド -address = :8086            の設定どこIPとの接続のためのポートgrafana

# 找到admin,将前面的#号去掉,开放它的UI端口,1.70版本没找到这个admin到配置的地方,我就没有修改,没有修改也是可以的
[admin]
  # Determines whether the admin service is enabled.
  enabled = true
 
  # The default bind address used by the admin service.
  bind-address = ":8083"
 
  # Whether the admin service should use HTTPS.
  # https-enabled = false
 
  # The SSL certificate used when HTTPS is enabled.
  # https-certificate = "/etc/ssl/influxdb.pem

配置完了之后:

启动InfluxDB

服务式启动命令

#服务式启动命令
service influxdb start
#停止服务
service influxdb stop
#重启服务
service influxdb restart
#尝试重启服务
service influxdb try-restart
#重新加载服务
service influxdb reload
#强制重新加载服务
service influxdb force-reload
#查看服务状态
service influxdb status
#以非服务方式启动
cd /usr/bin
./influxd
服务启动查看是否正常
#通过查看服务对应进程
[root@CESHI_HT_Jmeter_1 ceshi]# ps aux | grep influx root 14919 0.0 0.0 103320 860 pts/0 S+ 13:14 0:00 grep --color=auto influx influxdb 29294 0.1 0.9 820816 72588 ? Sl Jan13 1:25 /usr/bin/influxd -pidfile /var/run/influxdb/influxd.pid -config /etc/influxdb/influxdb.conf
#通过service influxdb status命令,查看服务状态

[root@CESHI_HT_Jmeter_1 ceshi]# service influxdb status
influxdb process is running [ OK ]

服务启动后相关端口
  • 8086:HTTP API的端口
  • 8088:备份恢复时使用,默认值为8088

InfluxDB 客户端命令行方式操作

客户端命令行方式操作

[root@localhost influxdb]# influx
Connected to http://localhost:8086 version 1.7.0
InfluxDB shell version: 1.7.0
Enter an InfluxQL query
>

显示数据库

> show databases
name: databases
name
----
_internal
jmeter

新建数据库

> create database testdb
> show databases
name: databases
name
----
_internal
testdb

 删除数据库

> drop database testdb
> show databases
name: databases
name
----
_internal

使用数据库

> create database testdb
> use testdb
Using database testdb

显示所有表

show measurement

删除表

> drop measurement disk_free

安装Grafana

使用yum下载Grafana并且安装

1 wget https://dl.grafana.com/oss/release/grafana-6.3.5-1.x86_64.rpm
2 rpm -ivh grafana-6.3.5-1.x86_64.rpm
3 报错:warning: grafana-6.3.5-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
4 error: Failed dependencies:
5     urw-fonts is needed by grafana-6.3.5-1.x86_64
6 
7 执行 yum install -y urw-fonts
8 再进行第一步的运行rpm -ivh grafana-6.3.5-1.x86_64.rpm
9 然后启动即可/etc/init.d/grafana-server restart

打开浏览器,访问机器IP“http://127.0.0.1:3000

输入用户名,密码登录系统。用户名与密码都是"admin"

添加需要展示数据的数据库(配置InfluxDB )

添加InfluxDB数据库配置。输入帐号密码“admin / admin”,点击“add”添加之后点击“Test & Save” 提示“Success”说明成功了

 

【注意】URL的端口是8086,而刚才配置的8083是UI的端口。

    - 8083端口是InfluxDB的UI界面展示的端口

    - 8086端口是Grafana用来从数据库取数据的端口

    - 2003端口则是刚刚设置的,Jmeter往数据库发数据的端口

配置JMeter

在线程组右键——>添加——>监听器——>后端监听器

 

 使用InfluxdbBackendListenerClient说明:

  • influxdbMetricsSender:org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
  • influxdbUrl:influx数据库的url。example : http://influxHost:8086/write?db=jmeter
  • application:被测试的应用名称。此值也作为名为“application”的标记存储在“events”中
  • measurement:使用默认的”jmeter“就行
  • summaryOnly:为true的情况下,只输出所有请求的集合数据报告,为flase的情况下,输出每条数据的详情报告、
  • samplersRegex:正则表达式将与样本名称匹配并发送到后端。默认匹配所有
  • testTitle:测试名称。默认的设置为 Test name。该值作为名为“text”的字段存储在“事件”度量中。 JMeter在测试的开始和结束时自动生成一个注释,其值以'started'和'ended'结尾
  • percentiles:要发送到后端的百分位数,多个值已;分割
  • TAG_WhatEverYouWant:自定义标签。您可以根据需要添加任意数量的自定义标签。对于它们中的每一个,只需创建一个新行并在其名称前加“TAG_”

配置Grafana

添加一个图表

点击旁边的绿点“Add Panel -> Graph”

配置图表

配置好了,就能看到图了。如果看不到图,请用Jmeter多发几次请求。下图中选择监控的选项,可以在Jmeter的官网上查看到对应的解释

 

Graph里面的选项有:

    General(常规选择)、Metrics(指标)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Time range(时间范围)

Genera(常规选择):添加图形标题,图形宽度高度等

    Title:仪表板上的面板标题

    Span:列在面板中的宽度

    Height:面板内容高度(以像素为单位)

选取/详细信息链接(Drilldown / detail link)

    选取部分允许添加动态面板的链接,可以链接到其他仪表板或URL。

    每个链接都有一个标题,一个类型和参数。链接可以是 dashboard或 absolute链接。如果它是一个仪表板链接, dashboard值必须是一个仪表板的名字。如果这是一个 absolute链接,是URL链接的URL。

    params允许添加额外的URL参数的链接。格式是 name=value与多个参数分开,当链接到另一个仪表板使用模板变量,你可以使用 var-myvar=value填充模板变量的期望值链接

 

 

Metrics(指标)

    定义了来源数据的呈现,每个数据源都提供不同的选择。面板的来源数据通过group,host,application,item从zabbix中获得。

Axes(坐标轴)

    用于坐标轴和网格的显示方式,包括单位,比例,标签等。

Left Y和 Right Y可以定制使用,因其中的可选参数太多,请在使用的时候参考官方文档;

Legend(图例):图例展示

    图例的参数:

    Total:返回所有度量查询值的总和

    Current:返回度量查询的最后一个值

    Min:返回最小的度量查询值

    Max:返回最大的度量查询值

    Avg:返回所有度量查询的平均值

    Decimals:控制Legend值的多少,以小数显示悬浮工具提示(图)

    Grafana 中Legend值的计算取决于你使用的度量查询方式和什么样类型的聚合或合并点来实现的,所有上述所说的值在同一时间可能都是不正确的。例如,如果你是每秒请求一次,这可能是使用平均值来作为一个整合,然而这个Legend值不会代表请求的总数。这只是Grafana收到的所有数据点的总和。

 

Display(显示样式)

    显示样式的控件属性图如下:

图表模式(Draw Modes)

Bar:一个条形图显示值

Lines:显示线图值

 Points:显示点值

选择模式(Mode Options)

Fill:系列的颜色填充,0是没有。

Line Width:线的宽度。

 Staircase:楼梯状显示。

    如果有多个选择项,它们可以作为一个群体显示。

叠加和空值(Stacking & Null value)

Stack:每个系列是叠在另一个之上

Null value:空值

    如果你启用了堆栈可以选择应该显示鼠标悬停功能。

Time range(时间范围)

 

 

 更多Grafana功能请查阅官方文档....https://grafana.com/grafana

导入grafana已经有的模版

目前界内很多大佬都有上传自己研发的一套监控体系,看以从仪表盘下载对应的需求的仪表盘进行监控,同时可以从中优化 添加时候自己工作业务需要的监控

官网模板库地址:https://grafana.com/dashboards?dataSource=influxdb 如jmeter官方模板:copy id

在Import 添加搜到的模板id(还有一个和官网模板差不多的 模板ID是:4026 可参考下)

选择建好的data source

添加完成后就会出现了以下界面了

 

 就可以显示实时监控的数据信息了。

参考链接:

https://blog.csdn.net/zx711166/article/details/84325838

https://www.cnblogs.com/Lam7/p/8304076.html

おすすめ

転載: www.cnblogs.com/xiehong/p/12191282.html