zoukankan      html  css  js  c++  java
  • 性能测试监控:Jmeter+Collectd+Influxdb+Grafana

    系统性能指标图示例:

    采集数据(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

  • 相关阅读:
    LeetCode 453 Minimum Moves to Equal Array Elements
    LeetCode 112 Path Sum
    LeetCode 437 Path Sum III
    LeetCode 263 Ugly Number
    Solutions and Summay for Linked List Naive and Easy Questions
    AWS–Sysops notes
    Linked List
    All About Linked List
    datatable fix error–Invalid JSON response
    [转]反编译c#的相关问题
  • 原文地址:https://www.cnblogs.com/kaola8023/p/8612574.html
Copyright © 2011-2022 走看看