如何利用JMeter进行CentOS系统监控
导读:JMeter监控CentOS系统的两种实用方案 一、方案总览与选择 方案一:PerfMon 插件 + ServerAgent(JMeter 监听器直连被压服务器) 适用:快速查看单台或多台 CentOS 的 CPU、内存、磁盘 IO、网...
JMeter监控CentOS系统的两种实用方案
一、方案总览与选择
- 方案一:PerfMon 插件 + ServerAgent(JMeter 监听器直连被压服务器)
- 适用:快速查看单台或多台 CentOS 的 CPU、内存、磁盘 IO、网络 等资源,与 JMeter 结果联动排查瓶颈。
- 优点:上手快、与 JMeter UI 集成;缺点:在高压下对 JMeter 与被监控端有一定资源开销,建议小规模或短时监控。
- 方案二:InfluxDB + Grafana + JMeter 后端监听器(时序数据库 + 可视化看板)
- 适用:需要实时监控、历史留存、团队协作与炫酷看板的场景。
- 优点:实时、可扩展、可沉淀数据;缺点:部署组件多,需要维护 InfluxDB/Grafana。
二、方案一 PerfMon 插件与 ServerAgent 步骤
- 准备插件与代理
- 在 JMeter 的 lib/ext 放入插件包:JMeterPlugins-Standard.jar、JMeterPlugins-Extras.jar(或使用 Plugins Manager 安装 PerfMon 插件)。
- 在被监控的 CentOS 服务器放置 ServerAgent-2.2.x,建议路径如 /opt/ServerAgent。
- 启动 ServerAgent(默认端口)
- 进入 ServerAgent 目录执行:
java -jar ServerAgent.jar - 默认监听 TCP 4444;如需自定义端口,启动时指定:
java -jar ServerAgent.jar --tcp-port 7777 --udp-port 7777
- 进入 ServerAgent 目录执行:
- 防火墙放行
- firewalld:
firewall-cmd --add-port=4444/tcp --permanent & & firewall-cmd --reload - 或(旧版 iptables):
iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
- firewalld:
- JMeter 侧添加监听器
- 测试计划 → 添加 → 监听器 → jp@gc - PerfMon Metrics Collector
- 新增目标主机:填写 CentOS 服务器 IP 与端口(如 4444),选择采集项(如 cpu、memory、disk、network)
- 运行与观察
- 启动测试,在监听器图表中实时查看资源曲线,与响应时间、TPS 等指标联动分析。
三、方案二 InfluxDB + Grafana 实时监控步骤
- 部署 InfluxDB(示例为 1.7.x)
- 安装:
yum install -y https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10.x86_64.rpm - 配置
/etc/influxdb/influxdb.conf:[http] enabled = true; bind-address = ":8086"- (可选,Graphite 写入)
[[graphite]] enabled = true; database = "jmeter"; bind-address = ":2003"
- 启动:
systemctl start influxdb & & systemctl enable influxdb - 建库与用户:
influx→CREATE DATABASE jmeter;→CREATE USER admin WITH PASSWORD 'admin' WITH ALL PRIVILEGES;
- 安装:
- 部署 Grafana
- 安装 Grafana(yum 或官方包),启动:
systemctl start grafana-server & & systemctl enable grafana-server - 访问 http://< 服务器IP> :3000,默认账号 admin/admin
- 安装 Grafana(yum 或官方包),启动:
- JMeter 配置后端监听器
- 测试计划 → 添加 → 监听器 → Backend Listener,选择 InfluxdbBackendListenerClient
- 关键参数:
influxdbUrl=http://< InfluxDB_IP> :8086/write?db=jmeter;可设置testTitle、节点名等
- Grafana 可视化
- 添加数据源:InfluxDB,URL http://< InfluxDB_IP> :8086,数据库 jmeter,用户 admin/密码
- 导入 JMeter 官方仪表板模板(如 ID: 5496),即可查看 响应时间、吞吐量、错误率 等测试指标
- 扩展(可选):若需同时展示系统资源,可在被监控 CentOS 上部署 Telegraf,将 CPU、内存、磁盘、网络 等写入同一 InfluxDB,在 Grafana 统一展示。
四、防火墙与网络要点
- 常见端口
- 4444/TCP:ServerAgent 默认端口(PerfMon)
- 8086/TCP:InfluxDB HTTP API(Grafana/ JMeter 写入)
- 3000/TCP:Grafana Web
- (可选)2003/TCP:InfluxDB Graphite 写入端口
- firewalld 示例
firewall-cmd --add-port={ 4444,8086,3000,2003} /tcp --permanent & & firewall-cmd --reload
- 验证连通
telnet < 目标IP> < 端口>或nc -vz < 目标IP> < 端口>,确保 JMeter/ Grafana 能连上 InfluxDB/ServerAgent。
五、实践建议与常见问题
- 资源开销与精度
- PerfMon 在高压场景会带来额外开销,建议短时或低并发验证;长期与大规模建议用 Telegraf/InfluxDB 采集系统指标。
- 时间同步
- 为获得准确时序与关联分析,确保 JMeter 机、被压服务器、InfluxDB 主机启用 NTP 同步时钟。
- 分布式压测
- 多台压力机与被压服务器都要放行相应端口;保持 JDK/插件版本一致,避免监控与结果数据不一致。
- 运行方式
- 正式压测建议使用 非 GUI 模式:
jmeter -n -t test.jmx -l result.jtl -e -o report/,并结合 InfluxDB+Grafana 实时观测。
- 正式压测建议使用 非 GUI 模式:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何利用JMeter进行CentOS系统监控
本文地址: https://pptw.com/jishu/756506.html
