系统性能指标图示例:

采集数据(collectd)-> 存储数据(influxdb) -> 显示数据(grafana)
  • InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据

  • collectd C 语言写的一个系统性能采集工具

  • Grafana 是纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等

  • Jmeter是Apache组织开发的基于Java的压力测试工具

一、 Collectd

find / -name "collectd"
 /opt/collectd/sbin/collectd start
rpm --import /etc/pki/rpm-gpg/RPM*
cd /usr/local/
 ll
 rpm -qa | grep epel-release
rpm -qa | grep collectd
 yum install collectd
 service collectd start

1. 下载安装

官网下载地址:https://collectd.org/download.shtml

tar xf collectd-version.tar.bz2

cd collectd-version

./configure

make all install

yum安装

先查询是否已安装epel-release ,没有则执行yum install epel-release –y安装;

yum install -y collectd;

2. 修改配置

https://collectd.org/wiki/index.php/First_steps

cd  /opt/collectd/etc

vi /etc/collectd.conf

确保以下几项的注释(#)是去掉的

Hostname    "192.168.1.126"      此处改为安装collectd的机器IP地址

LoadPlugin cpu

LoadPlugin memory

LoadPlugin network

LoadPlugin swap

<Plugin cpu>

ReportByCpu true

ReportByState true

ValuesPercentage true   此处启用cpu的使用率,5.7.*以上才有,低版本的不支持百分百

</Plugin>

<Plugin network>

<Server "192.168.1.222" "25826"> 此处指定将collectd收集的数据发送到的influxdb地址和端口

Interface "enp0s31f6"   通过ifconfig获取网卡的名称

</Server>

</Plugin>

安装启动脚本

cp contrib/redhat/init.d-collectd /etc/init.d/collectd
chmod +x /etc/init.d/collectd

3. 启动

service collectd start        5.7.2版本以上不能用该命令

5.8.0版本使用以下重启:

/ymm/collectd-5.8.0/collectd -C /opt/collectd/etc/collectd.conf

查看状态:

/etc/init.d/collectd status

二、 InfluxDB

备注:influxdb千万不要装最新版本1.4,web页面版本的被干掉了

1. 下载安装

下载地址:https://portal.influxdata.com/downloads

选择InfluxDB最新版本如:v1.4.2,点击进去后选择对应的系统版本,如:

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.4.2-static_linux_amd64.tar.gz

解压:tar xvfz influxdb-1.4.2-static_linux_amd64.tar.gz

备注:上面的方式下载不了,网不行

1.下载

下载地址2:https://download.csdn.net/download/youyou390/10269204

2、安装

[root@localhost home]# rpm -ivh influxdb-1.2.2.x86_64.rpm

2. 修改配置

vi influxdb.conf

找到 [http] 和 [[collectd]] 、 [[graphite]]节点,enabled改为true(默认是开启的),bind-address修改绑定的IP和端口:

[http]

#Determines whether HTTP endpoint is enabled.

enabled= true

# The bindaddress used by the HTTP service.

bind-address= ":8086"          此处配置的IP和端口供grafana连接使用

[[collectd]]

enabled= true

bind-address = ":25826"         此处配置的IP和端口供collectd上传数据使用

typesdb = " /usr/share/collectd/types.db"      可在安装collectd的机器上(yum安装默认在/usr/share/collectd目录)拷贝过来,存储在指定的目录

[[graphite]]

enabled= true                   Jmeter通过“Backend Listener”,将测试的数据上传到InfluxDB来存储

database= "graphite"            指定jmeter的性能监控数据存储的数据库名称

bind-address= ":2003"           此处配置的IP和端口供jmeter上传数据使用

3、配置:开启web访问端口8083

[root@localhost home]# vim /etc/influxdb/influxdb.conf
......
[admin]
# Determines whether the admin service is enabled.
enabled = true # The default bind address used by the admin service.
bind-address = ":8083"
.......

4、启动InfluxDB

[root@localhost home]# service influxdb start
Redirecting to /bin/systemctl start influxdb.service 注:如果是升级版本,卸载InfluxDB后需要重启电脑,否则启动会一直失败!

influxdb 重启: service influxdb restart

查看端口是否启动:netstat -tupln | grep 25826

influxdb配置地址 /etc/influxdb/influxdb.conf

3. 启动

执行 ./influxd&

启动成功后执行./influx创建collectd 和 graphite 数据库:

同时还要执行create database graphite 创建graphite数据供jmeter上传数据使用;

看到图中会出现httpd的日志,可以修改influxdb.conf 将log-enabled 改为 false,关闭日志打印功能;

influxdb的数据量一多,会非常影响性能,可以设置只保留5天的数据:

use collectd

create retention policy "5_days" on collectd duration 5d replication 1 default

show retention policies on collectd

5、验证

查看influxd进程:
[root@localhost home]# ps aux | grep influx
influxdb 20254 0.0 0.2 605104 17552 ? Ssl 17:47 0:01 /usr/bin/influxd -config /etc/influxdb/influxdb.conf 启动客户端:
[root@localhost home]# influx
Connected to http://localhost:8086 version 1.2.2
InfluxDB shell version: 1.2.2
> show databases
name: databases
name
----
_internal
> quit
问题一:
重启命令:service influxdb restart报错

[root@198-141 /]# find -name influxdb
./var/run/influxdb
./var/log/influxdb
./var/lib/influxdb
./usr/lib/influxdb
./etc/default/influxdb
./etc/influxdb
./etc/logrotate.d/influxdb
./etc/rc.d/init.d/influxdb
[root@198-141 /]# service influxdb restart
influxdb process already stopped [ OK ]
Starting influxdb...
influxdb process was unable to start [ FAILED ]
[root@198-141 /]# service influxdb restart
influxdb process already stopped [ OK ]
Starting influxdb...
influxdb process was started [ OK ]
[root@198-141 /]# netstat -tupln | grep 25826
udp 0 0 192.168.198.141:25826 0.0.0.0:* 8503/influxd
[root@198-141 /]# influx
Connected to http://localhost:8086 version 1.5.1
InfluxDB shell version: 1.5.1
> show databases
name: databases
name
----
_internal
>

 

查看日志文件/var/log/influxdb

提示run: open server: open service: Stat(): stat /usr/local/share/collectd: no such file or directory

在/usr/local/share目录下新建collectd后再重启

安装 rrdtool插件
yum install collectd-rrdtool rrdtool rrdtool-devel 
mkdir -p /usr/ var/ lib/collectd/rrd  修改一下collectd.conf配置

三、 Jmeter

1.  下载安装

下载地址:http://jmeter.apache.org/download_jmeter.cgi

可选择zip包,如“apache-jmeter-3.3.zip”,下载到windows上直接解压即可。

2. 启动

在bin目录,运行jmeter.bat,可打开图形化界面。

3. 添加测试计划

右击测试计划,指向添加,展开菜单后选择Thread(Users),点击线程组;

右击线程组,添加http请求:

输入请求的域名或IP,添加参数

右击测试计划,选择添加→监听器→Backend Listener(用于将性能数据上传到Influxdb)

如下图填好相应参数:

启动测试后,jmeter会异步将测试的数据上传到InfluxDB;

如果要集群测试,linux上运行“./jmeter-server”,windows上运行jmeter-server.bat,客户端需要在jmeter.properties上配置remote_hosts属性,设置远程机器的IP和端口,然后客户端运行jmeter.bat,打开图形化界面,选择运行→远程启动。

四、 Grafana

1.  下载安装

下载地址:https://grafana.com/grafana/download

选择对应的系统版本,Linux通用的下载地址

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2.linux-x64.tar.gz

解压:tar -zxvf grafana-4.6.2.linux-x64.tar.gz

2.  修改配置(/grafana-4.6.2/conf/defaults.ini)

[server]

http_port= 3000              管理界面的访问端口

[security]

admin_user= admin           管理界面登录的用户名

admin_password= admin        管理界面登录的密码

[database]

type =mysql                  可配置mysql、postgres、sqlite3,默认是sqlite3,第一次启动自动创建数据库和初始化表

host =192.168.1.222:3307     数据库的地址和端口

name =grafana                数据库名称

user =root                   数据库用户名

# If the password contains # or ; you have to wrap it with triple quotes. Ex"""#password;"""

password= 123456             数据库密码

3.  启动

./grafana-server

浏览器访问:http://ip:3000 ,输入用户名和密码(默认admin)

4. 配置DataSource

登录Granfana管理页面后,点击左上角的图标,展开二级菜单,点击“Data Source”进入数据源管理页面:

点击Add datasource添加数据源:

按实际填好数据好,点击“Add”,成功添加会显示“Data source is working”

5. 配置Dashboard(系统指标)

点击左上角图标,展开二级菜单,鼠标指向Dashboards,展开右侧的菜单,点击New:

进入Newdashboard页面:

点击Graph,进入如下页面:

点击PannelTitle,然后点击Edit,出现Graph的编辑区域:

点击ToggleEdit Mode可看到生成的sql,如下:

点击Add Query,分别添加cpu的idle、system、wait数据;

在General菜单项Title属性,输入“Cpu”;

在Axes菜单项Left Y 的Unit,选择none – percent(0-100) , 修改Y轴单位;

一个机器cpu的监控即可配置完成,如下图:

按CTRL+S,输入监控的机器IP,保存设置。

点击左上角的 “Backto dashboard”返回dashboard页面,点击“+ADDROW”,分别添加网络流量、内存、Swap等监控。

网络流量只能在ToggleEdit Mode模式下输入以上SQL,单位是datarate > bytes/sec

内存的单位是data(IEC)> bytes

Swap的单位是data(IEC)> bytes

如果监控安装collectd的机器与Grafana的机器时间有差异,可以在Time range修改:

6.  配置Dashboard(Jmeter指标)

添加一个新的Dashboards,配置名字Jmeter;

添加响应时间的Graph,Axes的unit设置为none:

添加TPS的Graph,Axes的unit设置为none:

Jmeter监控指标图示例:

 转自:http://blog.csdn.net/wudufeng/article/details/78567866

性能测试监控:Jmeter+Collectd+Influxdb+Grafana的更多相关文章

  1. 性能测试监控平台:InfluxDB+Grafana+Jmeter

    前面的博客介绍了InfluxDB.Telegraf.Grafana的安装和使用方法,这篇博客,介绍下如何利用这些开源工具搭建性能测试监控平台... 前言 性能测试工具jmeter自带的监视器对性能测试 ...

  2. collectd+influxDB+Grafana搭建性能监控平台

    网上查看了很多关于环境搭建的文章,都比较久远了很多安装包源都不可用了,今天收集了很多资料组合尝试使用新版本来搭建,故在此记录. 采集数据(collectd)-> 存储数据(influxdb) - ...

  3. docker容器监控:cadvisor+influxdb+grafana

    cadvisor+influxdb+grafana可以实现容器信息获取.存储.显示等容器监控功能,是目前流行的docker监控开源方案. 方案介绍 cadvisor Google开源的用于监控基础设施 ...

  4. 使用Collectd + InfluxDB + Grafana进行JMX监控

    我们已经看到使用Collectd监控CPU /内存利用率(本文).但它没有提供所有信息来确定性能问题的瓶颈.在本文中,我们将使用Collectd Java插件来使用其JMX技术来监视和管理Java虚拟 ...

  5. jmeter --- 基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示

    转自:https://blog.csdn.net/RickyOne_RR/article/details/50637839 本文主要讲述如何利用JMeter监听器Backend Listener,配合 ...

  6. Collectd+InfluxDB+Grafana监控系统搭建

    环境配置 节点 配置 类型 操作系统 Sched 2G 2CPU 50GB ens3=>192.168.200.11 KVM虚拟机 CentOS 7 Nova 4G 2CPU 50GB ens3 ...

  7. 转:JMeter整合InfluxDB,Grafana让测试结果实时显示

    软件版本: apache-jmeter-2.13.tgz grafana-2.1.1-1.x86_64.rpm influxdb-0.8.8-1.x86_64.rpm 虽然官方不在支持influxdb ...

  8. 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes

    1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.netwo ...

  9. collectd+influxdb+grafana

    今天一天都在弄这个,最终发现在配置grafana的时候选择influxdb的版本时候选错了.(挠头~~~!!!) collectd的配置还算简单,基本看过配置文件就比较清楚. influxdb(Go ...

随机推荐

  1. Matlab中的变量名

    在Matlab中使用save和load命令时,可能会出现变量名出错的问题. 如: save('A1.mat', 'A1'); load('A1.mat', 'A1'); 如果程序中还有名为a1的变量名 ...

  2. shell脚本编程之变量简介及脚本执行过程

    脚本变量简介 变量类型:字符型.数值型.真.假:事先确定数据的存放格式和长度: 变量存放在内存空间: 编译型语言,没有额外的处理逻辑,属于强类型语言: 脚本型语言,可以有解释器控制:所以,可以是弱类型 ...

  3. UOJ188. 【UR #13】Sanrd [min_25筛]

    传送门 思路 也可以算是一个板题了吧qwq 考虑min_25筛最后递归(也就是DP)的过程,要枚举当前最小的质因子是多少. 那么可以分类讨论,考虑现在这个质因子是否就是次大质因子. 如果不是,那么就是 ...

  4. LOJ2269. 「SDOI2017」切树游戏 [FWT,动态DP]

    LOJ 思路 显然是要DP的.设\(dp_{u,i}\)表示\(u\)子树内一个包含\(u\)的连通块异或出\(i\)的方案数,发现转移可以用FWT优化,写成生成函数就是这样的: \[ dp_{u}= ...

  5. [golang]写了一个可以用 go 来写脚本的工具:gosl

    转自:https://golangtc.com/t/53cca103320b52060a000030 写了一个可以用 go 来写脚本的工具:gosl 代码和使用说明可以看这里: http://gith ...

  6. php 数组插入元素

    <?php $a=array("red","green"); array_push($a,"blue","yellow&qu ...

  7. 2019UNCTF竞技赛部分writeup

    Reverse unctf_babyre2 这题flag分为两部分,第一部分每四个字符一组打包成int后,每次把四个int传入函数,后三个参数异或后先以每位为索引查表,将新数据进行循环移位.异或,将结 ...

  8. JVM 初始化阶段例子 final常量

    1.创建FinalTest类,里面有一个final常量x class FinalTest{ public static final int x = 3; static { System.out.pri ...

  9. oracle 删除某个用户下的所有对象

    先存放好dropobj.sql 文件 然后登录需要删除的用户 删除前最好备份一下:(备份是在cmd中进行的) C:\Users\panfu>exp file=d:\expall.dmp log= ...

  10. 干货满满!10分钟看懂Docker和K8S(转)

    2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这家公司主要提供基于PaaS的云计算技术服务.具体来说,是和LXC有关的容器技术. LXC,就是Linux容器虚 ...