系统性能指标图示例:

采集数据(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. 洛谷 P2872 [USACO07DEC]道路建设Building Roads 题解

    P2872 [USACO07DEC]道路建设Building Roads 题目描述 Farmer John had just acquired several new farms! He wants ...

  2. 1045 Favorite Color Stripe (30)

    Eva is trying to make her own color stripe out of a given one. She would like to keep only her favor ...

  3. [golang]text/template模板

    这个可以用来处理text文本,不过我更偏爱做成代码生成器. [golang]text/template模板 package main import ( "os" "tex ...

  4. Python字符串转十六进制进制互转

    def str_to_hex(s): return ' '.join([hex(ord(c)).replace('0x', '') for c in s]) def hex_to_str(s): ) ...

  5. Android Studio 和 SDK 下载、安装和环境变量配置

    转Android Studio 和 SDK 下载.安装和环境变量配置https://blog.csdn.net/hahahhahahahha123456/article/details/8065135 ...

  6. docker-machine 远程安装docker

    base=https://github.com/docker/machine/releases/download/v0.14.0 && curl -L $base/docker-mac ...

  7. linux设置定时任务的方法步骤

    一,首先登录 二,找到文件夹 三,查看定时任务 crontab -l 四,vi root 编辑定时任务 编辑完成后,点ESC,然后:wq 时间格式 分钟 小时 日期 月份 周 命令 数字范围 0-59 ...

  8. gitconfig别名配置

    vim ~/.gitconfig 进行配置 [user] name = Your Name email = you@yourdomain.example.com [core] editor = vim ...

  9. 数据库blob图片文件,多图片打包下载

    数据库存储blob图片文件,前端打包下载 数据库图片文件实体类 package com.cmrh.mspserver.pos.dto; import java.io.Serializable; imp ...

  10. Git的使用(3) —— 远程版本库的操作(GitHub)

    1. 配置SSH (1) GitHub 登陆GitHub后,点击右上角头像,选择 Setting . 在左面栏目中选择"SSH and GPG keys". 打开生成的SSH公钥文 ...